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
结果应该是一样的,但我不知道问题在哪里....
谢谢
与正弦波的振幅相比,任何e-15(或e-15i)本质上是零(数值噪声)。因此,0 == 0,您的结果没有什么不同。