支配频率时间序列

时间:2016-08-23 07:07:56

标签: matlab fft

我有时间序列数据。我使用matlab在其上执行了fft:

ft=fft(data);

我们如何获得主导频率。我尝试取ft的最大值,但似乎是错误的。我们怎样才能获得主导频率

2 个答案:

答案 0 :(得分:1)

您需要获取复数FFT输出的幅度并找到峰值:

ft=fft(data);
mag_ft = abs(ft);    % take magnitude of FFT complex output values

答案 1 :(得分:0)

首先,需要使用频率轴来查找fft数据的频率。由于您的采样率仅为1,因此您可以检查的最大频率为0.5 Hz。

dt=1; % your time step

N=length(data);  % data length

df=1/(dt*N);  %frequency bin

f_axis=(0:N-1)*df; % frequency axis

然后,用频率轴绘制fft数据。

ft=fft(data);
plot(f_axis,abs(ft));