數字信號處理筆記3FFT

FFT

1直接計算DFT演算法存在的問題及改進途徑。

要進行N次複數乘法+(N-1)次複數加法

利用DFT運算的係數 的固有對稱性和周期性,改善DFT的運算效率。

合併法:合併DFT運算中的某些項。

分解法:將長序列DFT利用對稱性和周期性,分解為短序列DFT。

?2.多種DFT演算法(時間抽取演算法DIT演算法,頻率抽取演算法DIF演算法,線性調頻Z變換即CZT法)?按「基數」分:基-2FFT演算法;基-4FFT演算法;混合基FFT演算法;分裂基FFT演算法

基--2按時間抽取的FFT演算法Decimation-in-Time(DIT)(Coolkey-Tukey)

?設輸入序列長度為N=2^M(M為正整數,將該序列按時間順序的奇偶分解為越來越短的子序列,稱為基2按時間抽取的FFT演算法。也稱為Coolkey-Tukey演算法。

?其中基數2----N=2^M,M為整數.若不滿足這個條件,可以人為地加上若干零值(加零補長)使其達到 N=2^M.

演算法步驟

按時間抽取的FFT演算法與直接計算DFT運算量的比較

? 由前面介紹的按時間抽取的FFT運算流圖可見:

每級都由N/2個蝶形單元構成,因此每一級運算都

需要N/2次復乘和N次復加(每個結加減各一次)。這

樣(N=2M)M級運算共需要:

? 可以得出如下結論:

按時間抽取法所需的復乘數和復加數都是與

成正比。而直接計算DFT時所需的復乘數與復加數則都

是與N2成正比.(復乘數md=N2,復加數ad=N(N-1)≈N^2)

按時間抽取 FFT 演算法的特點

?根據DIT基2-FFT演算法原理,能得出任何N=2m點的FFT信號流圖,並進而得出FFT計算程序流程圖。最後總結出按時間抽取法解過程的規律。

?1.原位運算(in-place)

?原位運算的結構,可以節省存儲單元,降低設備成本。

定義:當數據輸入到存儲器以後,每一組運算的結果,仍然存放在這同一組存儲器中直到最後輸出

?2.碼位倒讀規則

我們從輸入序列的號及整規律得到碼位倒讀規則。由 N=8 蝶形圖看出:原位計算時, FFT 輸出的 X(k) 的次序正好是順排列, 即X(0)…7), 但輸入 x(n) 都不能按自然順序 存入到儲單元中,而是按 x(0),4),2), x(0),4),2),

x(6)…. 的順序存入儲單元即為 亂序輸入 亂序輸入 亂序輸入 亂序輸入 , 順序輸出 順序輸出 順序輸出 。這種順序看起來相當雜亂,然而 。這種順序看起來相當雜亂,然而 。這種順序看起來相當雜亂,然而

故有:輸入是自然順序而輸出是亂序,輸入和輸出都是自然順序

基--2按頻率抽取的FFT演算法Decimation-in-Frequency(DIF)(Sander-Tukey)

演算法原理:

?設輸入序列長度為N=2^M(M為正整數,將該序列的頻域的輸出序列X(k)(也是M點序列,按其頻域順序的奇偶分解為越來越短的子序列,稱為基2按頻率抽取的FFT演算法。也稱為Sander-Tukey演算法。

(a)輸入自然順序,輸出亂序且滿足碼位倒置規則。

(b)根據時域、頻域互換,可知:輸入亂序,輸出自然順序。

?不同之處:

(1)DIF與DIT兩種演算法結構倒過來。

DIF為輸入順序,輸出亂序。運算完畢再運行「二進位倒讀」程序。

DIT為輸入亂序,輸出順序。先運行「二進位倒讀」程序,再進行求DFT。

(2)DIF與DIT根本區別:在於蝶形結不同。

DIT的複數相乘出現在減法之前。

DIF的複數相乘出現在減法之後。

IFFT運算方法

線性調頻Z變換

?Z變 換 採用 螺 線 抽 樣, 可 適用 於 更 一 般 情 況 下 由 x(n) 求X(zk) 的 快 速 算 法, 這 種 變 換 稱 為 線 性 調 頻 Z 變 換 ( 簡 稱 CZT).

?3.FFT的應用

?凡是利用付里葉變換來進行分析、綜合、變換…的地方,都可以利用FFT演算法來減少其計算量。

?FFT主要應用在

(1)快速卷積

(2)快速相關

(3)頻譜分析

推薦閱讀:

MATLAB R2018a中信號處理相關的新函數: 求瞬時頻率 instfreq, emd, hht
數據採集與處理系統的抗干擾措施
走樣與反走樣(Aliasing/Anti-Aliasing):Basics
改善EMD端點效應的方法

TAG:數字信號處理 |