1、FFT介紹
快速傅里葉變換:理解爲實現DFT的快速算法,只是單純的讓數字信號處理器DSP跑DFT算法更快點。
傅里葉變換將信號轉換到頻域上去分析,學術研究可以用連續信號,模擬域的傅里葉變換去分析問題,但是計算機是無法分析在模擬域分析問題。DFT將頻域離散分析問題,一般書本上都會對FFT做描述,爲什麼有FFT產生,最重要的原因的就是運算量,書本上對DFT的運算複雜度都作了詳細介紹。
2、FFT算法核心
FFT實現的核心在於旋轉因子具有的性質:
1)週期性:
2)對稱性: 和
3)可約性: 和
對照下圖理解以上3個性質是理解FFT抽取過程,旋轉因子變化的原理。以8點DFT舉例,連續對應下圖,N=8;
現在只關心旋轉因子就可以。以k=1爲例
1)週期性應該比較好理解,直觀去看第k*n點,與轉了k圈或是n圈的重合。
2)對稱性從圖上很容易看出,點1與點5滿足第一個公式,點1與點7共軛對稱滿足
3)可約性從旋轉因子的公式容易得出
上述性質就是實現蝶形運算的關鍵。
FFT實現另一個的關鍵點:將長序列分解成短序列計算
每一級運算都是2點DFT,經過3級運算最終得到8點DFT結果。
這是利用理論公式計算出來的結果
以下圖片摘抄網頁,公式敲起來太麻煩了。
注意:每級奇偶抽取是針對相對應子序列的自然順序的奇偶,不是n的奇偶。例如第二次抽取x(2),x(6)是對應子序列的奇數項。