【數字信號處理】【傅里葉分析】【FFT】快速傅里葉變換的完整公式推導

給出離散傅里葉變換DFT的公式:
DFT[x(n)]=X(m)=n=0N1x(n)exp(j2πmnN),m[0,N1]=x(0)exp(j2πm0N)+x(1)exp(j2πm1N)+x(2)exp(j2πm2N)+x(3)exp(j2πm3N)+...\begin{aligned} DFT[x(n)]=X(m)&=\sum_{n=0}^{N-1}x(n)exp(-j\frac{2\pi mn}{N}),m\in[0,N-1]\\ &=x(0)exp(-j\frac{2\pi m0}{N})+x(1)exp(-j\frac{2\pi m1}{N})+x(2)exp(-j\frac{2\pi m2}{N})+x(3)exp(-j\frac{2\pi m3}{N})+... \end{aligned}

FFT將DFT公式分成奇和偶兩部分,即,將含x(0),x(2),...x(0),x(2),...的項取出,作爲偶數項,將含x(1),x(3),...x(1),x(3),...的項取出,作爲奇數項,有
X(m)=n=0N21x(2n)exp(j2πm2nN)+n=0N21x(2n+1)exp(j2πm(2n+1)N),m[0,N1]=n=0N21x(2n)exp(j2πmnN2)+exp(j2πmN)n=0N21x(2n+1)exp(j2πmnN2),m[0,N21]\begin{aligned} X(m)&=\sum_{n=0}^{\frac{N}{2}-1}x(2n)exp(-j\frac{2\pi m2n}{N})+\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)exp(-j\frac{2\pi m(2n+1)}{N}),m\in[0,N-1]\\ &=\sum_{n=0}^{\frac{N}{2}-1}x(2n)exp(-j\frac{2\pi mn}{\frac{N}{2}})+\exp(-j\frac{2\pi m}{N})\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)\exp(-j\frac{2\pi mn}{\frac{N}{2}}),m\in[0,\frac{N}{2}-1]\\ \end{aligned}
可以看到經過變換後,mm的取值範圍變成了一半。現在考慮另一半的m,有
X(m+N2)=n=0N21x(2n)exp(j2πn(m+N2)N2)+exp(j2π(m+N2)N)n=0N21x(2n+1)exp(j2πn(m+N2)N2),m[0,N21]=n=0N21x(2n)exp(j2πmnN2)exp(j2πn)+exp(j2πmN)exp(jπ)n=0N21x(2n+1)exp(j2πnmN2)exp(j2πn),m[0,N21]=n=0N21x(2n)exp(j2πmnN2)exp(j2πmN)n=0N21x(2n+1)exp(j2πmnN2),m[0,N21]\begin{aligned} X(m+\frac{N}2)&=\sum_{n=0}^{\frac{N}{2}-1}x(2n)\exp(-j\frac{2\pi n(m+\frac{N}2)}{\frac{N}{2}})+\exp(-j\frac{2\pi (m+\frac{N}2)}{N})\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)\exp(-j\frac{2\pi n(m+\frac{N}2)}{\frac{N}{2}}),m\in[0,\frac{N}{2}-1]\\ &=\sum_{n=0}^{\frac{N}{2}-1}x(2n)\exp(-j\frac{2\pi mn}{\frac{N}{2}})\exp(-j2\pi n)+\exp(-j\frac{2\pi m}{N})\exp(-j\pi)\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)\exp(-j\frac{2\pi nm}{\frac{N}{2}})\exp(-j2\pi n),m\in[0,\frac{N}{2}-1]\\ &=\sum_{n=0}^{\frac{N}{2}-1}x(2n)exp(-j\frac{2\pi mn}{\frac{N}{2}})-\exp(-j\frac{2\pi m}{N})\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)\exp(-j\frac{2\pi mn}{\frac{N}{2}}),m\in[0,\frac{N}{2}-1] \end{aligned}

