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

3 views (last 30 days)
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
Paul
Paul on 12 Nov 2021
It would be helpful to post input data for the simplest possible example that illustrates the problem and explain how that data should be turned into the desired output.
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
Edited: 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)')

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!