我有时间序列数据。我使用matlab在其上执行了fft:
ft=fft(data);
我们如何获得主导频率。我尝试取ft的最大值,但似乎是错误的。我们怎样才能获得主导频率
答案 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));