WNθ=exp(j2πθN)W^\theta_N=\exp(-j\frac{2\pi \theta}{N})
X(m)=n=0N21x(2n)WN2mn+WNmn=0N21x(2n+1)WN2mn,m[0,N21]X(m+N2)=n=0N21x(2n)WN2mnWNmn=0N21x(2n+1)WN2mn,m[0,N21] X(m)=\sum_{n=0}^{\frac{N}{2}-1}x(2n)W_{\frac{N}2}^{mn}+W_N^m\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)W_{\frac{N}2}^{mn},m\in[0,\frac{N}{2}-1]\\ X(m+\frac{N}2)=\sum_{n=0}^{\frac{N}{2}-1}x(2n)W_{\frac{N}2}^{mn}-W_N^m\sum_{n=0}^{\frac{N}{2}-1}x(2n+1)W_{\frac{N}2}^{mn},m\in[0,\frac{N}{2}-1]\\
注意到
n=0N21x(2n)WN2mnn=0N21x(2n+1)WN2mn \sum_{n=0}^{\frac{N}{2}-1}x(2n)W_{\frac{N}2}^{mn} ①\\ \sum_{n=0}^{\frac{N}{2}-1}x(2n+1)W_{\frac{N}2}^{mn} ②
①和②分別是NN點序列x(n)x(n)中對偶數項與奇數項的N2\frac N 2點的DFT。

上述兩個式子X(m)X(m)X(m+N2)X(m+\frac N2)爲FFT的核心公式,即一個NN點DFT可以分成2個N2\frac N2點的DFT,並且前N2\frac N2點DFT與後N2\frac N2點DFT之間,只有正負號的不同,所以可以使用前N2\frac N2點DFT公式中的元素,計算後N2\frac N2點DFT中的元素,使計算量降低。

根據該思路,可以將①和②繼續分解,分別求①中奇數項與偶數項的N4\frac N 4點DFT,和②中奇數項和偶數項的N4\frac N 4點DFT。這樣一直分解下去,直到分解成最簡單的2點DFT爲止。注意到,在FFT中,N點DFT會一分爲二,二分爲四,四分爲八,最後會分解成多個2點DFT,所以N必須是2的冪次。

接下來,本文用一個N=8N=8點FFT進行說明。

首先寫出8點DFT原始公式
DFT[x(n)]=X(m)=n=07x(n)exp(j2πmnN),m[0,7] DFT[x(n)]=X(m)=\sum_{n=0}^{7}x(n)exp(-j\frac{2\pi mn}{N}),m\in[0,7]
根據上文的FFT核心公式,8點DFT可以分爲兩個4點DFT,即
X(m)=n=03x(2n)W4mn+W8mn=03x(2n+1)W4mn,m[0,3]X(m+4)=n=03x(2n)W4mnW8mn=03(2n+1)W4mn,m[0,3] X(m)=\sum_{n=0}^{3}x(2n)W_4^{mn}+W_8^m\sum_{n=0}^3x(2n+1)W_4^{mn},m\in[0,3]\\ X(m+4)=\sum_{n=0}^3x(2n)W_4^{mn}-W_8^m\sum_{n=0}^3(2n+1)W_4^{mn},m\in[0,3]\\

X1(m)=n=03x(2n)W4mnX2(m)=n=03x(2n+1)W4mn X_1(m)=\sum_{n=0}^{3}x(2n)W_4^{mn}\\ X_2(m)=\sum_{n=0}^{3}x(2n+1)W_4^{mn}\\

