之前面試的時候面試官就問到我加窗的緣由,但是答得不夠全面,也因為之前就提到過要細講加窗知識。故詳解加窗,順帶填補一下之前的坑。填坑之前先上頻譜泄露,即為什麼需要加窗的原因。


先上理解:在對語音信號進行時頻搬移的時候,因為語音的非平穩性,需要對一段語音進行分幀處理(即在時域上乘以一個矩形窗)。而在對每一幀信號做FFT分析時,由於信號的非周期性截斷效應會產生頻譜泄露。

頻譜泄露

一次FFT分析截取一幀長度的時頻信號,這一幀長度總是有限的,因為FFT分析一次只能分析有限長度的時域信號。在語音信號中,一幀長度一般取20-50ms,而這將信號分成一幀一幀叫做分幀,也稱為信號截斷。

在信號截斷中,分為周期性截斷和非周期性截斷。

周期性截斷

對周期信號進行截斷(分幀)時,若截斷後的信號也是周期信號時,則稱為周期性截斷。模擬如下:

採樣率100HZ,信號頻率1HZ,正弦信號。

橫坐標為時間

以100點為幀長進行信號截斷,截得圖形如下所示:

橫坐標為點數

對截得信號進行100點的FFT分析如下

圖3

由上圖可以看出,第一個點是直流分量點,即0HZ,第二個點是 1*frac{100}{100} = 1HZ

分母100代表採樣率,分子100代表頻率解析度,我採用的是100點的FFT,故第二點是1HZ。

非周期性截斷

信號同上,以88點為幀長進行信號截斷,截得圖形如下所示:

圖4

對截得信號進行100點的FFT分析如下:

可以看到,不僅僅在信號頻率處,即1HZ上有能量,其它頻點上也有能量,而且可以與上圖3進行對比,1HZ上能量減少了,分布到其它頻點上。這種現象被稱為頻譜泄露。

所以,我們可以得出一個比較好的結論,即頻譜泄露是因為信號的非周期性截斷。

加窗

那麼針對這種現象,一種常用的做法就是加窗,如下圖所示

512點的hanning窗

加窗即,對信號在時域上乘以窗函數,類似通信中的調製作用,因為窗函數首尾都是0,相當於將截斷後信號變成周期性的信號。同樣以上述圖4為例,採用漢明窗進行截斷後如下圖所示:

可以看出,這與圖4的區別在於,這種截斷後的信號更像是周期性信號。而圖4並不是。


推薦閱讀:
相关文章