按时间抽取的FFT算法及蝶形运算

FFT算法的引入

通过计算、推导我们知道,N点序列x[n]的DTFT,可以表示成N/2点序列g[n] = x[2n]和h[n] = x[2n+1]的DTFT形式。由于DFT可以看作对DTFT的采样,故X[k]同样可以表示成g[n]和h[n]的DFT形式。

FFT算法推导

  1. 数学推导:
    (1)参考上述引入可以知道,X[k]可以由N/2点序列的DFT表示,其中WkN是由序列的以为造成的。
    按时间抽取的FFT算法及蝶形运算
    (2)其中G[k],H[k]的表达式如下:
    按时间抽取的FFT算法及蝶形运算
    (3)由于G[k]、H[k]是N/2点的DFT,所以其周期为N/2,故可以将(1)式子改写成:按时间抽取的FFT算法及蝶形运算
  2. 信号流图如下:
  • H[k]、G[k]由于其周期性,所以有x[4/5/6/7]均可以由G[0/1/2/3]和H[0/1/2/3]计算得出;W因子是由时序移位所造成的,这样子方便记忆。
    按时间抽取的FFT算法及蝶形运算
  • G[0/1/2/3]为N/2点的DFT,故可以将其分解为2个N/4点的DFT;H[0/1/2/3]的计算同理。
    说明:G[0/1/2/3]的计算可以通过将x[0]、x[2]、x[4]、x[6]序列拆分成奇偶序列进行N/4点的DFT计算。G[0/1/2/3]需要4个点的组合运算,这四个数值是由2对长度为N/4序列的DFT的结果得到。这样子就便于理解为什么,我们前面还要有一层运算。
    按时间抽取的FFT算法及蝶形运算
  • 我们将N/4点的DFT补充,有流图如下:
    下图中所有的W都是以N为底数,实际上,我们每一层分别以N、N/2、N/4为底数,只不过我们可以通过约分将底数均表示为N,这样子较为美观。
    按时间抽取的FFT算法及蝶形运算

FFT的进一步化简----蝶形运算

  1. 利用系数WNr 的对称性和周期性可以进一步减小流图的计算量:
  • 有如下推导:
    按时间抽取的FFT算法及蝶形运算
  • 因此有:
    按时间抽取的FFT算法及蝶形运算
  • 故有如下简化方法:
    按时间抽取的FFT算法及蝶形运算
  1. 因此有如下的化简方式:
    按时间抽取的FFT算法及蝶形运算