Детальное преобразование Фурье в Matlab

Меня просят написать основание fft mix в matlab, но перед этим я хочу позволить сделать дискретное преобразование Фурье прямым способом. Поэтому я решил написать код в соответствии с формулой, определенной в википедии.

[Извините, я не могу размещать изображения еще]

http://en.wikipedia.org/wiki/Discrete_Fourier_transform

Поэтому я написал свой код следующим образом:

%Brutal Force Descrete Fourier Trnasform
function [] = dft(X)

%Get the size of A
NN=size(X);
N=NN(2);
%====================

%Declaring an array to store the output variable
 Y = zeros (1, N)
%=========================================



for k = 0 : (N-1)
    st = 0; %the dummy in the summation is zero before we add
    for n = 0 : (N-1)
        t = X(n+1)*exp(-1i*2*pi*k*n/N);
        st = st + t;
    end
    Y(k+1) = st;
end
Y
%=============================================

Однако мой код, похоже, выводит результат, отличный от результатов на этом сайте: http://www.random-science-tools.com/maths/FFT.htm

Не могли бы вы помочь мне определить, где именно проблема?

Спасибо!

============ Неважно, кажется, мой код правильный....

1 ответ

По умолчанию калькулятор в веб-ссылке применяет оконную функцию к данным перед выполнением БПФ. Может ли это быть причиной разницы? Вы можете отключить управление окнами из выпадающего меню.

Кстати, в Matlab есть функция FFT

Другие вопросы по тегам