Matlab和离散傅里叶变换

时间:2014-02-20 12:13:13

标签: matlab dft

这是我的代码:

    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的多个频率。

1 个答案:

答案 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);

这是正确的方法。