補零與頻譜泄露

頻譜泄露

  頻譜泄露與傅里葉變換尤其是離散時間傅里葉變換有關,對於頻譜泄露,通常的解釋是這樣的:
  信號爲無限長序列,運算需要截取其中一部分(截斷),於是需要加窗函數,加了窗函數相當於時域相乘,於是相當於頻域卷積,於是頻譜中除了本來該有的主瓣之外,還會出現本不該有的旁瓣,這就是頻譜泄露!爲了減弱頻譜泄露,可以採用加權的窗函數,加權的窗函數包括平頂窗、漢寧窗、高斯窗等等。而未加權的矩形窗泄露最爲嚴重。
爲了說明頻譜泄露,一下子引入了時域、頻域、窗函數、卷積、主瓣、旁瓣等等抽象的概念。
頻譜泄露有這麼複雜嗎?頻譜泄露到底是什麼意思?
  一句話,頻譜泄露就是分析結果中,出現了本來沒有的頻率分量。比如說,50Hz的純正弦波,本來只有一種頻率分量,分析結果卻包含了與50Hz頻率相近的其它頻率分量。
更簡單的描述是:分析結果與實際不一致!


  造成頻譜泄露的原因在於傅里葉變換的輸入信號不能準確的、完整的代表被分析信號,輸出產生的一種誤差,這種誤差可以通過加合適的窗函數或延長時間窗得以改善,當輸入信號的不完整性達到一定程度,輸出是一種錯誤的結果。
  對於週期信號,整週期截斷是不發生頻譜泄露的充分且必要條件,抑制頻譜泄露應該從源頭抓起,儘可能進行整週期截斷。
如x(n)=cos(2π/N),(n=0,1,2,3…..N-1,) N點的fft則不會發生泄露,但2N,或N+1,N+2等均會引起失真,而引起失真可以從表達式上可以看出 X(K)=卷積以後的頻譜在2π/N*k的取樣值,所以如果是2N的dft,爲2π/2N*K,相當於N點dft結果各個值中間再取樣了一個值,而
2π/(N+2)*k,就與N點fft完全不一樣了。


  解決辦法:可以擴大窗函數的寬度(時域上的寬了,頻域上就窄了,(時域頻域有相對性),也就是泄露的能量就小了)或者不要加矩形的窗函數,可以加緩變的窗函數,也可以讓泄露的能量變小。因爲泄露造成成頻譜的擴大,所以也可能會造成頻譜混疊的現象,而泄露引起的後果就是降低頻譜分辨率。
  頻譜泄露會令主譜線旁邊有很多旁瓣,這就會造成譜線間的干擾,更嚴重就是旁瓣的能量強到分不清是旁瓣還是信號本身的,這就是所謂的譜間干擾。


柵欄效應

  柵欄效應描述的是信號採樣時只能得到採樣點的信息,而忽略了採樣間隔中數據信息的現象。不管是時域採樣還是頻域採樣,都有相應的柵欄效應,只是當時域採樣滿足採樣定理時,柵欄效應不會有什麼影響。而頻域採樣的柵欄效應則影響很大,“擋住”或丟失的頻率成分有可能是重要的或具有特徵的成分,使信號處理失去意義。減小柵欄效應可用提高採樣間隔也就是頻率分辨力的方法來解決。間隔小,頻率分辨力高,被“擋住”或丟失的頻率成分就會越少。但會增加採樣點數,使計算工作量增加。
  
  連續時間信號經採樣、截斷後的序列爲Xn(n),其頻譜函數XN(ejw),並不隨序列末端補零而改變,信號的頻分辨率爲Fs/N.序列末端補零隻能提高信號頻譜顯示的分辨率。換句話說,如果連續時間信號在離散化或時域加窗截斷過程中,由於頻譜泄漏或混疊等原因已造成信號頻譜中信息的失真,則無論怎麼補零做DFT,都無法再恢復已損失的信息。
提高信號的頻率分辨率只有提高信號的採樣頻率或增加序列的截斷長度
N(信號的持續時間加長)。

爲什麼FFT時域補0後,經FFT變換就是頻域進行內插?
  應該這樣來理解這個問題:
補0後的DFT(FFT是DFT的快速算法),實際上公式並沒變,變化的只是頻域項(如:補0前FFT計算得到的是m*2*pi/M處的頻域值,而補0後得到的是n*2*pi/N處的頻域值),M爲原DFT長度,N變成了補0後的長度。將(-pi,pi)從原來的M份變成了N份,如果將補0前後的這些頻域值畫在座標上,其中m*2*pi/M和n*2*pi/N重合的部分,它所對應的頻域值(變換後的值)是不變的,而在原來的M份裏多了(N-M)份的分量,即在頻域內多了(N-M)份插值,這樣理解就清楚了。


補零好處有二:
  其一是,可使數據點數爲2的整次冪,以便於使用FFT
  其二,對原數據起到了做插值的作用,一方面克服“欄柵”效應,使譜的外觀平滑,
  另一方面,由於對數據截短時引起的頻域泄漏,有可能在頻譜中出現一些難以確認的譜峯(見《數字信號處理》課本147頁圖6-13),補零後有可能消除這種現象。


FFT補零:
  N點DFT的頻譜分辨率是2π /N。柵欄效應一節指出可以通過補零觀察到更多的頻點(見《數字信號處理》課本148頁),但是這並不意味着補零能夠提高真正的頻譜分辨率。這是因爲x[n]實際上是x(t) 採樣的主值序列,而將x[n]補零得到的x’[n] 週期延拓之後與原來的序列並不相同,也不是x(t)的採樣。因此已是不同離散信號的頻譜。對於補零至M點的x’的DFT,只能說它的分辨率2π /M僅具有計算上的意義,並不是真正的、物理意義上的頻譜。頻譜分辨率的提高只能在滿足採樣定理的條件下增加時域有效的採樣長度來實現(見《數字信號處理》課本146頁),而補零並不是時域信號的有效數據。

補零與離散傅里葉變換的分辨率

  離散傅里葉變換(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的倒數。這點從數學公式上可以很容易得到:

fsN=1NTs=1/T

  舉個例子說,如果輸入信號的時長爲10s,那麼無論採樣頻率爲多少,當然前提是要滿足奈奎斯特定理,其分辨率爲1/10=0.1Hz。
數據後面補零—-不能提高信號的頻率分辨率
  序列末端補零後,儘管信號的頻譜不會變化,但對序列做補零後L點
DFT後,計算出的頻譜實際上是原信號頻譜在[0,2*pi)區間上L個等間隔採樣,從而增加了對真實頻譜採樣的點數,並改變了採樣點的位置,這將會顯示出原信號頻譜的更多的細節。故而數據後面補零可以克服柵欄效應。數據間隔補零不能提高信號的頻率分辨率數據插值相當於提高了信號的採樣率,可以提高信號的頻率分辨率
發佈了11 篇原創文章 · 獲贊 72 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章