3.3 一维快速傅里叶变换
一、基本思想
其中Wux为变换矩阵元素;
由变换矩阵元素可见,利用矩阵元素的周期性与对称性之后,变换矩阵中许多元素相同。换言之,变换矩阵与输入信号相乘过程中存在着不必要的重复计算。
改进DFT的关键:
利用变换矩阵元素的周期性与对称性,合理安排(即避免)重复出现的相乘运算,就能显著减少计算工作量。
二、一维FFT
FFT重要环节
重新安排计算次序
矩阵分解
1、重新安排计算次序
设N=2n,经过n步计算后,其结果为fn(k)= F(l)其中k 的二进制表示为
2、矩阵分解
当N=2n,将变换矩阵分解成n个矩阵,使每个矩阵中每一行仅含有两个非零元素。有两种分解方法:
一种是按时间分解
一种是按频率分解
下面仅介绍按时间分解的FFT算法
u和x的二进制表示为:
矩阵表示
3、FFT流程图
N=8时FFT流程图
(1) 整个流程需要的计算步数为n=log2N (N=2n);
(2) 在第r步计算中,要乘的因子为
(3) 第r步计算中有2r-1个组,每组有(N/2r-1)个元素,每组的W因子各不相同,且每组只有一种类型的W因子,此因子在组中上一半为正,下一半为负。
(4) 对比DFT与IDFT的定义式,只要将上述FFT算法中W因子用其共轭代替,并将最后结果乘以1/N,就是计算IDFT即离散傅里叶反变换的快速算法。
(5) 在每步计算中,需要的乘法次数N/2,加法次数为N,因此FFT的总计算量为:
乘法次数为
加法次数为
而直接计算DFT的计算量为:乘法次数为N2,加法次数为N(N-1)。当N=2048时,DFT需要4194304次乘法运算,而FFT只需要11264次乘法运算,二者之比为