有关信号处理中的 窗函数
1 信號截斷及能量泄漏效應
數字信號處理的主要數學工具是傅里葉變換。應注意到,傅里葉變換是研究整個時間域和頻率域的關系。然而,當運用計算機實現工程測試信號處理時,不可能對無限長的信號進行測量和運算,而是取其有限的時間片段進行分析。做法是從信號中截取一個時間片段,然后用觀察的信號時間片段進行周期延拓處理,得到虛擬的無限長的信號,然后就可以對信號進行傅里葉變換、相關分析等數學處理。
下面,我又要再一次逃避數學推導,直接上描述性文字。周期延拓后的信號與真實信號是不同的,設有余弦信號x(t)在時域分布為無限長(- ∞,∞),當用矩形窗函數w(t)與其相乘時,得到截斷信號xT(t)=x(t)w(t)。
將截斷信號的譜XT(ω)與原始信號的譜X(ω)相比較可知,它已不是原來的兩條譜線,而是兩段振蕩的連續譜。這表明原來的信號被截斷以后,其頻譜發生了畸變,原來集中在f0處的能量被分散到兩個較寬的頻帶中去了,這種現象稱之為頻譜能量泄漏(Leakage)。
信號截斷以后產生的能量泄漏現象是必然的,因為窗函數w(t)是一個頻帶無限的函數,所以即使原信號x(t)是限帶寬信號,而在截斷以后也必然成為無限帶寬的函數,即信號在頻域的能量與分布被擴展了。又從采樣定理可知,無論采樣頻率多高,只要信號一經截斷,就不可避免地引起混疊,因此信號截斷必然導致一些誤差,這是信號分析中不容忽視的問題。 如果增大截斷長度T,即矩形窗口加寬,則窗譜W(ω)將被壓縮變窄(π/T減小)。雖然理論上講,其頻譜范圍仍為無限寬,但實際上中心頻率以外的頻率分量衰減較快,因而泄漏誤差將減小。當窗口寬度T趨于無窮大時,則譜窗W(ω)將變為δ(ω)函數,而δ(ω)與X(ω)的卷積仍為H(ω),這說明,如果窗口無限寬,即不截斷,就不存在泄漏誤差。 為了減少頻譜能量泄漏,可采用不同的截取函數對信號進行截斷,截斷函數稱為窗函數,簡稱為窗。泄漏與窗函數頻譜的兩側旁瓣有關,如果兩側p旁瓣的高度趨于零,而使能量相對集中在主瓣,就可以較為接近于真實的頻譜,為此,在時間域中可采用不同的窗函數來截斷信號。
2 窗函數
下圖是幾種常用的窗函數的時域和頻域波形,其中矩形窗主瓣窄,旁瓣大,頻率識別精度最高,幅值識別精度最低,如果僅要求精確讀出主瓣頻率,而不考慮幅值精度,則可選用矩形窗,例如測量物體的自振頻率等;布萊克曼窗主瓣寬,旁瓣小,頻率識別精度最低,但幅值識別精度最高;如果分析窄帶信號,且有較強的干擾噪聲,則應選用旁瓣幅度小的窗函數,如漢寧窗、三角窗等;對于隨時間按指數衰減的函數,可采用指數窗來提高信噪比。
如果被測信號是隨機或者未知的,或者是一般使用者對窗函數不大了解,要求也不是特別高時,可以選擇漢寧窗,因為它的泄漏、波動都較小,并且選擇性也較高。但在用于校準時選用平頂窗較好,因為它的通帶波動非常小,幅度誤差也較小。
各種窗函數對比
3 MATLAB中的窗函數
(一) 矩形窗(Rectangle Window),調用格式:w=boxcar(n),根據長度n產生一個矩形窗w。
(二) 三角窗(Triangular Window),調用格式:w=triang(n),根據長度n產生一個三角窗w。
(三) 漢寧窗(Hanning Window),調用格式:w=hanning(n),根據長度n產生一個漢寧窗w。
(四) 海明窗(Hamming Window),調用格式:w=hamming(n),根據長度n產生一個海明窗w。
(五) 布拉克曼窗(Blackman Window),調用格式:w=blackman(n),根據長度n產生一個布拉克曼窗w。
(六) 愷撒窗(Kaiser Window),調用格式:w=kaiser(n,beta),根據長度n和影響窗函數旁瓣的β參數產生一個愷撒窗w。
總結
以上是生活随笔為你收集整理的有关信号处理中的 窗函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xftp 基本使用
- 下一篇: linux错误码61,Linux编程中的