15 FFT及其框图实现
FFT及其框圖實(shí)現(xiàn)
\(FFT\)的全稱為快速傅里葉變換,但是\(FFT\)并不是一種變換,而是實(shí)現(xiàn)\(DFT\)的一種快速算法。當(dāng)\(N\)比較大時(shí),使用\(FFT\)可大大減少進(jìn)行\(DFT\)變換的計(jì)算量。
\(N\)點(diǎn)的\(DFT\)所需的計(jì)算量為:
\[ X[k]=\sum_{n=0}^{N-1}x[n]W_N^{kn} \]
乘法:\(N^2\)次,加法:\(N(N-1)\)次。每當(dāng)\(N\)提高一倍,計(jì)算量增大四倍。
基\(2\)時(shí)域抽取
假設(shè)有一長(zhǎng)度為\(2N\)的有限長(zhǎng)序列\(x[n]\),現(xiàn)對(duì)其進(jìn)行\(DFT\)變換,現(xiàn)有一算法可以將\(2N\)點(diǎn)的\(DFT\)計(jì)算降為\(N\)的\(DFT\)計(jì)算,記\(g[n]\)為\(x[n]\)的下標(biāo)為偶數(shù)時(shí)的序列,即\(g[n]=x[2n],0\leq n \leq N-1\),記\(v[n]\)為\(x[n]\)的下標(biāo)為奇數(shù)時(shí)的序列,即\(v[n]=x[2n+1],0\leq n \leq N-1\),則
\[ \begin{aligned} X[k]&=\sum_{n=0}^{2N-1}x[n]W_{2N}^{kn}\\ &=\sum_{n=0}^{N-1}x[2n]W_{2N}^{k2n}+\sum_{n=0}^{N-1}x[2n+1]W_{2N}^{k(2n+1)} \\ &=\sum_{n=0}^{N-1}g[n]W_N^{kn}+W_{2N}^k\sum_{n=0}^{N-1}v[n]W_N^{kn} \\ &=G[<k>_N]+W_{2N}^{k}V[<k>_N], 0\leq k \leq 2N-1 \end{aligned} \]
當(dāng)\(0 \leq k \leq N-1\)時(shí)
\[ X[k]=G[k]+W_{2N}^kV[k] \]
當(dāng)\(N \leq k \leq 2N-1\)時(shí)
\[ X[k]=G[<k>_N]+W_{2N}^{k}V[<k>_N]\xrightarrow{k=m+N}G[m]-W_{2N}^{m}V[m], 0\leq m \leq N-1 \]
其中\(g[n]\)和\(v[n]\)的\(DFT\)都是\(N\)點(diǎn)的。
兩個(gè)\(N\)點(diǎn)的\(DFT\)的運(yùn)算量(以乘法為例)為\(2N^2\),而一個(gè)\(2N\)點(diǎn)的\(DFT\)運(yùn)算量為\(4N^2\),計(jì)算量減少了一半!如果\(N=2^r\),則可以一直降下去,從而大大的減少了計(jì)算量。通過計(jì)算,可以知道此時(shí)的計(jì)算量為:乘法:\(\dfrac{N}{2}log_2N\),加法:\(Nlog_2N\)。
下面以8點(diǎn)的\(DFT\)為例,其實(shí)現(xiàn)框圖為:
基\(2\)頻域抽取
依然對(duì)于\(2N\)點(diǎn)的序列\(x[n]\)進(jìn)行\(DFT\)計(jì)算,這次將\(x[n]\)分為前后兩部分,即\(g[n]\)為\(x[n]\)的前\(N\)個(gè)點(diǎn),即\(g[n]=x[n],0 \leq n \leq N-1\),\(v[n]\)為\(x[n]\)的后\(N\)個(gè)點(diǎn),即\(v[n]=x[n+N],0\leq n\leq N-1\),則:
\[ \begin{aligned} X[k]&=\sum_{n=0}^{2N-1}x[n]W_{2N}^{kn}\\ &=\sum_{n=0}^{N-1}x[n]W_{2N}^{kn}+\sum_{n=N}^{2N-1}x[n]W_{2N}^{kn} \\ &=\sum_{n=0}^{N-1}x[n]W_{2N}^{kn}+\sum_{m=0}^{N-1}x[m+N]W_{2N}^{k(m+N)}\\ &=\sum_{n=0}^{N-1}g[n]W_{2N}^{kn}+(-1)^k\sum_{n=0}^{N-1}v[n]W_{2N}^{kn} \end{aligned} \]
對(duì)其進(jìn)行頻域抽取
\[ X[2r]=\sum_{n=0}^{N-1}g[n]W_{2N}^{2rn}+\sum_{n=0}^{N-1}v[n]W_{2N}^{2rn}=G[k]+V[k],0\leq r \leq N-1 \]
\[ X[2r+1]=\sum_{n=0}^{N-1}g[n]W_{2N}^{(2r+1)n}-\sum_{n=0}^{N-1}v[n]W_{2N}^{(2r+1)n}=W_{2N}^{n}(G[k]-V[k]) \]
該算法也將\(2N\)點(diǎn)的\(DFT\)降為了2個(gè)\(N\)點(diǎn)的\(DFT\)。
將上面時(shí)域抽取的實(shí)現(xiàn)框圖中所有的\(x[n]\)換成\(X[k]\),然后所有箭頭反向,即輸入變輸出,輸出變輸入,得到的框圖就是頻域抽取實(shí)現(xiàn)的框圖。
轉(zhuǎn)載于:https://www.cnblogs.com/LastKnight/p/10958076.html
總結(jié)
以上是生活随笔為你收集整理的15 FFT及其框图实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试第七次作业
- 下一篇: 在博客园的博客插入代码块(高亮、行号、缩