窗函数

**窗函數**（英語：window function）在信號處理中是指一種除在給定區間之外取值均為 0 的實函數。譬如：在給定區間內為常數而在區間外為 0 的窗函數被形象地稱為**矩形窗**。

任何函數與窗函數之積仍為窗函數，所以相乘的結果就像透過窗口「看」其他函數一樣。窗函數在頻譜分析、濾波器設計、波束形成、以及音頻數據壓縮（如在 Ogg Vorbis 音頻格式中）等方面有廣泛的應用。

## 頻譜分析

從理論上可以得出函數 $\cos(\omega t)\,$ 的傅立葉變換除了在頻率 $\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 做迴旋所產生，然而矩形窗屬於時間變量的零次冪窗。矩形窗使用最多，
習慣上不加窗就是使信號通過了矩形窗。這種窗的優點是主瓣比較集中，缺點是旁瓣較高，並有負旁瓣，導致變換中帶進了高頻干擾和洩漏，甚至出現負譜現象。

　
:

　
: $w(n)=1\,$

### 高斯窗

　
:

　
: $w(n)=e^{-{\frac {1}{2}}\left({\frac {n-(N-1)/2}{\sigma (N-1)/2}}\right)^{2}}$

　
: $\sigma \leq \;0.5\,$

高斯函數經由傅立葉轉換得到的結果，仍然是高斯函數。由於高斯函數會向無限大與負無限大處無限延伸，因此一般都會設定一個截斷高斯函數的閾值，或是將高斯函數搭配其他兩端數值為零的函數。

另外，由於取高斯函數的對數會產生拋物曲線，此性質可用於頻率估測的近二次內插中。

### 受限高斯窗

　
:

受限高斯窗在給定時間寬度 N_σ_t 下，將產生最小可能的方均根頻率寬度 _σ_ω，並最佳化方均根時頻帶寬的乘積。

### 近似受限高斯窗

　
:

近似受限高斯窗，在給定時間寬度 N_σ_t 下，可由下方的式子進一步近似：

　
: $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^{-\left({\cfrac {x-{\frac {N-1}{2}}}{2N\sigma _{t}}}\right)^{2}}$

 

### Hamming 窗與 Hann 窗

　
: $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$ ，稱作 **Hamming 窗**；當 $a_{0}=0.5$ 則叫作 **Hann 窗**。

#### Hann 窗

　
:

　
: $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 窗

　
:

　
: $w(n)=0.53836-0.46164\;\cos \left({\frac {2\pi n}{N-1}}\right)$

如果我們將 $a_{0}$ 設為接近 0.53836 的數值，或是更精確來說是 25/46，便會得到 Hamming 窗，而設定這個數值的用意，是在頻率為 5π/(_N_− 1) 處產生零交會處 (zero-crossing)，使原先 Hann 窗的第一個旁瓣 (sidelobe) 可以被大幅消除，產生只有 Hann 窗 1/5 高度的旁瓣。

### Bartlett 窗（端點值為 0）

　
:

　
: $w(n)={\frac {2}{N-1}}\cdot \left({\frac {N-1}{2}}-\left|n-{\frac {N-1}{2}}\right|\right)\,$

### 三角形窗（端點值非 0）

　
:

　
: $w(n)={\frac {2}{N}}\cdot \left({\frac {N}{2}}-\left|n-{\frac {N-1}{2}}\right|\right)\,$

### Bartlett-Hann 窗

　
:

　
: $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;\quad a_{1}=0.48;\quad a_{2}=0.38\,$

### Blackman 窗

　
:

　
: $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;\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 窗

　
: $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 窗（一階導數連續）

　
:

　
: $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;\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 窗

　
:

　
: $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;\quad a_{1}=0.4891775;\quad a_{2}=0.1365995;\quad a_{3}=0.0106411\,$

#### Blackman-Harris 窗

　
:

　
: $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;\quad a_{1}=0.48829;\quad a_{2}=0.14128;\quad a_{3}=0.01168\,$

Blackman-Harris 窗是 Hamming 窗家族的一般化，藉由加上更多位移 sinc 函數而產生，並能夠減低旁瓣的影響。

 

#### 平頂窗

　
:

　
: $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;\quad a_{1}=1.93;\quad a_{2}=1.29;\quad a_{3}=0.388;\quad a_{4}=0.032\,$

平頂窗在部分區域為負值，並且在頻域中具有較小的扇形損失。該特性有利於測量正弦頻率分量，但具有較低頻率精準度以及高雜訊頻帶等缺點。我們可以利用低通濾波器的設計方法產生平頂窗函數。

### 其他窗函數

#### 貝賽爾窗

#### 正弦窗

　
:

　
: $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 ^{\alpha }\left({\frac {\pi n}{N-1}}\right)=\cos ^{\alpha }\left({\frac {\pi n}{N-1}}-{\frac {\pi }{2}}\right).$

矩形窗 (_α_= 0)、正弦窗、以及 Hann 窗 (_α_= 2) 皆屬於這類窗的一員。

 

#### 多夫 - 柴比雪夫窗

$$
{\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。窗口的特徵是主瓣的背景洩漏在轉換後的輸出唯一常數振福。對一個已給定洩漏等級，當主瓣的寬度為最小時，這個窗口是最佳化。
另外優點在於，當只有小數目輸入訊號取樣點時，可用來做小轉換，這個窗口在主瓣附近提供很好的能見度。

## 多重窗

### 三重餘弦窗

## 參看

* 短時距傅立葉變換
* Boxcar 函數

## 參考文獻

* 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.