窗函數(window function)
透過邊緣銳利的金屬舷窗看世界,窗框會造成刺眼的眩光;透過玻璃在邊緣溫和淡化為不透明的舷窗看,景象就柔和得多。窗函數對你分析前的一段訊號做的正是這件事:它不以硬性的矩形切割剪出 N 個樣本,而是讓樣本在兩端平滑淡化到零,使分析看不到突兀的邊緣。
機制上,窗不過是一組固定的權重 w_0、...、w_{N-1},你在取 DFT 之前把樣本逐點乘上它。矩形窗(所有權重皆為 1)什麼也不做——它就是那個造成最大洩漏的硬切割。常用的 Hann 窗使用形狀像半個餘弦隆起的權重,w_n = 0.5 * (1 - cos(2*pi*n/(N-1))),從左緣的 0 升到中間的 1 再回到右緣的 0。由於加窗後的資料現在在兩端漸縮到零,其週期性延拓沒有不連續,頻譜洩漏便大幅減少。其他具名的窗——Hamming、Blackman、Kaiser、平頂窗——各以不同方式塑造漸縮,以權衡兩個互相競爭的品質:主頻譜瓣有多窄(頻率解析度)與旁瓣有多低(洩漏抑制)。
加窗是頻譜分析的日常做法,但它是真正的取捨,而非純粹的好處。把邊緣漸縮會丟掉兩端的訊號,這總是「加寬」主瓣——所以你用較差的「分開兩個相近頻率」的能力,換取較低的洩漏。平頂窗能很準確地量出單一音的振幅卻把頻率糊在一起;矩形窗能精細解析頻率卻嚴重洩漏。正確的選擇取決於你最需要的是準確的振幅、精細的頻率分離、還是低洩漏,沒有任何單一的窗能在三者上全贏。
分析一個安靜的 1000 Hz 音,旁邊緊鄰一個響亮的 1050 Hz 音。用矩形窗時,響亮音的洩漏裙擺淹沒了安靜音。換成 Hann 或 Blackman 窗,旁瓣下降數十分貝,於是安靜音以自己的峰重現——代價是整體的峰略微變胖。
把邊緣漸縮,以較寬的峰換取低得多的洩漏。
沒有普遍最佳的窗;每一種都是主瓣寬度與旁瓣位準之間不同的折衷。此外,窗會減少訊號的總能量,所以振幅估計需要一個針對窗增益的修正因子。