N = 4;
function Xk=DT_FFT(xn,N)
figure
stem(0:N-1,abs(fft(xn,N)),'.','r');
title('MATLAB标准FFT运算结果');
xn=bit_reversal(xn);
M=log2(N);
%**************************************************************************
%***************具体的FFT的蝶形运算*************************************
for L=1:M
B=2^(L-1);
for J=0:B-1
P=J*2^(M-L);
for k=J:2^L:N-1
xn(k+1)=xn(k+1)+xn(k+1+B)*(exp((-1)*i*2*pi/N*P)); % DIT:先复乘后加减
xn(k+1+B)=xn(k+1)-xn(k+1+B)*(exp((-1)*i*2*pi/N*P));
end
end
end
%**************************************************************************
%*********************结果的输出*******************************************
figure
stem(0:N-1,abs(xn),'.','m');
title('自制FFT运算结果'); |