声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1125|回复: 5

[编程技巧] 急求matlab的快速傅立叶变换源程序

[复制链接]
发表于 2009-3-8 18:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

使用道具 举报

 楼主| 发表于 2009-3-8 18:57 | 显示全部楼层
xiaoma9241@sina.com麻烦有这份源程序的老师传份给我,不盛感激!
发表于 2009-3-8 20:56 | 显示全部楼层
不是有现成的!?
Help fft
发表于 2010-11-1 00:34 | 显示全部楼层
论坛里随处都是,找最经典的

评分

1

查看全部评分

发表于 2010-11-1 16:27 | 显示全部楼层
以下是我刚上完的《数字信号处理》课程中编的:

function [XK]=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('频谱图');

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

评分

1

查看全部评分

发表于 2010-11-1 16:51 | 显示全部楼层
回复 tkovampire 的帖子

matlab中fft是采用FFTW的,你可以从下面网站中下载dll
http://www.fftw.org/index.html

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-20 18:48 , Processed in 0.062822 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表