新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > IIR濾波器零相位數(shù)字濾波實現(xiàn)及應(yīng)用

IIR濾波器零相位數(shù)字濾波實現(xiàn)及應(yīng)用

作者: 時間:2014-06-20 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://www.butianyuan.cn/article/259400.htm

采用窗函數(shù)(Hanning窗)法設(shè)計出某200階FIR低通,截止頻率為200Hz,分析頻率為2KHz,其幅頻曲線及相頻曲線如圖3所示。

  圖3低通的幅頻特性和相頻特性

利用該FIR低通數(shù)字對圖2所示發(fā)動機噪聲信號進行差分濾波,濾波后的波形如圖4所示

  圖4差分濾波后的發(fā)動機噪聲信號

對比圖3和圖4所示波形可以看出,差分濾波后,信號變得光滑了許多,原來的毛刺被濾掉 了。但同時也可以看出差分濾波方法存在兩個問題:一是濾波后的信號相對與原信號而言,發(fā)生了相移;二是濾波后的信號在起始部分,波形畸變較為嚴重。在信號 處理中,如果對信號的相位有特殊的要求,相移問題需要引起高度的注意。而起始部分的畸變是由于疊代過程中,沒有考慮濾波器的初始條件,剛開始點數(shù)少,沒能 用到濾波器全部系數(shù)的緣故。大多情況下,這種畸變可以接受,但當數(shù)據(jù)較短,而濾波器的階數(shù)又較高時,這種畸變會帶來較大的負面影響。

如果輸入信號為一單位脈沖信號,即

x(n)=1,n=1

0,n≠1

那么,濾波器的輸出為其脈沖響應(yīng)。本文所用200階FIR低通器的脈沖響應(yīng)如圖5所示。

  圖5濾波器的脈沖響應(yīng)3算法及其實現(xiàn)

3.1 的算法

為了克服差分數(shù)字濾波中存在的上述兩個問題,可以采用一種濾波的方法,該方法的基本思路 是:先確定出濾波器的初始條件,然后將原序列的首尾進行擴展,把擴展后序列通過濾波器,將所得結(jié)果反轉(zhuǎn)后再次通過濾波器,最后將所得結(jié)果再反轉(zhuǎn),并去掉首 尾的擴展部分,即可得到零相位濾波后的輸出序列。本文采用濾波方式給出一種便于實現(xiàn)的詳細算法,假設(shè)輸入信號為x(n),n=0,1,…,P.

(1) 編寫差分濾波函數(shù)DiffFilter(b,a,x),調(diào)用參數(shù)如前所述。

(2) 對于濾波器通常有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) 對原輸入序列x(n)的首尾進行擴展,在x(n)的前面添加3N個數(shù),在后面添加3N個數(shù),擴展后的序列記為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) 進行正向濾波:先用b,a和x′(n)調(diào)用DiffFilter(b,a,x)函數(shù),計算x′(n)通過

H(z)=∑Mm=0b(m)z-m/(1+∑Mm=1a(m)z-m)(5)

的輸出y′(n),然后生成一長度為P+6N+1的單位脈沖信號h(n),用z,a和h(n)調(diào)用DiffFilter(b,a,x)函數(shù),計算h(n)通過

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ù)字濾波器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