IIR濾波器零相位數(shù)字濾波器設(shè)計及其應(yīng)用
(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))
n<3N
3Nn<P+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)。
(5) 進行反向濾波:將正向濾波結(jié)果反轉(zhuǎn),記x′(n)=y(P+6N-n),重復(fù)步驟4°,得到反向濾波后的結(jié)果。
(6) 將反向濾波的結(jié)果反轉(zhuǎn),并刪除首尾的擴展部分,即可得到最后的濾波結(jié)果。
Borland公司推出的Delphi編程語言,具有合理的單元化結(jié)構(gòu)、優(yōu)化的編譯環(huán)境,開發(fā)速度快、編程效率高。在實現(xiàn)同樣功能的情況下與其它語言相比,不僅編寫的代碼量少、程序可移植性強,而且還有許多優(yōu)秀的組件包可供使用。最為方便的是可以使用動態(tài)數(shù)組,隨時能夠改變數(shù)組的長度,這一點非常適合數(shù)字信號處理。
作者利用Delphi7編寫了利用雙線性Z變換法設(shè)計Butterworth型IIR濾波器和利用窗函數(shù)法設(shè)計FIR濾波器,以及差分數(shù)字濾波算法和零相位數(shù)字濾波算法應(yīng)用程序,并作為集成測試軟件平臺的一個虛擬儀器。其中零相位數(shù)字濾波算法程序設(shè)計流程如圖6所示。
圖6零相位數(shù)字濾波算法的流程圖
電源濾波器相關(guān)文章:電源濾波器原理
電能表相關(guān)文章:電能表原理
評論