4.2 基-2FFT算法
4.2.1 直接计算DFT的特点及减少运算量的基本途径
有限长序列x(n)的N点DFT为:
X ( k ) = ∑ − ∞ ∞ x ( n ) W N k n X(k)=\sum_{-\infty}^{\infty}x(n)W_N^{kn} X(k)=−∞∑∞x(n)WNkn
计算一个k值需要N次乘法,N个k就需要N*N次乘法,计算次数巨大。所以我们可以将N点DFT分解为几个较短的DFT。另外,旋转因子 W N m W_N^{m} WNm具有明显的周期性:
周期性: W N m + l N = W N m 对称性: W N − m = W N N − M 或者 [ W N N − m ] = W N m 周期性:W_N^{m+lN}=W_N^m\\ 对称性:W_N^{-m}=W_N^{N-M}或者[W_N^{N-m}]=W_N^m 周期性:WNm+lN=WNm对称性:WN−m=WNN−M或者[WNN−m]=WNm
FFT算法就是不断地把长序列的DFT分解成几个短序列的DFT,并利用 W N k n W_N^{kn} WNkn的周期性和对称性来煎炒DFT的运算次数
4.2.2 时域抽取发基-2FFT基本原理
基-2FFT算法分为两类:时域抽取法(DIIT-FFT)和频域抽取法(DIF-FFT)
序列x(n)可以按n的奇偶分解成N/2的子序列
x 1 ( r ) = x ( 2 r ) r = 0 , 1 , … … , N / 2 − 1 x 1 ( r ) = x ( 2 r + 1 ) r = 0 , 1 , … … , N / 2 − 1 x_1(r)=x(2r)\,\,\,\,\,\,\,\,\,\,\,r=0,1,……,N/2-1\\ x_1(r)=x(2r+1)\,\,\,\,\,\,\,\,\,\,\,r=0,1,……,N/2-1\\ x1(r)=x(2r)r=0,1,……,N/2−1x1(r)=x(2r+1)r=0,1,……,N/2−1
则x(n)的DFT为:
X ( k ) = ∑ r = 0 N / 2 − 1 x ( 2 r ) W N 2 k r +