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
Перед реализации этого ДПФ, я должен был создать 160 образца синусоиду с 10 циклов с использованием следующего:Пользовательские Matlab ДПФ результат отличается от FFT
for n=1:160
x(n) = sin(2*pi*10*n/160);
end
При использовании FFT():
результат xfft (2) является -1.6580e-15 + 9.8769e-15i
, но, в результате ДПФ (2) -1.2262e-15 + 9.5732e-15i
Результаты должны быть такими же, но я не могу понять, где проблема ....
Благодаря
Результаты эквивалентны точности машины: см. [Это сообщение в блоге Лореном] (http://blogs.mathworks.com/loren/2006/08/23/a-glimpse-into-floating-point-accuracy/). –
В общем, я сравниваю, являются ли два числа 'x' и' y' равными машинной точности следующим образом: 'areEqual = abs (x - y)/abs (x)
Я просто думал, что они должны быть абсолютно одинаковыми. Но я согласен с вами, спасибо. – brotherofninth