FIR濾波器的加窗是什麼
5 人贊了文章
窗函數法是一種設計FIR濾波器的方法,FIR全稱為Finite impulse response,即有限衝激響應濾波器。
通帶為
的理想低通濾波器的系統函數為
反變換求它的衝激響應為
可以看出,這是一個sinc函數
可以看出,
的衝激響應在時域上是無限長的,不符合FIR濾波器的要求,所以需要對它截斷,也就是加窗。
為了得到一個長度為M的因果的線性相位的FIR濾波器
,我們需要
也就是讓
的
之外的值全為0,這就是加窗。這個過程可以表示為
即為窗函數
在這裡我們將
定義為
再看看頻域,使用
表示因果FIR濾波器的響應,
表示理想濾波器,
表示窗函數響應。
時域相乘,頻域卷積,這裡是圓周卷積。(圓周卷積以後也會介紹)
我想在MATLAB中模擬這個加窗的過程,但是一直弄不出來,就把書上的圖拿過來吧。
我不知道為什麼我卷積出來的頻域波形和窗函數的頻域波形是一樣的,很尷尬。
不過窗函數的原理基本還是理解了,直接生成書上卷積出來的頻域波形不難,在matlab中直接生成一個FIR濾波器(相當於加了矩形窗),然後求它的頻響。
代碼如下:
子程序1function hd = ideal_lp(wc,M)2alpha = (M-1)/2;3n = [0:1:(M-1)];4m = n - alpha + eps; % add smallest number to avoid divide by zero5hd = sin(wc*m) ./ (pi*m);
主程序
1wc = 0.2*pi;2M = 60;3hd = ideal_lp(wc,M);4w_rect = (rectwin(M));5h = hd .* w_rect;6fvtool(h);
◆ ◆ ◆ ◆ ◆
參考書籍:
- Digital Signal Processing Using Matlab v4.0 John G. Proakis
- 《數字信號處理教程》 程佩青
◆ ◆ ◆ ◆ ◆
個人博客
微信公眾號:greedyhao
推薦閱讀: