韓大偉
(河南工程學院,河南鄭州 451191)
數字濾波器能通過關系運算轉變數字信號的頻率,從而進行信號輸入輸出,它是一種能改變信號頻譜的算法裝置,是處理信號的利器。人類生活中普遍地出現了數字信號系統,使得數字濾波器設計受到廣泛地關注。如今能通過計算機運行MATLAB軟件實現IIR數字濾波器的仿真設計。
(1)數字濾波器
數字濾波器按照結構的劃分,有FIR數字濾波器和IIR數字濾波器。前者非常穩定且具有嚴格的線性相位,不會造成線條及其邊緣部分出現失真現象,廣泛應用于通過波傳遞信息的領域,例如圖像傳輸和數字通信等;而后者的特征則是非線性相位,但較前者而言不但更易實現,且具有較高的經濟效益,因此在相位要求不高的領域具有非同尋常的用處,比如說語音通信。
(2)MATLAB軟件
MATLAB(matrix&laboratory)其原意是矩陣實驗室,是美國MathWorks公司推出的面向于科學計算、可視化以及交互式程序設計的高科技計算環境,集數值分析、信號處理、矩陣運算以及非線性動態系統的建模與仿真等功能于一體的高度集成系統,它的用戶界面極其友好且具有良好的幫助功能,其編輯模式不同于傳統的非交互式程序設計語言(如Fortran、C語言等),標志著國際最先進的科學計算軟件水平。
而IIR數字濾波器具有無限持續時間的沖擊響應,伴有非線性相位特征,對此本文將探究如何利用MATLAB軟件實現IIR數字濾波器的仿真設計。
一般地,由于IIR數字濾波器的系統傳遞函數包括有兩組可調因素,即零點和極點,同時極點能夠處在單位圓內的所有位置。因此與FIR數字濾波器相比,它擁有更高的選頻特性、更低的通帶群延遲,在實現相同頻率特性的情況下占據更少的乘法單元,能廣泛地應用于高選頻、低延遲以及快速處理等領域;但是必須基于相位的非線性之上,往往選擇性越好,其相位非線性就越嚴重,而IIR數字濾波器不具備內稟穩定性及其線性相位不精確,造成其設計的數學模型時常是非線性約束、非凸規劃的,從而就必須采用遞歸結構來配置極點,使之處在單位圓之中。在N階IIR數字濾波器中,它的傳遞函數表示如下:

為滿足實際需求,大多數情況下M與N取自然數且N>M;函數A(z)與B(z)是關于z-1的多項式,其中前者是分母多項式,后者是分子多項式;同時M與N分別是分子階數和分母階數。
與式(1)相符合的差分方程如下:


圖1 直接Ⅱ型結構IIR數字濾波器
MATLAB 軟件提供了包括有 butter、ellip、cheby1、cheby2以及bessel等專用函數,在進行IIR濾波器設計時直接調用函數就可以設計出相應的低通、高通、帶通或者帶阻的濾波器。倘若設計保留200 Hz低頻信號并濾除800 Hz高頻信號的IIR濾波器,須先假設存在著混頻信號S,則

一般地,可在MATLAB軟件中直接調用butter與buttord函數,就能實現巴特沃斯IIR濾波器的設計。在給定濾波器性能的基礎上,通過buttord函數能求出相應的最小階數n,并得到截止頻率Wn。其中buttord函數式表示如下:

式(3)中,Wp、Ws與 Rp、Rs分別表示通帶和阻帶的截止頻率與波紋系數,其 Wp、Ws∈[0,1],若值為1 則表示為采樣頻率的。對混頻信號進行濾波時,Wp=200/5000=0.04;Ws=800/5000=0.16;Rp=3 dB;Rs=40 dB。而butter的函數式用法如下:

式(4)中,n和Wn分別表示濾波器的階數和截止頻率,它們均是由buttord函數的式(3)所決定;butter函數所得到的系數是直接型濾波器系數,因此要運用dir2cas.m將其轉換為級聯型結構,其實現代碼如下:

而在dir2cas文件中,其代碼為:

在式(5)中,b0表示增益系數;B、A分別表示包含因子系數bk、ak的K行3列矩陣;a、b分別表示直線型分子、分母的多項式階數。于是:

運用MATLAB軟件的工具m文件,能實現IIR濾波器,其IIR.m源碼如下:
function y=IIR(S,coefs)//S表示錄入的混頻信號,coefs表示系數矩陣,其排列方式為[a0,a1,a2,b0,b1,b2,…]


綜上所述,將濾波器系數(采用上節通過MATLAB設計的系數)代入上述程序中,也就是說:


錄入的混頻信號S以及IIR數字濾波器的輸出y的波形圖如圖2所示。
本文闡述了IIR數字濾波器的設計原理,并基于MATLAB軟件通過程序設計的方式,實現了對濾波器系數的設計,同時編碼了IIR.m文件對IIR數字濾波器的功能加以實現,并運用IIR.m文件實現了對實際的混頻信號濾波仿真設計。但限于篇幅,并未運用MATLAB軟件的sosfilt函數加以仿真結果驗證。總而言之,通過對IIR數字濾波器的設計發現,其設計界面簡便直觀,能有效地降低工作量,滿足當前人們對數字信號處理的需求。

圖2 輸入混頻信號S及其濾波器輸出y的波形圖
[1]許金龍,蘇武潯.IIR數字濾波器的FPGA仿真與實現[J].信息化縱橫,2009,(16):30-33.
[2]屈 星,唐 寧,嚴 舒,楊 白.基于FPGA的IIR數字濾波器的設計與仿真[J].計算機仿真,2009,(08):304-307.
[3]張曉光,徐 釗.IIR數字濾波器的優化設計和DSP實現[J].電子工程師,2006,(03):37-39.
[4]郝小江,唐 宇.IIR數字濾波器設計及DSP實現[J].工業控制計算機,2008,(09):91-92.
[5]劉舒帆,張小虹,任姝婕.IIR數字濾波器在定點DSP中可實現性的仿真分析[J].現代電子技術,2008,(19):119-122.
[6]袁 森,曾秋麗.Matlab7.1環境下IIR濾波器的設計與仿真[J].電腦知識與技術,2013,(19):4499-4502.
[7]魏國華.IIR數字濾波器的FPGA實現[J].今日電子,2003,(03):20-21.