自定义Matlab DFT结果与FFT不同

时间:2016-10-06 20:54:06

标签: matlab fft dft

N=160; % No of Sample
for k = 1 : N
  dft(k) = 0;
  for n=1: N
    dft(k) = dft(k) + x(n) * exp(-1j*2*pi*(n-1)*(k-1)/N);
  end
end

在实施此DFT之前,我使用以下方法创建了一个160个样本正弦波,其中包含10个周期:

for n=1:160
x(n) = sin(2*pi*10*n/160);
end

使用fft()时:

xfft(2)的结果是-1.6580e-15 + 9.8769e-15i

但是,dft(2)的结果是-1.2262e-15 + 9.5732e-15i

结果应该是一样的,但我无法弄清问题在哪里....

由于

1 个答案:

答案 0 :(得分:0)

与正弦波的幅度相比,任何e-15(或e-15i)基本上都为零(数值噪声)。因此0 == 0,你的结果也没有什么不同。