快速傅里叶变化FFT

运算规律及编程思想

1.原位计算

N=2^M点的FFT共进行M级运算,每级运算,每级N/2个蝶形运算组成。同一级中,每个蝶形的两个输入数据只对计算本蝶形有用,而且每个蝶形的输入、输出数据结点又同在一条水平线上,这就意味着计算完一个蝶形后,所得输出数据可立即存入原输入数据所占用的存储单元(数组元素)。这样,经过M级运算后,原来存放输入序列数据的N个存储单元(数组A)中便依次存放X(k)的N个值。这种利用同一存储单元存储蝶形 计算输入输出数据的方法称为原位(址)计算。原位计算可节省大量内存,从而使设备成本降低。

2.旋转因子的变化规律

在DFT-FFT运算流图中,每级都有N/2个蝶形,每个蝶形都要乘以旋转因子,p为旋转因子的指数。但各级的旋转因子和循环方式都有所不同。在编写计算程序前,应该先找出旋转因子与运算级数M的关系。第L级共有2^(L-1)个不同的旋转因子。

3.蝶形运算规律

公式:

式中:为第L级运算后的值,为第L级运算前的值,B(与旋转因子数量相同为)为两个输入数据相距多少个点,为旋转因子

4.编程思想

先从输入端开始,逐级进行,共进行M次运算。再进行第L级运算时,依次求出B个不同的旋转因子,每求出一个旋转因子,就计算完它对应所有个蝶形。这样就可以利用三重循环程序实现DIT-FFT运算。

5.福利

有需要FFT源码的同学可关注新浪微博 __程鹏,回复私信“FFT”,可得到FFT源代码。

 

以上是学习傅里叶变换时的一些理解和记录,其中不足之处还请看官指出,谢谢支持。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值