给出离散傅里叶变换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)]}