給出離散傅里葉變換DFT的公式:
DFT[x(n)]=X(m)=n=0∑N−1x(n)exp(−jN2πmn),m∈[0,N−1]=x(0)exp(−jN2πm0)+x(1)exp(−jN2πm1)+x(2)exp(−jN2πm2)+x(3)exp(−jN2πm3)+...
FFT將DFT公式分成奇和偶兩部分,即,將含x(0),x(2),...的項取出,作爲偶數項,將含x(1),x(3),...的項取出,作爲奇數項,有
X(m)=n=0∑2N−1x(2n)exp(−jN2πm2n)+n=0∑2N−1x(2n+1)exp(−jN2πm(2n+1)),m∈[0,N−1]=n=0∑2N−1x(2n)exp(−j2N2πmn)+exp(−jN2πm)n=0∑2N−1x(2n+1)exp(−j2N2πmn),m∈[0,2N−1]
可以看到經過變換後,m的取值範圍變成了一半。現在考慮另一半的m,有
X(m+2N)=n=0∑2N−1x(2n)exp(−j2N2πn(m+2N))+exp(−jN2π(m+2N))n=0∑2N−1x(2n+1)exp(−j2N2πn(m+2N)),m∈[0,2N−1]=n=0∑2N−1x(2n)exp(−j2N2πmn)exp(−j2πn)+exp(−jN2πm)exp(−jπ)n=0∑2N−1x(2n+1)exp(−j2N2πnm)exp(−j2πn),m∈[0,2N−1]=n=0∑2N−1x(2n)exp(−j2N2πmn)−exp(−jN2πm)n=0∑2N−1x(2n+1)exp(−j2N2πmn),m∈[0,2N−1]
令
WNθ=exp(−jN2πθ)則
X(m)=n=0∑2N−1x(2n)W2Nmn+WNmn=0∑2N−1x(2n+1)W2Nmn,m∈[0,2N−1]X(m+2N)=n=0∑2N−1x(2n)W2Nmn−WNmn=0∑2N−1x(2n+1)W2Nmn,m∈[0,2N−1]
注意到
n=0∑2N−1x(2n)W2Nmn①n=0∑2N−1x(2n+1)W2Nmn②
①和②分別是N點序列x(n)中對偶數項與奇數項的2N點的DFT。
上述兩個式子X(m)和X(m+2N)爲FFT的核心公式,即一個N點DFT可以分成2個2N點的DFT,並且前2N點DFT與後2N點DFT之間,只有正負號的不同,所以可以使用前2N點DFT公式中的元素,計算後2N點DFT中的元素,使計算量降低。
根據該思路,可以將①和②繼續分解,分別求①中奇數項與偶數項的4N點DFT,和②中奇數項和偶數項的4N點DFT。這樣一直分解下去,直到分解成最簡單的2點DFT爲止。注意到,在FFT中,N點DFT會一分爲二,二分爲四,四分爲八,最後會分解成多個2點DFT,所以N必須是2的冪次。
接下來,本文用一個N=8點FFT進行說明。
首先寫出8點DFT原始公式
DFT[x(n)]=X(m)=n=0∑7x(n)exp(−jN2πmn),m∈[0,7]
根據上文的FFT核心公式,8點DFT可以分爲兩個4點DFT,即
X(m)=n=0∑3x(2n)W4mn+W8mn=0∑3x(2n+1)W4mn,m∈[0,3]X(m+4)=n=0∑3x(2n)W4mn−W8mn=0∑3(2n+1)W4mn,m∈[0,3]
令
X1(m)=n=0∑3x(2n)W4mnX2(m)=n=0∑3x(2n+1)W4mn
則
X(m)=X1(m)+W8mX2(m),m∈[0,3]X(m+4)=X1(m)−W8mX2(m),m∈[0,3]
1、對X1(m)進行奇偶分解,有
X1(m)=n=0∑1x(2(2n))W4m2n+n=0∑1x(2(2n+1))W4m(2n+1),m∈[0,3]=n=0∑1x(4n)exp(−42πm2n)+W4mn=0∑1x(4n+2)exp(−j42πm2n),m∈[0,3]=n=0∑1x(4n)W2mn+W4mn=0∑1x(4n+2)W2mn,m∈[0,1]=x(0)W20+x(4)W2m+W4m[x(2)W20+x(6)W2m],m∈[0,1]=x(0)+x(4)W2m+W4m[x(2)+x(6)W2m],m∈[0,1]
即
X1(0)=x(0)+x(4)+x(2)+x(6)X1(1)=x(0)−x(4)+W41[x(2)−x(6)]
考慮m+2∈[2,3]的情況
X1(m+2)=n=0∑1x(4n)W2(m+2)n+W4m+2n=0∑1x(4n+2)W2(m+2)n,m∈[0,1]=n=0∑1x(4n)W2mnexp(−j2πn)+W4mexp(−jπ)n=0∑1x(4n+2)W2mnexp(−j2πn),m∈[0,1]=n=0∑1x(4n)W2mn−W4mn=0∑1x(4n+2)W2(m+2)n,m∈[0,1]=x(0)W20+x(4)W2m−W4m[x(2)W20+x(6)W2m],m∈[0,1]=x(0)+x(4)W2m−W4m[x(2)+x(6)W2m],m∈[0,1]
即
X1(2)=x(0)+x(4)−[x(2)+x(6)]X1(3)=x(0)−x(4)−W41[x(2)−x(6)]
2、對X2(m)進行奇偶分解,有
X2(m)=n=0∑1x(2(2n)+1)W4m2n+n=0∑1x(2(2n+1)+1)W4m(2n+1),m∈[0,3]=n=0∑1x(4n+1)exp(−42πm2n)+W4mn=0∑1x(4n+3)exp(−j42πm2n),m∈[0,3]=n=0∑1x(4n+1)W2mn+W4mn=0∑1x(4n+3)W2mn,m∈[0,1]=x(1)W20+x(5)W2m+W4m[x(3)W20+x(7)W2m],m∈[0,1]=x(1)+x(5)W2m+W4m[x(3)+x(7)W2m],m∈[0,1]
即
X2(0)=x(1)+x(5)+x(3)+x(7)X2(1)=x(1)−x(5)+W41[x(3)−x(7)]
考慮m+2∈[2,3]的情況
X2(m+2)=n=0∑1x(4n+1)W2(m+2)n+W4m+2n=0∑1x(4n+3)W2(m+2)n,m∈[0,1]=n=0∑1x(4n+1)W2mnexp(−j2πn)+W4mexp(−jπ)n=0∑1x(4n+3)W2mnexp(−j2πn),m∈[0,1]=n=0∑1x(4n+1)W2mn−W4mn=0∑1x(4n+3)W2mn,m∈[0,1]=x(1)W20+x(5)W2m−W4m[x(3)W20+x(7)W2m],m∈[0,1]=x(1)+x(5)W2m−W4m[x(3)+x(7)W2m],m∈[0,1]
即
X2(2)=x(1)+x(5)−[x(3)+x(7)]X2(3)=x(1)−x(5)−W41[x(3)−x(7)]
將X1(m)和X2(m)分解後的表達式代回X(m)和X(m+4)中,有
X(m)X(m+2)X(m+4)X((m+2)+4)m=X1(m)+W8mX2(m)=X1(m+2)+W8m+2X2(m+2)=X1(m)−W8mX2(m)=X1(m+2)−W8m+2X2(m+2)∈[0,1]
將m∈[0,1]代入,得到X(0),X(1),...,X(7)的表達式
X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)=x(0)−x(4)+W41[x(2)−x(6)]+W81{x(1)−x(5)+W41[x(3)−x(7)]}=x(0)+x(4)−[x(2)+x(6)]+W82{x(1)+x(5)−[x(3)+x(7)]}=x(0)−x(4)−W41[x(2)−x(6)]+W83{x(1)−x(5)−W41[x(3)−x(7)]}=x(0)+x(4)+x(2)+x(6)−[x(1)+x(5)+x(3)+x(7)]=x(0)−x(4)+W41[x(2)−x(6)]−W81{x(1)−x(5)+W41[x(3)−x(7)]}=x(0)+x(4)−[x(2)+x(6)]−W82{x(1)+x(5)−[x(3)+x(7)]}=x(0)−x(4)−W41[x(2)−x(6)]−W83{x(1)−x(5)−W41[x(3)−x(7)]}
即
X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)=x(0)−x(4)−j[x(2)−x(6)]+exp(−j4π){x(1)−x(5)−j[x(3)−x(7)]}=x(0)+x(4)−[x(2)+x(6)]−j{x(1)+x(5)−[x(3)+x(7)]}=x(0)−x(4)+j[x(2)−x(6)]+exp(−j43π){x(1)−x(5)+j[x(3)−x(7)]}=x(0)+x(4)+x(2)+x(6)−[x(1)+x(5)+x(3)+x(7)]=x(0)−x(4)−j[x(2)−x(6)]−exp(−j4π){x(1)−x(5)−j[x(3)−x(7)]}=x(0)+x(4)−[x(2)+x(6)]+j{x(1)+x(5)−[x(3)+x(7)]}=x(0)−x(4)+j[x(2)−x(6)]−exp(−j43π){x(1)−x(5)+j[x(3)−x(7)]}