X(m)=X1(m)+W8mX2(m),m[0,3]X(m+4)=X1(m)W8mX2(m),m[0,3] X(m)=X_1(m)+W_8^mX_2(m),m\in[0,3]\\ X(m+4)=X_1(m)-W_8^mX_2(m),m\in[0,3]\\
1、對X1(m)X_1(m)進行奇偶分解,有
X1(m)=n=01x(2(2n))W4m2n+n=01x(2(2n+1))W4m(2n+1),m[0,3]=n=01x(4n)exp(2πm2n4)+W4mn=01x(4n+2)exp(j2πm2n4),m[0,3]=n=01x(4n)W2mn+W4mn=01x(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]\begin{aligned} X_1(m)&=\sum_{n=0}^{1}x(2(2n))W_4^{m2n}+\sum_{n=0}^1x(2(2n+1))W_4^{m(2n+1)},m\in[0,3]\\ &=\sum_{n=0}^{1}x(4n)\exp(-\frac{2\pi m2n}{4})+W_4^m\sum_{n=0}^1x(4n+2)\exp(-j\frac{2\pi m2n}4),m\in[0,3]\\ &=\sum_{n=0}^{1}x(4n)W_2^{mn}+W_4^m\sum_{n=0}^1x(4n+2)W_2^{mn},m\in[0,1]\\ &=x(0)W_2^0+x(4)W_2^m+W_4^m[x(2)W_2^0+x(6)W_2^m],m\in[0,1]\\ &=x(0)+x(4)W_2^m+W_4^m[x(2)+x(6)W_2^m],m\in[0,1]\\ \end{aligned}

X1(0)=x(0)+x(4)+x(2)+x(6)X1(1)=x(0)x(4)+W41[x(2)x(6)] X_1(0)=x(0)+x(4)+x(2)+x(6)\\ X_1(1)=x(0)-x(4)+W_4^1[x(2)-x(6)]
考慮m+2[2,3]m+2\in[2,3]的情況
X1(m+2)=n=01x(4n)W2(m+2)n+W4m+2n=01x(4n+2)W2(m+2)n,m[0,1]=n=01x(4n)W2mnexp(j2πn)+W4mexp(jπ)n=01x(4n+2)W2mnexp(j2πn),m[0,1]=n=01x(4n)W2mnW4mn=01x(4n+2)W2(m+2)n,m[0,1]=x(0)W20+x(4)W2mW4m[x(2)W20+x(6)W2m],m[0,1]=x(0)+x(4)W2mW4m[x(2)+x(6)W2m],m[0,1]\begin{aligned} X_1(m+2)&=\sum_{n=0}^{1}x(4n)W_2^{(m+2)n}+W_4^{m+2}\sum_{n=0}^1x(4n+2)W_2^{(m+2)n},m\in[0,1]\\ &=\sum_{n=0}^{1}x(4n)W_2^{mn}\exp(-j2\pi n)+W_4^{m}\exp(-j\pi)\sum_{n=0}^1x(4n+2)W_2^{mn}\exp(-j2\pi n),m\in[0,1]\\ &=\sum_{n=0}^{1}x(4n)W_2^{mn}-W_4^{m}\sum_{n=0}^1x(4n+2)W_2^{(m+2)n},m\in[0,1]\\ &=x(0)W_2^0+x(4)W_2^m-W_4^m[x(2)W_2^0+x(6)W_2^m],m\in[0,1]\\ &=x(0)+x(4)W_2^m-W_4^m[x(2)+x(6)W_2^m],m\in[0,1]\\ \end{aligned}

X1(2)=x(0)+x(4)[x(2)+x(6)]X1(3)=x(0)x(4)W41[x(2)x(6)] X_1(2)=x(0)+x(4)-[x(2)+x(6)]\\ X_1(3)=x(0)-x(4)-W_4^1[x(2)-x(6)]
2、對X2(m)X_2(m)進行奇偶分解,有
X2(m)=n=01x(2(2n)+1)W4m2n+n=01x(2(2n+1)+1)W4m(2n+1),m[0,3]=n=01x(4n+1)exp(2πm2n4)+W4mn=01x(4n+3)exp(j2πm2n4),m[0,3]=n=01x(4n+1)W2mn+W4mn=01x(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]\begin{aligned} X_2(m)&=\sum_{n=0}^{1}x(2(2n)+1)W_4^{m2n}+\sum_{n=0}^1x(2(2n+1)+1)W_4^{m(2n+1)},m\in[0,3]\\ &=\sum_{n=0}^{1}x(4n+1)\exp(-\frac{2\pi m2n}{4})+W_4^m\sum_{n=0}^1x(4n+3)\exp(-j\frac{2\pi m2n}4),m\in[0,3]\\ &=\sum_{n=0}^{1}x(4n+1)W_2^{mn}+W_4^m\sum_{n=0}^1x(4n+3)W_2^{mn},m\in[0,1]\\ &=x(1)W_2^0+x(5)W_2^m+W_4^m[x(3)W_2^0+x(7)W_2^m],m\in[0,1]\\ &=x(1)+x(5)W_2^m+W_4^m[x(3)+x(7)W_2^m],m\in[0,1]\\ \end{aligned}

