Need help with periodogram

I am trying to turn this plot into a periodogram and I am not sure where to start... From frequencies 0.4Hz to 5 Hz Code:
clear,clc
load('DATA_01_TYPE01.mat')
A = sig;
x = A(2,1:1000)
t=1:1:1000;
subplot(3,1,1)
plot(t,x)

7 Comments

If you want to know how to calculate it, see the More About (link) secton of the periodogram function.
Otherwise, just use the function itself.
How do I use the function itself for this type of example? This is what I am doing and I am not getting a correct plot. This is my code:
clear,clc
load('DATA_01_TYPE01.mat')
A = sig;
x = A(2,1:1000);
t=1:1:1000;
[pxx,w]=periodogram(x,[],[0.4 5]);
plot(w,10*log(pxx))
xlabel('Frequency (Hz)')
This is what I want mine to look like:
load sunspot.dat
relNums=sunspot(:,2);
[pxx,f] = periodogram(relNums,[],[],1);
plot(f,10*log10(pxx))
xlabel('Cycles/Year')
ylabel('dB / (Cycles/Year)')
title('Periodogram of Relative Sunspot Number Data')
Please read the documentation.
The third argument is the length of the Fourier transform. Neither the periodogram function nor I know what you intend with ‘[0.4 5]’ for that argument.
G
G on 26 Oct 2018
That is the range of the x axis that I want it to be
Use the xlim property of plot to define the specific frequency range to display (assuming that the frequency is your x-axis).
G
G on 26 Oct 2018
Yes. Then how do I plot my x values on the y axis for the periodogram plot
Right now it is just a diagonal line
clear,clc
load('DATA_01_TYPE01.mat')
A = sig;
x = A(2,1:1000);
[pxx,w]=periodogram(x,[],[0.4 5]);
plot(w,10*log(pxx))
xlim([0.4 5]);
xlabel('Frequency (Hz)')
title('Spectrum by Periodogram')

Sign in to comment.

Answers (0)

Asked:

G
G
on 26 Oct 2018

Commented:

G
G
on 26 Oct 2018

Community Treasure Hunt

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

Start Hunting!