摘要
本文主要介紹了常見的窗函數以及窗函數有什么用,以及在實時頻譜分析中,該如何選擇合適的加窗方式。
隨著無線通信的逐步發展,帶來的是頻譜環境的越發復雜與豐富,高度的信號變化性使得短時間內信號不再是一成不變。低功率、瞬時性、寬頻帶的特性使得傳統的掃頻式頻譜分析儀有所局限。以目前火熱的UWB定位技術來講,發射能量往往低于-40 dBm/MHz,UWB不使用載波,而是使用短的能量脈沖序列(ns級以下),頻域上帶寬很寬,因此如果想要觀測解析這樣的信號,對于掃頻儀來講就分外吃力。
因此,實時頻譜分析儀逐漸占據了市場。而實時頻譜分析儀需要面對的信號依舊是有挑戰性的,為了能夠適應不同的信號,實時頻譜分析儀在FFT的加窗類型中會給出不同的窗函數,以便在需要的時候為用戶提供了擴展分析能力。
但是很多時候,多種多樣的窗函數會讓人感到迷惑,并不知道針對自己需要觀測的信號,該如何進行選擇,本文將從常見窗函數的角度出發,用盡可能直觀的方式解讀如何為頻譜分析儀選擇合適的加窗方式。
為什么使用窗函數?
首先我們要清楚,數字信號處理(DSP)中很重要的一個內容,也是承載數模轉換的基礎部分是傅立葉變換(Fourier Transform)。從傅里葉實現的機制來看,傅里葉變換都是針對正無窮大和負無窮大的信號,即信號的的長度是無窮大的,但是這對于計算機處理來說是不可能完成的,那么有沒有針對長度有限的傅里葉變換呢?沒有。因此,為了讓計算機實現FFT,就必須將無線信號截取成一段有限長的信號后進行周期延拓,再進行傅立葉變換。
在這個過程中,當截斷時間不等于周期或周期的整數倍時,此時截斷后再延拓時,幅值不連續,FFT時頻轉換之后的頻帶就將出現拖尾,此時我們就可以稱為頻譜能量泄露,幅度峰值下降,頻譜擴散。
很不幸的是,現實世界的操作中,大多數信號在截取時最終都是非周期截取,因此泄露是在計算機執行FFT的過程中很常見的一個現象。
窗函數就是為了解決這個問題而出現的,顧名思義,窗函數就是時域上一個寬度有限的信號起到了對無限信號進行截斷的作用,使得FFT過程僅僅能處理截斷后“窗戶”內的信號。通過合理的窗函數進行截斷,可以有效的減少泄露,需要強調的是,只要是進行了截斷,就必然會產生泄露,窗函數只是減少了泄露而做不到完全的消除。
有哪些窗函數?
正如上文所說,窗函數實際上就是一個截取工具,用來將時域信號“框”起來一部分,再“展示”給FFT函數來進行處理,下面是一個例子:
因此從這一點來看,所有的窗函數都具有相同的功能。不同的窗函數具有不同的頻譜特征,如何來對這些不同的窗函數做對比與定義呢?
上圖是幾種窗函數在頻域的圖像,可以看到實際上盡管這些窗函數在時域上有不同的形態,但是從頻域的角度來看,我們都認為它具有較清晰的主瓣和旁瓣區別。盡管截取這一過程比較直觀的發生在時域,但是泄漏與窗函數的頻譜特征相關的,從頻譜特征能夠更方便的進行解釋:
上圖是窗函數的典型頻譜特征圖,我們提取了這樣幾個頻域特征作為衡量不同窗函數之間的性能指標:最高旁瓣、主瓣等效噪聲帶寬、3dB帶寬、旁瓣衰減。