快速傅里叶变换(FFT)的推导过程(DIT)

FFT是一种快速计算DFT的算法。按时间抽选的基-2FFT推导过程如下:

首先给出DFT的计算公式:

X(k)=DFT[x(n)]=n=0N1x(n)WnkN X ( k ) = D F T [ x ( n ) ] = ∑ n = 0 N − 1 x ( n ) W N n k

其中 WN=ej2πN W N = e − j 2 π N

容易证明:

WnkN=W(n+rN)kN=W(k+rN)nNr W N n k = W N ( n + r N ) k = W N ( k + r N ) n , r 为 整 数

WnkN=WmnkmNWnkN=Wnk/mN/m W N n k = W m N m n k , W N n k = W N / m n k / m

因此,可以得出一些特殊值:

WN/2N=1 W N N / 2 = − 1

Wk+N2N=WkN W N k + N 2 = − W N k

W(Nk)nN=W(Nn)kN=WnkN W N ( N − k ) n = W N ( N − n ) k = W N − n k

FFT的主要思想就是利用这些性质将DFT中的某些项合并。

设序列的长度为 N=2L N = 2 L ,将其分成奇偶两组:

{x(2r)=x1(r)x(2r+1)=x2(r)(1) (1) { x ( 2 r ) = x 1 ( r ) x ( 2 r + 1 ) = x 2 ( r )

其中

r=0,1,...,N21 r = 0 , 1 , . . . , N 2 − 1

X(k)=n=0(n)N1x(n)WnkN+n=0(n)N1x(n)WnkN X ( k ) = ∑ n = 0 ( n 为 偶 数 ) N − 1 x ( n ) W N n k + ∑ n = 0 ( n 为 奇 数 ) N − 1 x ( n ) W N n k

X(k)=r=0N21x(2r)W2rkN+r=0N21x(2r+1)W(2r+1)kN X ( k ) = ∑ r = 0 N 2 − 1 x ( 2 r ) W N 2 r k + ∑ r = 0 N 2 − 1 x ( 2 r + 1 ) W N ( 2 r + 1 ) k

X(k)=r=0N21x1(r)WrkN/2+WkNr=0N21x2(r)WrkN/2 X ( k ) = ∑ r = 0 N 2 − 1 x 1 ( r ) W N / 2 r k + W N k ∑ r = 0 N 2 − 1 x 2 ( r ) W N / 2 r k

X1(k)=r=0N21x1(r)WrkN/2 X 1 ( k ) = ∑ r = 0 N 2 − 1 x 1 ( r ) W N / 2 r k

X2(k)=r=0N21x2(r)WrkN/2 X 2 ( k ) = ∑ r = 0 N 2 − 1 x 2 ( r ) W N / 2 r k

X(k)=X1(k)+WkNX2(k)(2) (2) X ( k ) = X 1 ( k ) + W N k X 2 ( k )

X1(k),X2(k) X 1 ( k ) , X 2 ( k ) 分别是 x1(r)x2(r) x 1 ( r ) 和 x 2 ( r ) N/2 N / 2 点DFT。

这样我们就可以把一个 N N 点DFT分解为两个 N/2 N / 2 点DFT,并通过 (2) ( 2 ) 式组合成 N N 点DFT。

但是式中的 k,r=0,1,...,N21 k , r = 0 , 1 , . . . , N 2 − 1 ,也就是说,这只是 X(k) X ( k ) 的前一半序列。

可以应用周期性求解 X(k) X ( k ) 的后一半序列。

易证:

X1(N2+k)=X1(k)X2(N2+k)=X2(k)Wk+N2N=WkN X 1 ( N 2 + k ) = X 1 ( k ) X 2 ( N 2 + k ) = X 2 ( k ) W N k + N 2 = − W N k

因此:

X(k+N2)=X1(k)WkNX2(k),k=0,1,...,N21(3) (3) X ( k + N 2 ) = X 1 ( k ) − W N k X 2 ( k ) , k = 0 , 1 , . . . , N 2 − 1

通过 (2) ( 2 ) 式和 (3) ( 3 ) 式,就可以通过两个 N/2 N / 2 点DFT序列组合出一个完整的 N N 点DFT序列。

附运算次数(序列的长度为 N N ):

直接DFT:
复数乘法 N2 N 2
复数加法 N(N1) N ( N − 1 )

利用FFT求解DFT:
复数乘法 N2log2N N 2 l o g 2 N
复数加法 Nlog2N N l o g 2 N

你可能感兴趣的:(快速傅里叶变换(FFT)的推导过程(DIT))