这是我的代码:
T
F = 1/T
y
L = length(y)
Y=fft(y);
f=(0:F:(L-1)*F)
plot(f, Y)
T是采样时间(及其值),F是频率,y是离散信号。 这是使用Matlab计算DFT的正确方法吗?我没有将F或T传递给函数,所以我不确定结果Y是否对应于它们各自存储在f中的F的多个频率。
答案 0 :(得分:0)
F = 1/T
L = length(y)
t = linspace(0,L/F,L);
NFFT = 2^nextpow2(L);
f = F/2*linspace(0,1,NFFT/2+1);
fft_y = fft(y, NFFT)/L;
magnitude_y = = 2*abs(fft_y(1:NFFT/2+1));
plot(f, magnitude_y);
这是正确的方法。