1. 程式人生 > >補零與離散傅立葉變換的解析度

補零與離散傅立葉變換的解析度

     離散傅立葉變換(DFT)的輸入是一組離散的值,輸出同樣是一組離散的值。在輸入訊號而言,相鄰兩個取樣點的間隔為取樣時間Ts。在輸出訊號而言,相鄰兩個取樣點的間隔為頻率解析度fs/N,其中fs為取樣頻率,其大小等於1/Ts,N為輸入訊號的取樣點數。這也就是說,DFT的頻域解析度不僅與取樣頻率有關,也與訊號的取樣點數有關。那麼,如果保持輸入訊號長度不變,但卻對輸入訊號進行補零,增加DFT的點數,此時的解析度是變還是不變?

       答案是此時解析度不變。從時域來看,假定要把頻率相差很小的兩個訊號區分開來,直觀上理解,至少要保證兩個訊號在時域上相差一個完整的週期,也即是相位相差2*pi。舉個例子,假定取樣頻率為1Hz,要將週期為10s的正弦訊號和週期為11s的正弦訊號區分開來,那麼訊號至少要持續110s,兩個訊號才能相差一個週期,此時週期為10s的那個訊號經歷的週期數為11,而11s的那個訊號經歷的週期數為10。轉化到頻域,這種情況下,時域取樣點為110,解析度為1/110=0.00909,恰好等於兩個訊號頻率只差(1/10-1/11)。如果兩個訊號在時域上不滿足“相差一個完整週期“的話,補零同樣也不能滿足“相差一個完整週期”,即解析度不發生變化。另外,從資訊理論的角度,也很好理解,對輸入訊號補零並沒有增加輸入訊號的資訊,因此解析度不會發生變化。

       那麼,補零到底會帶來什麼樣的影響呢?因為DFT可以看做是對DTFT的取樣,補零僅是減小了頻域取樣的間隔。這樣有利於克服由於柵欄效應帶來的有些頻譜洩露的問題。也就是說,補零可以使訊號能在頻域被更細緻地觀察。如果不滿足上述“至少相差一個完整週期”的要求,即便是如DTFT一般在頻域連續,也無法分辨出兩個訊號。

       那麼,影響DFT解析度最本質的物理機制是什麼呢?在於DFT的積累時間,解析度為積累時間T的倒數。這點從數學公式上可以很容易得到:

                          fs/N=1/(N*Ts)=1/T

        舉個例子說,如果輸入訊號的時長為10s,那麼無論取樣頻率為多少,當然前提是要滿足奈奎斯特定理,其解析度為1/10=0.1Hz。

 

一點理解:離散傅立葉變換需要將輸入訊號進行時域週期延拓,週期的倒數即頻率對應於頻域離散點之間的頻率間隔

另外,上述時域訊號補零指的是在序列後面補零。

序列中間補零的話,應該不屬於正常操作,首先,dft以點數進行操作,取樣率已經固定的情況下,中間加入點數會造成實際時間序列的拉昇;其次,插入的零點直接算做時間序列的實際值,實際上是強制改變了原來的訊號。(這裡要注意與訊號拉昇和抽取進行區分)

插值與拉昇:對訊號進行插值,如果取樣率還按之前的算,那麼訊號被拉昇,如果取樣率按照原來的2倍算,那麼就是增加取樣率。訊號橫向的拉昇2倍,在取樣率不變的情況下,取樣到的值與未被拉昇時的取樣值不同,表示為f(\frac{1}{2}t)\cdot\sum\delta{(t-nT)},其實就是對拉昇後的訊號進行了取樣,從fft的序列上看,實際上是在原來取樣的基礎上,中間增加了取樣值,而fft之後,仍然使用之前的取樣率進行計算,那麼,這樣的插值就是對拉昇後的訊號的取樣。假設取樣率按照原來的2倍算,那麼訊號就沒有拉昇,插值的作用表示增加了取樣率。

抽取:對原序列進行抽取的話,如果取樣率還按之前的算,那麼訊號就是被壓縮了,如果按1/2算,那麼就是降取樣。