新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > IIR濾波器零相位數字濾波及其應用

        IIR濾波器零相位數字濾波及其應用

        作者: 時間:2011-01-13 來源:網絡 收藏

        3.1零的算法
        為了克服差分中存在的上述兩個問題,可以采用一種零的方法,該方法的基本思路是:先確定出的初始條件,然后將原序列的首尾進行擴展,把擴展后序列通過,將所得結果反轉后再次通過,最后將所得結果再反轉,并去掉首尾的擴展部分,即可得到零濾波后的輸出序列[3]。本文采用四次差分濾波方式給出一種便于實現的詳細算法,假設輸入信號為x(n),n=0,1,…,P。
        (1) 編寫差分濾波函數DiffFilter(b,a,x),調用參數如前所述。
        (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個數,在后面添加3N個數,擴展后的序列記為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)調用DiffFilter(b,a,x)函數,計算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)調用DiffFilter(b,a,x)函數,計算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) 進行反向濾波:將正向濾波結果反轉,記x′(n)=y(P+6N-n),重復步驟4°,得到反向濾波后的結果。
        (6) 將反向濾波的結果反轉,并刪除首尾的擴展部分,即可得到最后的濾波結果。
        3.2零相位濾波的實現
        Borland公司推出的Delphi編程語言,具有合理的單元化結構、優化的編譯環境,開發速度快、編程效率高。在實現同樣功能的情況下與其它語言相比,不僅編寫的代碼量少、程序可移植性強,而且還有許多優秀的組件包可供使用。最為方便的是可以使用動態數組,隨時能夠改變數組的長度,這一點非常適合數字信號處理。
        作者利用Delphi7編寫了利用雙線性Z變換法設計Butterworth型濾波器和利用窗函數法設計FIR濾波器,以及差分數字濾波算法和零相位數字濾波算法程序,并作為集成測試軟件平臺的一個虛擬儀器。其中零相位數字濾波算法程序設計流程如圖6所示。

        圖6零相位數字濾波算法的流程圖
        圖7所示為圖2所示信號零相位數字濾波后的波形,通過與原信號(圖2)和差分濾波后的信號(圖4)對比不難看出:零相位數字濾波后的輸出與原信號中的相位基本一致,并且起始部分沒有畸變。但不可否認,零相位數字濾波算法相對于普通差分濾波算法計算量要大許多,但以目前計算機的運算能力,計算量稍大并不是什么主要問題。

        圖7零相位濾波后的波形

        4結束語
        本文介紹了一種利用四次差分濾波算法,實現零相位數字濾波的方法,并利用Delphi7編寫了軟件。通過與普通差分濾波器的實例對比分析,說明零相位數字濾波不僅能夠避免相移,而且還能改善差分濾波起始部分的波形畸變。這一點在數字信號處理中具有重要的價值。

        本文引用地址:http://www.104case.com/article/151093.htm

        濾波器相關文章:濾波器原理


        濾波器相關文章:濾波器原理


        低通濾波器相關文章:低通濾波器原理


        電源濾波器相關文章:電源濾波器原理


        數字濾波器相關文章:數字濾波器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台中县| 铁岭市| 思南县| 灵川县| 抚宁县| 福安市| 张家界市| 泌阳县| 奇台县| 蒙山县| 从化市| 姜堰市| 崇文区| 临洮县| 太和县| 白城市| 施秉县| 龙游县| 聂拉木县| 资中县| 苏尼特右旗| 鸡东县| 苍溪县| 三河市| 恩平市| 绥阳县| 格尔木市| 高邮市| 乐亭县| 都昌县| 平邑县| 玉门市| 凤翔县| 阜新| 博湖县| 红河县| 凤庆县| 兴山县| 龙岩市| 抚宁县| 改则县|