IIR濾波器零相位數(shù)字濾波實(shí)現(xiàn)及應(yīng)用
采用窗函數(shù)(Hanning窗)法設(shè)計(jì)出某200階FIR低通濾波器,截止頻率為200Hz,分析頻率為2KHz,其幅頻曲線及相頻曲線如圖3所示。
圖3低通濾波器的幅頻特性和相頻特性
利用該FIR低通數(shù)字濾波器對(duì)圖2所示發(fā)動(dòng)機(jī)噪聲信號(hào)進(jìn)行差分濾波,濾波后的波形如圖4所示
圖4差分濾波后的發(fā)動(dòng)機(jī)噪聲信號(hào)
對(duì)比圖3和圖4所示波形可以看出,差分濾波后,信號(hào)變得光滑了許多,原來(lái)的毛刺被濾掉 了。但同時(shí)也可以看出差分濾波方法存在兩個(gè)問(wèn)題:一是濾波后的信號(hào)相對(duì)與原信號(hào)而言,發(fā)生了相移;二是濾波后的信號(hào)在起始部分,波形畸變較為嚴(yán)重。在信號(hào) 處理中,如果對(duì)信號(hào)的相位有特殊的要求,相移問(wèn)題需要引起高度的注意。而起始部分的畸變是由于疊代過(guò)程中,沒(méi)有考慮濾波器的初始條件,剛開始點(diǎn)數(shù)少,沒(méi)能 用到濾波器全部系數(shù)的緣故。大多情況下,這種畸變可以接受,但當(dāng)數(shù)據(jù)較短,而濾波器的階數(shù)又較高時(shí),這種畸變會(huì)帶來(lái)較大的負(fù)面影響。
如果輸入信號(hào)為一單位脈沖信號(hào),即
x(n)=1,n=1
0,n≠1
那么,濾波器的輸出為其脈沖響應(yīng)。本文所用200階FIR低通數(shù)字濾波器的脈沖響應(yīng)如圖5所示。
圖5濾波器的脈沖響應(yīng)3零相位數(shù)字濾波算法及其實(shí)現(xiàn)
為了克服差分?jǐn)?shù)字濾波中存在的上述兩個(gè)問(wèn)題,可以采用一種零相位濾波的方法,該方法的基本思路 是:先確定出濾波器的初始條件,然后將原序列的首尾進(jìn)行擴(kuò)展,把擴(kuò)展后序列通過(guò)濾波器,將所得結(jié)果反轉(zhuǎn)后再次通過(guò)濾波器,最后將所得結(jié)果再反轉(zhuǎn),并去掉首 尾的擴(kuò)展部分,即可得到零相位濾波后的輸出序列。本文采用四次差分濾波方式給出一種便于實(shí)現(xiàn)的詳細(xì)算法,假設(shè)輸入信號(hào)為x(n),n=0,1,…,P.
(1) 編寫差分濾波函數(shù)DiffFilter(b,a,x),調(diào)用參數(shù)如前所述。
(2) 對(duì)于IIR濾波器通常有M=N,求濾波器的初始條件e(q),q=0,1,…,N-1,這里記E=[e(0),e(1),…,e(N-1)]T,則有
E=1+a(1)1-1…0
a(2)01…0
MMMOM
a(N)00…-11× b(1)-b(0)a(0)
b(2)-b(0)a(1)
M
b(Nn)-b(0)a(N)(3)
(3) 對(duì)原輸入序列x(n)的首尾進(jìn)行擴(kuò)展,在x(n)的前面添加3N個(gè)數(shù),在后面添加3N個(gè)數(shù),擴(kuò)展后的序列記為x′(n),n=0,1,…,P+6N.
x′(n)=2x(0)-x(3N-n)
x(n-3N)
2x(P)-x(P-1-(n-P-3N-n))
n3N
3NnP+3N
P+3NnP+6N(4)
(4) 進(jìn)行正向?yàn)V波:先用b,a和x′(n)調(diào)用DiffFilter(b,a,x)函數(shù),計(jì)算x′(n)通過(guò)
H(z)=∑Mm=0b(m)z-m/(1+∑Mm=1a(m)z-m)(5)
的輸出y′(n),然后生成一長(zhǎng)度為P+6N+1的單位脈沖信號(hào)h(n),用z,a和h(n)調(diào)用DiffFilter(b,a,x)函數(shù),計(jì)算h(n)通過(guò)
H(z)=∑M-1m=0y′(0)e(m)z-m/(1+∑Mm=1a(m)z-m)(6)
的輸出y′(n),并記y(n)=y′(n)+y″(n)。
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論