X2(0)=x(1)+x(5)+x(3)+x(7)X2(1)=x(1)x(5)+W41[x(3)x(7)] X_2(0)=x(1)+x(5)+x(3)+x(7)\\ X_2(1)=x(1)-x(5)+W_4^1[x(3)-x(7)]
考慮m+2[2,3]m+2\in[2,3]的情況
X2(m+2)=n=01x(4n+1)W2(m+2)n+W4m+2n=01x(4n+3)W2(m+2)n,m[0,1]=n=01x(4n+1)W2mnexp(j2πn)+W4mexp(jπ)n=01x(4n+3)W2mnexp(j2πn),m[0,1]=n=01x(4n+1)W2mnW4mn=01x(4n+3)W2mn,m[0,1]=x(1)W20+x(5)W2mW4m[x(3)W20+x(7)W2m],m[0,1]=x(1)+x(5)W2mW4m[x(3)+x(7)W2m],m[0,1]\begin{aligned} X_2(m+2)&=\sum_{n=0}^{1}x(4n+1)W_2^{(m+2)n}+W_4^{m+2}\sum_{n=0}^1x(4n+3)W_2^{(m+2)n},m\in[0,1]\\ &=\sum_{n=0}^{1}x(4n+1)W_2^{mn}\exp(-j2\pi n)+W_4^{m}\exp(-j\pi)\sum_{n=0}^1x(4n+3)W_2^{mn}\exp(-j2\pi n),m\in[0,1]\\ &=\sum_{n=0}^{1}x(4n+1)W_2^{mn}-W_4^{m}\sum_{n=0}^1x(4n+3)W_2^{mn},m\in[0,1]\\ &=x(1)W_2^0+x(5)W_2^m-W_4^m[x(3)W_2^0+x(7)W_2^m],m\in[0,1]\\ &=x(1)+x(5)W_2^m-W_4^m[x(3)+x(7)W_2^m],m\in[0,1]\\ \end{aligned}

