机械荟萃山庄

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1950|回复: 0

分享小程序-快速傅里叶变换

[复制链接]

30

主题

218

帖子

9807

积分

论坛元老

Rank: 8Rank: 8

积分
9807
发表于 2020-7-12 12:32:01 | 显示全部楼层 |阅读模式
本帖最后由 从零开始 于 2020-7-12 14:22 编辑

1.标题党了,此贴不分享程序,分享采样数为2^n的快速傅里叶算法。
2.傅里叶变换可写成矩阵形式,此矩阵又可以分解为多个(稀疏)矩阵乘积,根据这些稀疏矩阵的规律可以得到高效的“迭代式”(iterative)FFT和IFFT算法。(递归式FFT的程序写起来简洁,但多次重复调用函数,比较耗电脑资源(函数式编程语言除外)。
3.分享自己编制(copy)的8-points,16-points, 2^n points DIF FFT矩阵,和8点,16点 DIF FFT的蝶形图
4.实在写不出来的话,还有个笨办法,将这些矩阵写出来,以稀疏矩阵格式(比如csr,csc形式)存储在电脑里,计算FFT时依次读取这些矩阵,依次做乘法。效率也很高,只是多了几次文件读取。不便之处是不同的采样数,不同的矩阵。
5.要注意的是,FFT写法分为  DIF-FFT(频域抽取)法和DIT-FFT(时域抽取)法。DIF-FFT算法,输入(也就是时间项)是自然顺序,结果(也就时频率项)的次序是“位反”(bit-reversed)的,DIT-FFT算法,输入(也就是时间项)的次序是“位反”的,结果是自然顺序。
6. 分享的pdf文档里有fft算法的部分数学基础,不包括完整的推导,主要用于帮助理解和记忆。Key Words:DFT,FFT,IFFT, DIF-FFT,DIT-FFT, Sparse Matrix, Bit-reverse









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|机械荟萃山庄 ( 辽ICP备16011317号-1 )

GMT+8, 2024-11-16 04:49 , Processed in 0.108200 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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