IIR濾波器零相位數(shù)字濾波實(shí)現(xiàn)及應(yīng)用
(5) 進(jìn)行反向?yàn)V波:將正向?yàn)V波結(jié)果反轉(zhuǎn),記x′(n)=y(P+6N-n),重復(fù)步驟4°,得到反向?yàn)V波后的結(jié)果。
(6) 將反向?yàn)V波的結(jié)果反轉(zhuǎn),并刪除首尾的擴(kuò)展部分,即可得到最后的濾波結(jié)果。
3.2 零相位數(shù)字濾波的實(shí)現(xiàn)
Borland公司推出的Delphi編程語言,具有合理的單元化結(jié)構(gòu)、優(yōu)化的編譯環(huán)境,開發(fā) 速度快、編程效率高。在實(shí)現(xiàn)同樣功能的情況下與其它語言相比,不僅編寫的代碼量少、程序可移植性強(qiáng),而且還有許多優(yōu)秀的組件包可供使用。最為方便的是可以 使用動(dòng)態(tài)數(shù)組,隨時(shí)能夠改變數(shù)組的長(zhǎng)度,這一點(diǎn)非常適合數(shù)字信號(hào)處理。
作者利用Delphi7編寫了利用雙線性Z變換法設(shè)計(jì)Butterworth型IIR濾波器和利用窗函數(shù)法設(shè)計(jì)FIR濾波器,以及差分數(shù)字濾波算法和零相位數(shù)字濾波算法應(yīng)用程序,并作為集成測(cè)試軟件平臺(tái)的一個(gè)虛擬儀器。其中零相位數(shù)字濾波算法程序設(shè)計(jì)流程如圖6所示。
圖6零相位數(shù)字濾波算法的流程圖
圖7所示為圖2所示信號(hào)零相位數(shù)字濾波后的波形,通過與原信號(hào)(圖2)和差分濾波后的信號(hào)(圖 4)對(duì)比不難看出:零相位數(shù)字濾波后的輸出與原信號(hào)中的相位基本一致,并且起始部分沒有畸變。但不可否認(rèn),零相位數(shù)字濾波算法相對(duì)于普通差分濾波算法計(jì)算 量要大許多,但以目前計(jì)算機(jī)的運(yùn)算能力,計(jì)算量稍大并不是什么主要問題。
圖7零相位濾波后的波形
4結(jié)束語
本文介紹了一種利用四次差分濾波算法,實(shí)現(xiàn)零相位數(shù)字濾波的方法,并利用Delphi7編寫了應(yīng)用軟件。通過與普通差分濾波器的實(shí)例對(duì)比分析,說明零相位數(shù)字濾波不僅能夠避免相移,而且還能改善差分濾波起始部分的波形畸變。這一點(diǎn)在數(shù)字信號(hào)處理中具有重要的應(yīng)用價(jià)值。
評(píng)論