tkovampire 发表于 2009-3-8 18:56

急求matlab的快速傅立叶变换源程序

急求matlab的快速傅立叶变换源程序,请各位老师帮帮忙,小弟不盛感激!:@Q

tkovampire 发表于 2009-3-8 18:57

xiaoma9241@sina.com麻烦有这份源程序的老师传份给我,不盛感激!

ChaChing 发表于 2009-3-8 20:56

不是有现成的!?
Help fft

ylliu 发表于 2010-11-1 00:34

论坛里随处都是,找最经典的

zhouyang664 发表于 2010-11-1 16:27

以下是我刚上完的《数字信号处理》课程中编的:

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('频谱图');

建议楼主对照着算法好好研究一下!

impulse 发表于 2010-11-1 16:51

回复 tkovampire 的帖子

matlab中fft是采用FFTW的,你可以从下面网站中下载dll
http://www.fftw.org/index.html
页: [1]
查看完整版本: 急求matlab的快速傅立叶变换源程序