MATLAB Answers

0

How to plot a complex power spectrum using MATLAB?

Asked by Alex Vasin on 11 Apr 2019
Latest activity Commented on by dpb
on 11 Apr 2019
I have all the |C_n|^2 and need to plot bars which represent the energy at intervals of w (angular frequency).
I guess this would be a bar graph but I want lines instead (which I can label if possible).
Something like this but only need labels for the x axis:
https://www.oreilly.com/library/view/elegant-scipy/9781491922927/assets/elsp_0402.png
Thanks

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Clay Swackhamer on 11 Apr 2019
 Accepted Answer

This might have what you are looking for https://www.mathworks.com/help/matlab/ref/fft.html
You could transform the data from output space (voltage vs time or similar) into a frequency spectrum (power vs frequency or similar) and then plot that.

  5 Comments

Ok that is exactly what I needed. Thanks. Is there a way to add a small label at the top of each bar?
dpb
on 11 Apr 2019
Alex...use the "COMMENT" button for clarifications, comments...they're answers to questions about the original question, yes, but not an Answer to your original question -- dpb
C_n is the complex Fourier coefficient. I need to do a complex power spectrum. So the x-axis is w (angular fequency) at intervals of pi, since w_0=pi. And at each of those frequencies I want a line going up that represents the energy of the freqrency (calculated as |C_n|^2). As I said, I only need to know how to plot the graph. I do not need help with computations.
dpb
on 11 Apr 2019
Look at the example of computing PSD at
doc fft
It shows how to compute the frequency against which to plot the PSD and plots it with plot which is the normal thing.
You would simply call one of the other routines in place of plot to try something different. I've never done a PSD by either, so no idea how well it will actually work to display the information in a useful format, but you can give it a go... :)

Sign in to comment.