X2(2)=x(1)+x(5)[x(3)+x(7)]X2(3)=x(1)x(5)W41[x(3)x(7)] X_2(2)=x(1)+x(5)-[x(3)+x(7)]\\ X_2(3)=x(1)-x(5)-W_4^1[x(3)-x(7)]
X1(m)X_1(m)X2(m)X_2(m)分解後的表達式代回X(m)X(m)X(m+4)X(m+4)中,有
X(m)=X1(m)+W8mX2(m)X(m+2)=X1(m+2)+W8m+2X2(m+2)X(m+4)=X1(m)W8mX2(m)X((m+2)+4)=X1(m+2)W8m+2X2(m+2)m[0,1]\begin{aligned} X(m)&=X_1(m)+W_8^mX_2(m)\\ X(m+2)&=X_1(m+2)+W_8^{m+2}X_2(m+2)\\ X(m+4)&=X_1(m)-W_8^mX_2(m)\\ X((m+2)+4)&=X_1(m+2)-W_8^{m+2}X_2(m+2)\\ m&\in[0,1] \end{aligned}
m[0,1]m\in[0,1]代入,得到X(0),X(1),...,X(7)X(0),X(1),...,X(7)的表達式
X(0)=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)X(1)=x(0)x(4)+W41[x(2)x(6)]+W81{x(1)x(5)+W41[x(3)x(7)]}X(2)=x(0)+x(4)[x(2)+x(6)]+W82{x(1)+x(5)[x(3)+x(7)]}X(3)=x(0)x(4)W41[x(2)x(6)]+W83{x(1)x(5)W41[x(3)x(7)]}X(4)=x(0)+x(4)+x(2)+x(6)[x(1)+x(5)+x(3)+x(7)]X(5)=x(0)x(4)+W41[x(2)x(6)]W81{x(1)x(5)+W41[x(3)x(7)]}X(6)=x(0)+x(4)[x(2)+x(6)]W82{x(1)+x(5)[x(3)+x(7)]}X(7)=x(0)x(4)W41[x(2)x(6)]W83{x(1)x(5)W41[x(3)x(7)]}\begin{aligned} X(0)&=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)\\ X(1)&=x(0)-x(4)+W_4^1[x(2)-x(6)]+W_8^1\{x(1)-x(5)+W_4^1[x(3)-x(7)]\}\\ X(2)&=x(0)+x(4)-[x(2)+x(6)]+W_8^2\{x(1)+x(5)-[x(3)+x(7)]\}\\ X(3)&=x(0)-x(4)-W_4^1[x(2)-x(6)]+W_8^3\{x(1)-x(5)-W_4^1[x(3)-x(7)]\}\\ X(4)&=x(0)+x(4)+x(2)+x(6)-[x(1)+x(5)+x(3)+x(7)]\\ X(5)&=x(0)-x(4)+W_4^1[x(2)-x(6)]-W_8^1\{x(1)-x(5)+W_4^1[x(3)-x(7)]\}\\ X(6)&=x(0)+x(4)-[x(2)+x(6)]-W_8^2\{x(1)+x(5)-[x(3)+x(7)]\}\\ X(7)&=x(0)-x(4)-W_4^1[x(2)-x(6)]-W_8^3\{x(1)-x(5)-W_4^1[x(3)-x(7)]\}\\ \end{aligned}

X(0)=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)X(1)=x(0)x(4)j[x(2)x(6)]+exp(jπ4){x(1)x(5)j[x(3)x(7)]}X(2)=x(0)+x(4)[x(2)+x(6)]j{x(1)+x(5)[x(3)+x(7)]}X(3)=x(0)x(4)+j[x(2)x(6)]+exp(j3π4){x(1)x(5)+j[x(3)x(7)]}X(4)=x(0)+x(4)+x(2)+x(6)[x(1)+x(5)+x(3)+x(7)]X(5)=x(0)x(4)j[x(2)x(6)]exp(jπ4){x(1)x(5)j[x(3)x(7)]}X(6)=x(0)+x(4)[x(2)+x(6)]+j{x(1)+x(5)[x(3)+x(7)]}X(7)=x(0)x(4)+j[x(2)x(6)]exp(j3π4){x(1)x(5)+j[x(3)x(7)]}\begin{aligned} X(0)&=x(0)+x(4)+x(2)+x(6)+x(1)+x(5)+x(3)+x(7)\\ X(1)&=x(0)-x(4)-j[x(2)-x(6)]+\exp(-j\frac{\pi}4)\{x(1)-x(5)-j[x(3)-x(7)]\}\\ X(2)&=x(0)+x(4)-[x(2)+x(6)]-j\{x(1)+x(5)-[x(3)+x(7)]\}\\ X(3)&=x(0)-x(4)+j[x(2)-x(6)]+\exp(-j\frac{3\pi}4)\{x(1)-x(5)+j[x(3)-x(7)]\}\\ X(4)&=x(0)+x(4)+x(2)+x(6)-[x(1)+x(5)+x(3)+x(7)]\\ X(5)&=x(0)-x(4)-j[x(2)-x(6)]-\exp(-j\frac{\pi}4)\{x(1)-x(5)-j[x(3)-x(7)]\}\\ X(6)&=x(0)+x(4)-[x(2)+x(6)]+j\{x(1)+x(5)-[x(3)+x(7)]\}\\ X(7)&=x(0)-x(4)+j[x(2)-x(6)]-\exp(-j\frac{3\pi}4)\{x(1)-x(5)+j[x(3)-x(7)]\}\\ \end{aligned}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章