2012-04-27 2 views
0

Меня просят написать fft mix radix в matlab, но до этого я хочу позволить сделать дискретное преобразование Фурье прямым способом. Поэтому я решил написать код в соответствии с формулой, определенной в wikipedia.Дескробное преобразование Фурье в 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

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

Спасибо!

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

ответ

0

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

BTW есть функция FFT в Matlab

Смежные вопросы