窗函數 (英語:window function )在信號處理 中是指一種除在給定區間 之外取值均為0的實函數 。譬如:在給定區間內為常數 而在區間外為0的窗函數被形象地稱為矩形窗 。
任何函數與窗函數之積仍為窗函數,所以相乘的結果就像透過窗口「看」其他函數一樣。窗函數在頻譜 分析、濾波器設計 、波束形成、以及音頻數據壓縮(如在Ogg Vorbis 音頻格式中)等方面有廣泛的應用。
頻譜分析
從理論上可以得出函數
cos
(
ω
t
)
{\displaystyle \cos(\omega t)\,}
的傅立葉變換 除了在頻率
±
ω
{\displaystyle \pm \omega \,}
之外處處為 0。但是許多其它的函數或者波形數據並沒有這樣方便的閉式變換,或者是我們只對某一時間範圍內的頻譜數據感興趣,在這種情況下,就需要對有限時間範圍的波形進行傅立葉變換或者其它類似的變換。通常通過波形與一個窗函數的乘積來表示。但是,包括矩形窗在內的所有窗函數都會對待測頻譜產生影響。
離散時間信號
當輸入波形是採樣信號而非連續信號時,傅立葉分析通常對信號應用窗函數並用離散傅立葉變換。但是離散傅里葉變換 得到的頻譜只是離散時間傅里葉變換 頻譜的一個粗糙採樣。上圖是正弦信號應用矩形窗後傅立葉頻譜的一部分。位於橫軸0點位置的是正弦信號真實頻譜,其餘頻譜均為譜泄漏。頻率單位為「DFT bins」(DFT 量化單位)即這些整數值是DFT採樣得到的頻率。所以該圖顯示了這樣一種情況,正弦信號的實際頻率正好與DFT的採樣頻率一致,並且頻譜的最大值通過採樣得到。採樣錯過最大值時的測量誤差被稱為「扇形損失」(名稱源於頂點的形狀)。但是這種狀況下最有趣的是那些與實際頻譜相一致的即值為零的那些點。這種情況下,DFT創造了沒有泄露的假象。儘管不如本例這樣,泄露是DFT中人為引入的也是普遍誤解。但是既然任何窗函數都有泄露,那些表面上的不存在泄露才是人為造成的。
總泄漏
概念的解像度和動態範圍往往是有些主觀的,這取決於用戶的實際意圖。但他們也往往是高度相關,與總洩漏,這是量化的。它通常表示為一個等效帶寬,B認為它作為再分配DTFT成長方形的高度等於頻譜寬度 B的最大和洩漏的,更大的帶寬。它有時被稱為噪聲等效帶寬或等效噪聲帶寬,因為它是成正比的平均功率將每個登記的DFT並當輸入信號包含隨機噪聲組件(或者只是隨機噪聲)。圖的功率譜,平均隨着時間的推移,通常顯示一個單位的噪聲底,造成這種效果。噪聲的高度層是成正比的,所以乙兩個不同的窗口功能可以產生不同的噪音樓層。
處理增益與損耗
三種不同窗函數造成的處理損耗
在信號處理 中,透過某些操作,可以利用信號和噪聲之間性質的差異,來提高信號某些方面的品質。當某個正弦信號隨機地疊加的破壞性噪聲,頻譜分析能區別的信號與噪聲的分量,往往能使檢測信號的某些特性更容易,如測量振幅和頻率。比如說,若將大多數的正弦信號能量集中於一個頻率附近,並將噪聲均勻分佈,能有效的改善信噪比 (signal to noise ratio, SNR )。處理增益 通常用來描述SNR改善的程度。頻譜分析的處理增益取決於窗函數的噪聲頻寬(B) 和潛在的扇形損失 。這些效果可能部分抵消,因為窗函數有最少的扇形自然有最大的滲漏。
右圖描述了三種不同的窗函數對相同的數據的影響。此數據包含兩個相等強度的正弦信號與外加的噪聲。兩正弦波的頻率被定為其中一個無扇形而另一個有最大扇形。兩個正弦信號在Hann Window下都造成比Blackman–Harris window更少的信噪比損耗。
一般情況下,這防止我們在低動態範圍的應用採用高動態範圍的窗。
不應使用窗函數的應用
在一些應用中,最好不使用窗函數。例如:
在衝擊模型測試中,當分析暫態 信號,如重錘打擊產生的激發信號(脈衝激發技術 )時,大部分能量位於記錄的開頭。若使用非矩形的窗,會無謂的減弱大部分能量和傳播頻率響應 。
上述的一種推廣,當測量自窗口信號 ,如脈衝 ,衝擊響應 ,正弦叢發 ,連續變頻叢發,噪聲叢發時,這樣的信號使用模態分析。在這種情況下應用窗函數只會惡化信噪比。
測量一個週期T的虛擬隨機噪聲 (PRN)激發信號,並使用相同的記錄週期T時。PRN信號是週期性的,因此,該信號的所有頻譜分量將會與FFT區間中心重合而無洩漏。
當測量被鎖定於採樣頻率的重複信號,例如在測量的振動頻譜分析的軸對準,軸承,發動機,變速器等的故障診斷。由於信號是重複的,所有的頻譜能量被限制到基本的重複頻率的整數倍。
在正交分頻多工 (OFDM)接收器中,輸入信號不經窗函數,被直接乘以FFT。的頻率子載波(也稱為符號)被設計為恰好對齊FFT頻率區間。一個Cyclic prefix通常添加到所傳輸的信號,使得肇因於多徑 的頻率 選擇性衰落 可用圓周摺積 模擬,從而避免了在OFDM中相當於頻譜洩漏 的符號間干擾 。
典型的窗函數
矩形窗(Rectangular)
每個DFT過程都被窗所修飾限制,因為一個有限時間序列等效上是由無限長時間序列乘上一長度與資料區塊長度相同(NΔt)的矩形窗。在矩形窗的例子中,其DFT是由訊號本身的DFT及一矩形的DFT做迴旋所產生,然而矩形窗屬於時間變量的零次冪窗。矩形窗使用最多,
習慣上不加窗就是使信號通過了矩形窗。這種窗的優點是主瓣比較集中,缺點是旁瓣較高,並有負旁瓣,導致變換中帶進了高頻干擾和洩漏,甚至出現負譜現象。
矩形窗; B=1.00
w
(
n
)
=
1
{\displaystyle w(n)=1\,}
高斯窗
高斯窗, σ=0.4; B=1.45
w
(
n
)
=
e
−
1
2
(
n
−
(
N
−
1
)
/
2
σ
(
N
−
1
)
/
2
)
2
{\displaystyle w(n)=e^{-{\frac {1}{2}}\left({\frac {n-(N-1)/2}{\sigma (N-1)/2}}\right)^{2}}}
σ
≤
0.5
{\displaystyle \sigma \leq \;0.5\,}
高斯函數經由傅立葉轉換得到的結果,仍然是高斯函數。由於高斯函數會向無限大與負無限大處無限延伸,因此一般都會設定一個截斷高斯函數的閾值,或是將高斯函數搭配其他兩端數值為零的函數。
另外,由於取高斯函數的對數會產生拋物曲線,此性質可用於頻率估測的近二次內插中。
受限高斯窗
Confined Gaussian window, σ t = 0.1; B = 1.9982.
受限高斯窗在給定時間寬度 Nσ t 下,將產生最小可能的方均根頻率寬度 σ ω ,並最佳化方均根時頻帶寬的乘積。
近似受限高斯窗
Approximate confined Gaussian window, σ t = 0.1; B = 1.9979.
近似受限高斯窗,在給定時間寬度 Nσ t 下,可由下方的式子進一步近似:
w
(
n
)
=
G
(
n
)
−
G
(
−
1
2
)
[
G
(
n
+
N
)
+
G
(
n
−
N
)
]
G
(
−
1
2
+
N
)
+
G
(
−
1
2
−
N
)
{\displaystyle w(n)=G(n)-{\frac {G(-{\tfrac {1}{2}})[G(n+N)+G(n-N)]}{G(-{\tfrac {1}{2}}+N)+G(-{\tfrac {1}{2}}-N)}}}
其中 Gaussian 定義為:
G
(
x
)
=
e
−
(
x
−
N
−
1
2
2
N
σ
t
)
2
{\displaystyle G(x)=e^{-\left({\cfrac {x-{\frac {N-1}{2}}}{2N\sigma _{t}}}\right)^{2}}}
Hamming窗與Hann窗
w
(
n
)
=
a
0
−
(
1
−
a
0
)
⏟
a
1
⋅
cos
(
2
π
n
N
−
1
)
,
0
≤
n
≤
N
−
1
,
{\displaystyle w(n)=a_{0}-\underbrace {(1-a_{0})} _{a_{1}}\cdot \cos \left({\tfrac {2\pi n}{N-1}}\right),\quad 0\leq n\leq N-1,}
當
a
0
=
0.53836
{\displaystyle a_{0}=0.53836}
,稱作 Hamming窗 ;當
a
0
=
0.5
{\displaystyle a_{0}=0.5}
則叫作 Hann窗 。
Hann窗
Hann窗; B=1.50
w
(
n
)
=
0.5
(
1
−
cos
(
2
π
n
N
−
1
)
)
{\displaystyle w(n)=0.5\;\left(1-\cos \left({\frac {2\pi n}{N-1}}\right)\right)}
Hann窗 有時也稱為 "Hanning" 窗(「漢寧窗」),以與 Hamming 窗的名稱類似。但是這是不對的,因為這兩個窗是分別根據 Julius von Hann 和 Richard Hamming 的名字命名的。
Hann窗又稱升餘弦窗。Hann窗可以看作是3個矩形時間窗的頻譜之和,或者說是 3個 sinc(t) 型函數之和,而括號中的兩項相對於第一個譜窗向左、右各移動了π/T,從而使旁瓣互相抵消,消去高頻干擾和漏能。
從減小泄漏觀點出發,Hann窗優於矩形窗。但Hann窗主瓣加寬,相當於分析帶寬加寬,頻率分辨力下降。
Hamming窗
Hamming窗; B=1.37
w
(
n
)
=
0.53836
−
0.46164
cos
(
2
π
n
N
−
1
)
{\displaystyle w(n)=0.53836-0.46164\;\cos \left({\frac {2\pi n}{N-1}}\right)}
如果我們將
a
0
{\displaystyle a_{0}}
設為接近 0.53836 的數值,或是更精確來說是 25/46,便會得到Hamming窗,而設定這個數值的用意,是在頻率為 5π/(N − 1) 處產生零交會處(zero-crossing),使原先Hann窗的第一個旁瓣(sidelobe)可以被大幅消除,產生只有Hann窗 1/5 高度的旁瓣。
Bartlett窗(端點值為0)
Bartlett窗; B=1.33
w
(
n
)
=
2
N
−
1
⋅
(
N
−
1
2
−
|
n
−
N
−
1
2
|
)
{\displaystyle w(n)={\frac {2}{N-1}}\cdot \left({\frac {N-1}{2}}-\left|n-{\frac {N-1}{2}}\right|\right)\,}
三角形窗(端點值非0)
三角形窗; B=1.33
w
(
n
)
=
2
N
⋅
(
N
2
−
|
n
−
N
−
1
2
|
)
{\displaystyle w(n)={\frac {2}{N}}\cdot \left({\frac {N}{2}}-\left|n-{\frac {N-1}{2}}\right|\right)\,}
Bartlett-Hann窗
Bartlett-Hann窗; B=1.46
w
(
n
)
=
a
0
−
a
1
|
n
N
−
1
−
1
2
|
−
a
2
cos
(
2
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\left|{\frac {n}{N-1}}-{\frac {1}{2}}\right|-a_{2}\cos \left({\frac {2\pi n}{N-1}}\right)}
a
0
=
0.62
;
a
1
=
0.48
;
a
2
=
0.38
{\displaystyle a_{0}=0.62;\quad a_{1}=0.48;\quad a_{2}=0.38\,}
Blackman窗
Blackman窗; B=1.73
w
(
n
)
=
a
0
−
a
1
cos
(
2
π
n
N
−
1
)
+
a
2
cos
(
4
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\cos \left({\frac {2\pi n}{N-1}}\right)+a_{2}\cos \left({\frac {4\pi n}{N-1}}\right)}
a
0
=
0.42
;
a
1
=
0.5
;
a
2
=
0.08
{\displaystyle a_{0}=0.42;\quad a_{1}=0.5;\quad a_{2}=0.08\,}
根據一般習慣,Blackman窗所設定的數值並非完全精確(α = 0.16, a 0 = 0.42, a 1 = 0.5, a 2 = 0.08),而是近似於精確Blackman的數值(a 0 = 7938/18608 ≈ 0.42659, a 1 = 9240/18608 ≈ 0.49656, a 2 = 1430/18608 ≈ 0.076849)。
如此的數值設定,其用意是在第三個及第四個旁瓣位置產生零交會處(zero-crossing)。
Kaiser窗
Kaiser窗, α = 2; B = 1.4963.
Kaiser窗, α = 3; B = 1.7952.
w
(
n
)
=
I
0
(
π
α
1
−
(
2
n
N
−
1
−
1
)
2
)
I
0
(
π
α
)
{\displaystyle w(n)={\frac {I_{0}{\Bigg (}\pi \alpha {\sqrt {1-({\begin{matrix}{\frac {2n}{N-1}}\end{matrix}}-1)^{2}}}{\Bigg )}}{I_{0}(\pi \alpha )}}}
低解像度(高動態範圍)窗
Nuttall窗(一階導數連續)
Nuttall 窗, 一階導數連續; B=2.02
w
(
n
)
=
a
0
−
a
1
cos
(
2
π
n
N
−
1
)
+
a
2
cos
(
4
π
n
N
−
1
)
−
a
3
cos
(
6
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\cos \left({\frac {2\pi n}{N-1}}\right)+a_{2}\cos \left({\frac {4\pi n}{N-1}}\right)-a_{3}\cos \left({\frac {6\pi n}{N-1}}\right)}
a
0
=
0.355768
;
a
1
=
0.487396
;
a
2
=
0.144232
;
a
3
=
0.012604
{\displaystyle a_{0}=0.355768;\quad a_{1}=0.487396;\quad a_{2}=0.144232;\quad a_{3}=0.012604\,}
當我們考慮 n 為一實數,Nuttall窗函數及其一次導數在任意處皆為連續,且當 n = 0 時的數值為 0,而Blackman-Nuttall窗及Blackman-Harris窗,在 n = 0 處則有一微小的正值。
Blackman-Nuttall窗
Blackman-Nuttall 窗; B=1.98
w
(
n
)
=
a
0
−
a
1
cos
(
2
π
n
N
−
1
)
+
a
2
cos
(
4
π
n
N
−
1
)
−
a
3
cos
(
6
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\cos \left({\frac {2\pi n}{N-1}}\right)+a_{2}\cos \left({\frac {4\pi n}{N-1}}\right)-a_{3}\cos \left({\frac {6\pi n}{N-1}}\right)}
a
0
=
0.3635819
;
a
1
=
0.4891775
;
a
2
=
0.1365995
;
a
3
=
0.0106411
{\displaystyle a_{0}=0.3635819;\quad a_{1}=0.4891775;\quad a_{2}=0.1365995;\quad a_{3}=0.0106411\,}
Blackman-Harris窗
Blackman-Harris窗; B=2.01
w
(
n
)
=
a
0
−
a
1
cos
(
2
π
n
N
−
1
)
+
a
2
cos
(
4
π
n
N
−
1
)
−
a
3
cos
(
6
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\cos \left({\frac {2\pi n}{N-1}}\right)+a_{2}\cos \left({\frac {4\pi n}{N-1}}\right)-a_{3}\cos \left({\frac {6\pi n}{N-1}}\right)}
a
0
=
0.35875
;
a
1
=
0.48829
;
a
2
=
0.14128
;
a
3
=
0.01168
{\displaystyle a_{0}=0.35875;\quad a_{1}=0.48829;\quad a_{2}=0.14128;\quad a_{3}=0.01168\,}
Blackman-Harris窗是Hamming窗家族的一般化,藉由加上更多位移sinc函數而產生,並能夠減低旁瓣的影響。
平頂窗
平頂窗; B=3.77
w
(
n
)
=
a
0
−
a
1
cos
(
2
π
n
N
−
1
)
+
a
2
cos
(
4
π
n
N
−
1
)
−
a
3
cos
(
6
π
n
N
−
1
)
+
a
4
cos
(
8
π
n
N
−
1
)
{\displaystyle w(n)=a_{0}-a_{1}\cos \left({\frac {2\pi n}{N-1}}\right)+a_{2}\cos \left({\frac {4\pi n}{N-1}}\right)-a_{3}\cos \left({\frac {6\pi n}{N-1}}\right)+a_{4}\cos \left({\frac {8\pi n}{N-1}}\right)}
a
0
=
1
;
a
1
=
1.93
;
a
2
=
1.29
;
a
3
=
0.388
;
a
4
=
0.032
{\displaystyle a_{0}=1;\quad a_{1}=1.93;\quad a_{2}=1.29;\quad a_{3}=0.388;\quad a_{4}=0.032\,}
平頂窗在部分區域為負值,並且在頻域中具有較小的扇形損失。該特性有利於測量正弦頻率分量,但具有較低頻率精準度以及高雜訊頻帶等缺點。我們可以利用低通濾波器的設計方法產生平頂窗函數。
其他窗函數
貝賽爾窗
正弦窗
Sine window; B = 1.23
w
(
n
)
=
sin
(
π
n
N
−
1
)
=
cos
(
π
n
N
−
1
−
π
2
)
{\displaystyle w(n)=\sin \left({\frac {\pi n}{N-1}}\right)=\cos \left({\frac {\pi n}{N-1}}-{\frac {\pi }{2}}\right)}
正弦窗有時也稱作餘弦窗,因為其函數可同時由正弦或餘弦函數的方式表示。
正弦窗的自相關函數可產生波曼窗(Bohman window)。
指數正弦/餘弦窗
此類別的窗具有以下形式:
w
(
n
)
=
sin
α
(
π
n
N
−
1
)
=
cos
α
(
π
n
N
−
1
−
π
2
)
.
{\displaystyle w(n)=\sin ^{\alpha }\left({\frac {\pi n}{N-1}}\right)=\cos ^{\alpha }\left({\frac {\pi n}{N-1}}-{\frac {\pi }{2}}\right).}
矩形窗(α = 0)、正弦窗、以及Hann窗(α = 2)皆屬於這類窗的一員。
多夫-柴比雪夫窗
W
0
(
k
)
=
cos
{
N
cos
−
1
[
β
cos
(
π
k
N
)
]
}
cosh
[
N
cosh
−
1
(
β
)
]
β
=
cosh
[
1
N
cosh
−
1
(
10
α
)
]
,
{\displaystyle {\begin{aligned}W_{0}(k)&={\frac {\cos\{N\cos ^{-1}[\beta \cos({\frac {\pi k}{N}})]\}}{\cosh[N\cosh ^{-1}(\beta )]}}\\\beta &=\cosh[{\frac {1}{N}}\cosh ^{-1}(10^{\alpha })],\end{aligned}}}
α參數控制了窗口的尖細程度,α也是旁瓣準尉的對數,因此α=2.0表示比主瓣低了兩個度(decades)或是-40dB。窗口的特徵是主瓣的背景洩漏在轉換後的輸出唯一常數振福。對一個已給定洩漏等級,當主瓣的寬度為最小時,這個窗口是最佳化。
另外優點在於,當只有小數目輸入訊號取樣點時,可用來做小轉換,這個窗口在主瓣附近提供很好的能見度。
多重窗
參看
參考文獻
Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing , Upper Saddle River, NJ: Prentice-Hall, 1999, pp 468-471.
Albert H. Nuttall, Some Windows with Very Good Sidelobe Behavior , IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol.ASSP-29, No.1, February 1981, pp 84-91.
Frederic J. Harris, On the use of Windows for Harmonic Analysis with the Discrete Fourier Transform , Proceedings of the IEEE, Vol.66, No.1, January 1978, pp 51-83.
S.W.A. Bergen and A. Antoniou, Design of Ultraspherical Window Functions with Prescribed Spectral Characteristics, EURASIP Journal on Applied Signal Processing, vol. 2004, no. 13, pp. 2053-2065, 2004.
S.W.A. Bergen and A. Antoniou, Design of Nonrecursive Digital Filters Using the Ultraspherical Window Function, EURASIP Journal on Applied Signal Processing, vol. 2005, no. 12, pp. 1910-1922, 2005.
Jian-Jiun Ding, class lecture of Time Frequency Analysis and Wavelet transform, Graduate Institute of Communication Engineering, National Taiwan University, Taipei, Taiwan, 2018.