FFT算法理解

Posted yuandonghua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFT算法理解相关的知识,希望对你有一定的参考价值。

1、 DFT运算及性质

 技术图片

技术图片

技术图片

DFT计算量很大,且随N的增多急剧增加,计算量和技术图片成正比,要降低计算复杂度,就需要将DFT分解成小点数的DFT处理。在DFT分解处理中,出现了“按时间抽取的FFT”、“按频率抽取的FFT”,其中“按频率抽取的FFT”使用比较多,特别是基于“分裂机”的“频率抽取FFT”相对于常规的“按频率抽取”的基2 FFT要更省计算量。

1、 按时间抽取的基2 FFT算法

所谓的按“时间”抽取还是按“频率”抽取指的是在最终推到公式中是对时域数据进行分组还是对频域数据进行分组。按时间抽取的基2 FFT算法的公式中是对时域数据进行奇偶分组,公式如下:

技术图片

技术图片只需要时域偶数项数据计算即可得到,技术图片只需要时域的奇数项数据计算即可,但是需要计算N个技术图片技术图片,利用技术图片可以减少一半的计算量。下面是推导:

 

技术图片

技术图片

到这里我们会发现,通过计算时域数据偶数点位置的N/2点DFT,和计算奇数位置的N/2点DFT就可以得到N点数据的DFT,即将一个N点的DFT运算拆分成了两个N/2点的DFT运算,这样的话N点的DFT运算只是N/2点DFT运算的2倍(除去技术图片中的加法和乘法运算有N个乘法和N个加法),这样的话相对于DFT计算量按技术图片增长方式,有了很大的优化。

技术图片

技术图片

8点DFT

技术图片

技术图片

技术图片

技术图片

这样通过将N点时域数据计算得到的N/2点技术图片技术图片再通过计算这两个N/2点的DFT就可以得到原来N点数据得到DFT,计算复杂度也现对于直接计算N点DFT的少了一半(除去计算和的乘法技术图片技术图片加法)

 

以上是关于FFT算法理解的主要内容,如果未能解决你的问题,请参考以下文章

理解快速离散傅里叶变换算法(FFT)

如何理解FFT

从分治的角度理解FFT

Matlab---傅里叶变换---通俗理解

Matlab---傅里叶变换---通俗理解

从多项式相乘来看FFT