Power spectrum and periodicity
4 views (last 30 days)
Show older comments
Kavita Navria
on 31 Jan 2022
Answered: Star Strider
on 31 Jan 2022
I have a data of length 336 (336 days) having a frequency of an event.
- 3
- 1
- 0
- 0
- 2
- so on to 336
how can I plot power spectrum and periodicity of this data?
thank you
0 Comments
Accepted Answer
Star Strider
on 31 Jan 2022
There are a number of functions in the Spectral Estimation section of the Signal Processing Toolbox documentation that will work.
For a simpler approach, since power is the square of amplitude, do a Fourier transform (fft) on the element-wise square of the original signal:
M = [(1:365).' rand(365,1)]; % Original Data
L = size(M,1);
Ts = M(2,1) - M(1,1); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
s = M(:,2); % Signal Vector
NFFT = 2^nextpow2(L); % For Efficiency
FTs2 = fft(s.^2,NFFT)/L; % Fourier Transform
Fv = linspace(0, 1, NFFT/2+1)*Fn; % Frequency Vector
Iv = 1:numel(Fv); % Inmdex Vector
figure
plot(Fv, abs(FTs2(Iv)))
grid
xlabel('Frequency (Cycles/Day)')
ylabel('Amplitude')
.
0 Comments
More Answers (0)
See Also
Categories
Find more on Spectral Measurements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!