Matlab中的离散傅里叶变换

Matlab中的离散傅里叶变换,matlab,fft,dft,Matlab,Fft,Dft,我被要求在matlab中编写一个fft混合基,但在此之前,我想让我以一种直接的方式进行离散傅里叶变换。因此,我决定根据维基百科中定义的公式编写代码 [抱歉,我还不允许发布图片] 因此,我编写了如下代码: %Brutal Force Descrete Fourier Trnasform function [] = dft(X) %Get the size of A NN=size(X); N=NN(2); %==================== %Declaring an array t

我被要求在matlab中编写一个fft混合基,但在此之前,我想让我以一种直接的方式进行离散傅里叶变换。因此,我决定根据维基百科中定义的公式编写代码

[抱歉,我还不允许发布图片]

因此,我编写了如下代码:

%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
%=============================================
但是,我的代码输出的结果似乎与此网站的结果不同:

你能帮我查出问题出在哪里吗

谢谢大家!

============
别介意我的代码似乎是正确的……

默认情况下,web链接中的计算器在进行FFT之前对数据应用窗口函数。这可能是造成差异的原因吗?您可以从下拉菜单关闭窗口

顺便说一句,Matlab中有一个FFT函数