1. 程式人生 > >一幅圖弄清DFT與DTFT,FFT的關係

一幅圖弄清DFT與DTFT,FFT的關係

很多同學學習了數字訊號處理之後,被裡面的幾個名詞搞的暈頭轉向,比如DFT,DTFT,DFS,FFT,FT,FS等,FT和FS屬於訊號與系統課程的內容,是對連續時間訊號的處理,這裡就不過多討論,只解釋一下前四者的關係。

首先說明一下,我不是數字訊號處理專家,因此這裡只站在學生的角度以最淺顯易懂的性質來解釋問題,而不涉及到任何公式運算。

學過卷積,我們都知道有時域卷積定理和頻域卷積定理,在這裡只需要記住兩點:1.在一個域的相乘等於另一個域的卷積;2.與脈衝函式的卷積,在每個脈衝的位置上將產生一個波形的映象。(在任何一本訊號與系統課本里,此兩條性質有詳細公式證明)

下面,就用這兩條性質來說明DFT,DTFT,DFS,FFT之間的聯絡:

先看圖片:

首先來說圖(1)和圖(2),對於一個模擬訊號,如圖(1)所示,要分析它的頻率成分,必須變換到頻域,這是通過傅立葉變換即FT(Fourier Transform)得到的,於是有了模擬訊號的頻譜,如圖(2);注意1:時域和頻域都是連續的!

但是,計算機只能處理數字訊號,首先需要將原模擬訊號在時域離散化,即在時域對其進行取樣,取樣脈衝序列如圖(3)所示,該取樣序列的頻譜如圖(4),可見它的頻譜也是一系列的脈衝。

所謂時域取樣,就是在時域對訊號進行相乘,(1)×(3)後可以得到離散時間訊號x[n],如圖(5)所示;

由前面的性質1,時域的相乘相當於頻域的卷積,那麼,圖(2)與圖(4)進行卷積,根據前面的性質2知,會在各個脈衝點處出現映象,於是得到圖(6),

它就是圖(5)所示離散時間訊號x[n]的DTFT(Discrete time Fourier Transform),即離散時間傅立葉變換,這裡強調的是“離散時間”四個字。注意2:此時時域是離散的,而頻域依然是連續的。

經過上面兩個步驟,我們得到的訊號依然不能被計算機處理,因為頻域既連續,又週期。我們自然就想到,既然時域可以取樣,為什麼頻域不能取樣呢?這樣不就時域與頻域都離散化了嗎?沒錯,接下來對頻域在進行取樣,頻域取樣訊號的頻譜如圖(8)所示,它的時域波形如圖(7)。

現在我們進行頻域取樣,即頻域相乘,圖(6)×圖(8)得到圖(10),那麼根據性質1,這次是頻域相乘,時域卷積了吧,圖(5)和圖(7)卷積得到圖(9),不出所料的,映象會呈週期性出現在各個脈衝點處。

我們取圖(10)週期序列的主值區間,並記為X(k),它就是序列x[n]的DFT(Discrete Fourier Transform),即離散傅立葉變換。可見,DFT只是為了計算機處理方便,在頻率域對DTFT進行的取樣並擷取主值而已。

有人可能疑惑,對圖(10)進行IDFT,回到時域即圖(9),它與原離散訊號圖(5)所示的x[n]不同呀,它是x[n]的週期性延拓!沒錯,因此你去查詢一個IDFT的定義式,是不是對n的取值區間進行限制了呢?這一限制的含義就是,取該週期延拓序列的主值區間,即可還原x[n]!

FFT呢?FFT的提出完全是為了快速計算DFT而已,它的本質就是DFT!我們常用的訊號處理軟體MATLAB或者DSP軟體包中,包含的演算法都是FFT而非DFT。

DFS,是針對時域週期訊號提出的,如果對圖(9)所示週期延拓訊號進行DFS,就會得到圖(10),只要擷取其主值區間,則與DFT是完全的一一對應的精確關係。這點對照DFS和DFT的定義式也可以輕易的看出。因此DFS與DFT的本質是一樣的,只不過描述的方法不同而已。

不知道經過上面的解釋,您是否明白各種T的關係了呢?如果您不是演算法設計者,其實只要懂得如何使用FFT分析頻譜即可。

其實個人認為,糾結了這麼多,就是為了打破現實模擬世界與計算機數字世界的界限呀!

轉自:部落格園,http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html