Table of Contents
Fast Fourier Transform(FFT)是计算Discrete Fourier Transform(DFT)的高效算法. Cooley-Tukey算法是实施FFT的最常用方法,依靠DFT的递归分解,了解其数学基础有助于优化和有效应用算法.
FFT的数学基础
DFT将一系列复杂的数字转换成频率组件。定义如下:
X(k)= ⁇ n=0 ]N-1 ]]x(n) e -2 ⁇ i kn/N ]]]
其中x(n)是输入序列,X(k)是频率组件,N是序列长度.
库利-托基算法的衍生
Cooley-Tukey算法通过将序列分为偶数和奇数部分,将DFT分解为较小的DFT:
X(k)= ⁇ n=0 ]]N-1 ]] x(n) e ]-2 ⁇ i kn/N ]]].
,可重写为:
X(k)= ⁇ n= 0 ]N/2-1 ]]x(2n) e ]-2 ⁇ i 2n k/N ]+ e -2 ⁇ i k/N ]] ]] n= 0 ]]N/2-1 ]]]]x(2n+1] e ]-2 ⁇ i 2n k/N ]]]]]]
这种分离可以对较小的DFT进行递归计算,将计算的复杂性从O(N2)降低到O(Nlog N).
应用算法
FFT算法反复应用递归分解,直到大小 1 的基数实现。然后使用双倍系数组合结果,这些系数是复杂的指数词:
WN(k)=e-2 ⁇ i k/N].
这些因素在重组过程中调整了较小的DFT的阶段,从而能够高效计算全变换.