什麼是快速傅立葉轉換(FFT)

以較少的運算正確計算離散傅立葉轉換(DFT)的演算法總稱。代表性的方法(Cooley-Tukey演算法)把N點的DFT依序分解成一半大小的DFT,並把共同的計算合併,使運算次數從依定義的約 N² 次減少到約 N log₂N 次。N = 1024 時約為100分之1。點數為2的冪次時形式最簡單,但也有適用於其他點數的方法。除了頻譜分析之外,也用於OFDM的調變與解調,以及長摺積的快速計算。

日文名稱: 高速フーリエ変換(FFT)

「快速傅立葉轉換(FFT)」出現在2領域的4道練習題中(數位訊號處理基礎, 無線通訊基礎等)。

這個名詞所屬的領域: 數位訊號處理基礎

為什麼會變快

把N點的DFT分成偶數編號與奇數編號取樣值的兩個 N/2 點DFT,只要乘上旋轉因子 e^(−j2πk/N) 再加減,就能組合出原本的結果。重複這個步驟會分成 log₂N 級,每級約 N 次運算,因此整體約為 N log₂N。這組加減運算因其形狀而稱為「蝶形運算」。

能快多少

比為 N/log₂N,N = 1024 時為 1024 ÷ 10 = 102.4,N = 65536 時為 65536 ÷ 16 = 4096。點數越大效果越大,對即時頻譜顯示,以及像通訊接收機這樣連續計算許多DFT的用途不可或缺。

以FFT計算摺積

兩個序列的摺積在頻率側會成為乘法。因此把兩者以FFT轉換後相乘,再以反FFT轉回,就能以比直接計算更少的運算求得長FIR濾波器的摺積。不過DFT之間的乘法相當於循環摺積,必須以補零使長度一致,防止兩端的環繞。

練習快速傅立葉轉換(FFT)的題目

假設N點的DFT依定義計算約需 N² 次運算,以FFT(快速傅立葉轉換)則約需 N log₂N 次。N = 1024 時,FFT減少運算次數的程度最接近下列何者?

  1. A約10分之1
  2. B約100分之1
  3. C約1000分之1
查看答案與解析

正確答案:B. 約100分之1

N² = 1024² ≈ 105萬,N log₂N = 1024 × 10 = 10240,比為 N/log₂N = 1024 ÷ 10 = 102.4,也就是約100分之1。N 越大差距越大,例如 N = 65536 時約為4096分之1。FFT把DFT依序分解成一半大小的DFT,並把共同的計算合併,藉此減少運算。

常見問題

FFT的點數一定要是2的冪次嗎?

不一定。2的冪次時通常最簡單也最快,但也有分解成3、5等因數的混合基數FFT,以及處理質數點數的方法,一般的函式庫能計算任意點數。想湊成2的冪次時,也可以用補零增加點數。

FFT的結果與DFT相同嗎?

兩者計算的是相同的值,因此除了捨入誤差之外一致。FFT不是近似,而是調整計算順序、更快得到相同結果的演算法。

解析中的「快速傅立葉轉換(FFT)」

出現「快速傅立葉轉換(FFT)」的題目(4題)

  1. 假設N點的DFT依定義計算約需 N² 次運算,以FFT(快速傅立葉轉換)則約需 N log₂N 次。N = 1024 時,FFT減少運算次數的程度最接近下列何者?
  2. 在256點訊號之後補上768個0(補零),計算1024點的DFT。與直接以256點計算DFT相比,下列敘述何者正確?
  3. 關於OFDM(正交分頻多工),下列說明何者適當?
  4. 在OFDM中,把各符元尾端的一部分複製後加到符元開頭的循環前綴(CP),其主要目的為下列何者?

相關名詞

正交分頻多工(OFDM) 頻率解析度 有限脈衝響應濾波器(FIR) 降取樣 差分方程式 脈衝響應 移動平均濾波器 無限脈衝響應濾波器(IIR) 窗函數 群延遲

前往名詞解釋列表