急求matlab的快速傅立叶变换源程序
急求matlab的快速傅立叶变换源程序,请各位老师帮帮忙,小弟不盛感激!:@Q xiaoma9241@sina.com麻烦有这份源程序的老师传份给我,不盛感激! 不是有现成的!?Help fft 论坛里随处都是,找最经典的 以下是我刚上完的《数字信号处理》课程中编的:
function =myfft(xn,N); %function myfft
%N=length(xn);%序列长度
M=log2(N); %碟形运算次数
%倒位排序算法
J=N/2;
for I=1:N-2
if (I<J)
Temp=xn(I+1);
xn(I+1)=xn(J+1);
xn(J+1)=Temp;
end
K=N/2;
while (J>=K)
J=J-K;
K=K/2;
end
J=J+K;
end
%倒位排序算法
A=xn;
Wn=exp(-j*2*pi/N); %旋转因子
for L=1:M %碟形运算至L级
B=2^(L-1); %第L级不同旋转因子的个数B
for J=0:B-1
p=J*2^(M-L); %计算旋转因子
for k=J:2.^L:N-1
Temp0 = A(k+1+B)* Wn.^p; %同址计算
Temp1 = A(k+1) +Temp0;
Temp2 = A(k+1) - Temp0;
A(k+1) = Temp1;
A(k+1+B) = Temp2;
end
end
end
XK=1/32*A; %幅值乘以采样周期T
magX=abs(XK);
L=0:1:N-1;
stem(L,magX);
xlabel('k');ylabel('X|k|');title('频谱图');
建议楼主对照着算法好好研究一下! 回复 tkovampire 的帖子
matlab中fft是采用FFTW的,你可以从下面网站中下载dll
http://www.fftw.org/index.html
页:
[1]