how to plot impulses obtaining x and y values (non periodic) from 2 separate matrices

5 views (last 30 days)
Ruben Leon
Ruben Leon on 12 Nov 2021
Commented: Ruben Leon on 15 Nov 2021
I want to be able to plot x and y data stored in two separate matrices as an impulse graph similar to the image below but not periodic. I know the stem function is used to generate these types of graphs but the difference here is that my data is aperiodic. Any feedback would be much appreciated. Thank you.
  2 Comments
Ruben Leon
Ruben Leon on 12 Nov 2021
Sure. These are two (2x3) matrices containg the typy of data I would like to plot.
SpurOffsetFreq = [37.467 56.486 85.159; 56.486 86.693 113.309];
SpurLeveldBc = [-96.527 -97.912 -83.814; -100.779 -84.146 -92.496];
but instead of ploting it using the regular plot function (shown below) which connects each data point (image below) I want to plot an impulse/vector located at each x value going up to its corresponding y value. A noise floor would have to be set lets say at y=-110dBc and so there would be a vector going from -110 to -96.527(y) located at 37.467(x) and so on for all the data points.
figure
hold on
for i = 1:N
plot(SpurOffsetFreq(i,:),SpurLeveldBc(i,:))
end
xlabel('Spur Offset Frequency (KHz)')
ylabel('Spur Level (dBc)')

Sign in to comment.

Accepted Answer

Paul
Paul on 13 Nov 2021
Is one of these what you want?
SpurOffsetFreq = [37.467 56.486 85.159; 56.486 86.693 113.309];
SpurLeveldBc = [-96.527 -97.912 -83.814; -100.779 -84.146 -92.496];
% two separate stem plots
figure;
hold on;
for ii = 1:2
stem(SpurOffsetFreq(ii,:),SpurLeveldBc(ii,:),'BaseValue',-110);
end
% single stem plot
figure
stem(SpurOffsetFreq(:),SpurLeveldBc(:),'BaseValue',-110)
  1 Comment
Ruben Leon
Ruben Leon on 15 Nov 2021
Hi Paul, yes, thats exactly what I need. Thank you! I thought Periodicity was a requirement for using the stem function but I was clearly wrong.

Sign in to comment.

More Answers (1)

Dave B
Dave B on 13 Nov 2021
I think you were correct that stem is the correct command. I'm not sure why periodicity factors in, from your description...how about this?
SpurOffsetFreq = [37.467 56.486 85.159; 56.486 86.693 113.309];
SpurLeveldBc = [-96.527 -97.912 -83.814; -100.779 -84.146 -92.496];
% the loop is not necessary when your data are in a matrix
stem(SpurOffsetFreq,SpurLeveldBc,'filled','BaseValue',-110)
xlabel('Spur Offset Frequency (KHz)')
ylabel('Spur Level (dBc)')

Products


Release

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!