基于Matlab的IIR數(shù)字濾波器快速設(shè)計(jì)
王昊遠(yuǎn),施展,崔永進(jìn)
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海200093)
摘要針對數(shù)字濾波器的概念比較抽象,且數(shù)值計(jì)算較為繁瑣的問題,文中給出了借助模擬濾波器快速設(shè)計(jì)IIR數(shù)字濾波器的方法,并在Matlab環(huán)境下做出了IIR濾波器的快速設(shè)計(jì)系統(tǒng)。設(shè)計(jì)實(shí)例及運(yùn)行結(jié)果表明,該設(shè)計(jì)方法簡化了IIR數(shù)字濾波器的設(shè)計(jì)程序,并大幅提高了設(shè)計(jì)效率。
關(guān)鍵詞IIR數(shù)字濾波器;模擬濾波器;Matlab;幅頻特性
收稿日期:2015-04-17
作者簡介:王昊遠(yuǎn)(1989—),男,碩士研究生。研究方向:測試計(jì)量技術(shù)。E-mail:630928742@qq.com。施展(1963—),女,副教授。研究方向:測試?yán)碚撆c測試技術(shù),信號(hào)分析與處理。
doi:10.16180/j.cnki.issn1007-7820.2015.12.041
中圖分類號(hào)TN713文獻(xiàn)標(biāo)識(shí)碼A
Fast Design of IIR Digital Filter Based on Matlab
WANG Haoyuan,SHI Zhan,CUI Yongjin
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractA fast design method of IIR digital filter by means of analog filter is presented for the abstract concept and complicated numerical calculation of digital filters.A design system of the IIR filter under the Matlab environment is proposed.The design programs and the run results show that this method offers simpler filter programming and higher design efficiency.
KeywordsIIR digital filter;analog filter;Matlab;character of magnitude and frequency
數(shù)字濾波器是數(shù)字信號(hào)處理中重要組成部分[1]。數(shù)字濾波實(shí)際上是一種運(yùn)算過程,數(shù)字濾波器的功能是將一組輸入的數(shù)字序列通過一定的運(yùn)算后轉(zhuǎn)變?yōu)榱硪唤M輸出的數(shù)字序列,因此其本身就是一臺(tái)數(shù)字式的處理設(shè)備。相較于模擬濾波器,數(shù)字濾波器具有精度高、穩(wěn)定性強(qiáng)、實(shí)現(xiàn)靈活、便于大規(guī)模集成等優(yōu)點(diǎn)。因此,在諸如通信、雷達(dá)、遙感、聲納、衛(wèi)星通信、宇宙航行、測量、語音和生物醫(yī)學(xué)等科學(xué)領(lǐng)域的信號(hào)處理中,被廣泛應(yīng)用。本文主要探討了Matlab環(huán)境下IIR數(shù)字濾波器的快速設(shè)計(jì)方法[2]和操作步驟。
1IIR濾波器設(shè)計(jì)及其Matlab實(shí)現(xiàn)
IIR濾波器具有無限持續(xù)時(shí)間脈沖響應(yīng),而所有的模擬濾波器一般均具有無限長的脈沖響應(yīng),因此IIR濾波器與模擬濾波器相匹配。于是,設(shè)計(jì)IIR濾波器可先設(shè)計(jì)模擬低通濾波器,然后通過濾波器變換而得到數(shù)字域IIR低通濾波器,最后進(jìn)行頻帶變換,從數(shù)字低通濾波器得到其他類型的選頻濾波器。該轉(zhuǎn)化過程如圖1所示。
圖1 數(shù)字濾波器的設(shè)計(jì)過程
1.1模擬低通濾波器原型設(shè)計(jì)
實(shí)際中廣泛應(yīng)用的濾波器原型有3種:巴特沃思低通濾波器、切比雪夫低通濾波器、橢圓低通濾波器。一般情況下,模擬低通濾波器是由以下4個(gè)參數(shù)描述[3]:通帶截止頻率Ωp,通帶中振幅波動(dòng)的+dB數(shù)Rp,阻帶截止頻率Ωs和阻帶中振幅衰減的+dB數(shù)As。設(shè)計(jì)模擬低通濾波器的基本思想就是根據(jù)上述參數(shù)得到濾波器階數(shù)N和濾波器截止頻率Ωc。用Matlab語言設(shè)計(jì)模擬低通濾波器原型的步驟如下:(1)根據(jù)濾波器參數(shù)Ωp,Ωs,Rp和As,確定濾波器的階數(shù)N和濾波器截止頻率Ωc;(2)根據(jù)N和Ωc求出模擬濾波器頻率響應(yīng)Ha(s)的分子多項(xiàng)式系數(shù)和分母多項(xiàng)式系數(shù);(3)繪制幅頻特性曲線。
因此,用Matlab設(shè)計(jì)模擬低通濾波器原型的思路主要有:
方式1在給定濾波器的階數(shù)N和截止頻率Ωc的情況下,使用buttap、chblap、chb2ap和elipap等函數(shù),分別模擬巴特沃思低通濾波器原型,模擬切比雪夫低通濾波器原型和模擬橢圓低通濾波器原型的設(shè)計(jì)。
方式2在給定模擬低通濾波器的性能指標(biāo)Ωp,Ωs,Rp和As的情況下,使用afd_butt、afd_chbl、afd_chb2和afd_elip等函數(shù),分別進(jìn)行模擬巴特沃思低通濾波器原型,模擬切比雪夫低通濾波器原型和模擬橢圓低通濾波器原型的設(shè)計(jì)。
另外,Matlab還提供了buttord、cheblord、cheb2ord、ellipord這4個(gè)函數(shù)[4],利用這4個(gè)函數(shù)可在給定濾波器性能指標(biāo)Ωp,Ωs,Rp和As的情況下,進(jìn)行濾波器階數(shù)和截止頻率的選擇,從而方便地將以上兩種方式結(jié)合起來,使模擬濾波器原型設(shè)計(jì)更快速有效。
1.2模擬—數(shù)字濾波器變換
將模擬濾波器轉(zhuǎn)換為數(shù)字濾波器,主要方法有兩種:脈沖響應(yīng)不變法和雙線性變換法[5]。
1.2.1脈沖響應(yīng)不變法
脈沖響應(yīng)不變法是從濾波器的脈沖響應(yīng)出發(fā),使數(shù)字濾波器的單位脈沖響應(yīng)序列h(n)模仿模擬濾波器的沖擊響應(yīng)ha(t),使h(n)恰好等于ha(t)的采樣值,即h(n)=ha(nT),T為采樣周期。用脈沖響應(yīng)不變法來實(shí)現(xiàn)模擬濾波器到數(shù)字濾波器的變換的具體設(shè)計(jì)步驟歸納如下:
(1)確定采樣周期T。
(2)將數(shù)字濾波器的頻率指標(biāo){ωk}轉(zhuǎn)換為模擬濾波器的頻率指標(biāo){Ωk}
(1)
(3)根據(jù)指標(biāo)Ωp,Ωs,Rp和As來設(shè)計(jì)模擬濾波器的Ha(s),可由上述幾種模擬濾波器原型之一來實(shí)現(xiàn)。
(4)利用部分分式展開式,把Ha(s)展成如下形式
(2)
(5)將模擬極點(diǎn){Pk}轉(zhuǎn)換成數(shù)字極點(diǎn){ePkT }得到數(shù)字濾波器
(3)
1.2.2雙線性變換法
與脈沖響應(yīng)不變法相比,雙線性變換法計(jì)算更直接和簡單,且不存在混迭效應(yīng)。用雙線性變換法來實(shí)現(xiàn)模擬濾波器到數(shù)字濾波器的變換的具體設(shè)計(jì)步驟如下:
(1)確定采樣周期T。
(2)將數(shù)字濾波器的頻率指標(biāo){ωk}轉(zhuǎn)換為模擬濾波器的頻率指標(biāo){Ωk}
(4)
(3)根據(jù)指標(biāo)Ωp,Ωs,Rp和As來設(shè)計(jì)模擬濾波器的Ha(s)。
(4)將模擬濾波器從S平面轉(zhuǎn)換到Z平面,得到數(shù)字低通濾波器,化簡得到有理函數(shù)H(z)
(5)
1.3頻帶變換
設(shè)計(jì)出數(shù)字低通濾波器后,通過對低通濾波器的頻率軸進(jìn)行變換,便可得到其他類型的濾波器[6]。
Matlab提供了butter,chebyl,cheby2和ellip這4個(gè)函數(shù)可用于設(shè)計(jì)數(shù)字低通、高通、帶通和帶阻濾波器[7]。用這種方法設(shè)計(jì)任意選頻濾波器時(shí),須知道濾波器階數(shù)N和3 dB截止頻率ωn。上文提到Matlab提供了另外4個(gè)函數(shù)buttord,cheblord,cheb2ord,ellipord來計(jì)算這些參數(shù),只需已知濾波器技術(shù)指標(biāo)Ωp,Ωs,Rp和As,便可求出參數(shù)N和ωn。將這8個(gè)函數(shù)相結(jié)合,便可設(shè)計(jì)任意的數(shù)字IIR濾波器。
2IIR數(shù)字濾波器設(shè)計(jì)實(shí)例
根據(jù)上述方法,編寫程序來實(shí)現(xiàn)IIR數(shù)字低通、帶通、高通和帶阻濾波器的設(shè)計(jì)[8]。
2.1低通數(shù)字濾波器設(shè)計(jì)
給定指標(biāo):ωp=0.2π,ωs=0.3π,Rp=1 dB,As=40 dB,用巴特沃思濾波器原型設(shè)計(jì)數(shù)字低通濾波器,編程及運(yùn)行結(jié)果如圖2和圖3所示。
圖2 低通數(shù)字濾波器設(shè)計(jì)編程
圖3 低通數(shù)字濾波器幅頻特性
2.2帶通數(shù)字濾波器設(shè)計(jì)
給定指標(biāo)ωp1=0.25π,ωs1=0.4π,ωs2=0.9π,ωp2=-0.8π,Rp=1 dB,As=40 dB,用巴特沃思濾波器原型設(shè)計(jì)數(shù)字帶通濾波器,編程及運(yùn)行結(jié)果如圖4和圖5所示。
圖4 帶通數(shù)字濾波器設(shè)計(jì)編程
圖5 帶通數(shù)字濾波器幅頻特性
2.3高通數(shù)字濾波器設(shè)計(jì)
給定指標(biāo)ωp=0.6π,ωs=0.458 6π,Rp=1,As=15 dB,用巴特沃思濾波器原型設(shè)計(jì)數(shù)字高通濾波器,編程及運(yùn)行結(jié)果如圖6和圖7所示。
圖6 高通數(shù)字濾波器設(shè)計(jì)編程
圖7 高通數(shù)字濾波器幅頻特性
2.4帶阻數(shù)字濾波器設(shè)計(jì)
給定指標(biāo)ωs1=0.3π,ωp1=0.4π,ωp2=0.6π,ωs2=0.75π,Rp=1 dB,As=40 dB,用巴特沃思濾波器原型設(shè)計(jì)數(shù)字帶阻濾波器,編程及運(yùn)行結(jié)果如圖8和圖9所示。
圖8 帶阻數(shù)字濾波器設(shè)計(jì)編程
圖9 高通數(shù)字濾波器幅頻特性
3結(jié)束語
數(shù)字濾波器的概念較為抽象,加之其數(shù)值計(jì)算繁瑣,所以借助性能良好的計(jì)算機(jī)軟件進(jìn)行輔助設(shè)計(jì),是數(shù)字濾波器研究領(lǐng)域的發(fā)展趨勢。Matlab語言及其工具箱的通用性和專業(yè)性,使數(shù)字濾波器的設(shè)計(jì)和實(shí)現(xiàn)變得事半功倍,并可隨時(shí)按照設(shè)計(jì)要求和濾波器特性調(diào)整參數(shù),直觀簡便,大幅縮短了開發(fā)周期,且提高了設(shè)計(jì)效率。
參考文獻(xiàn)
[1]程佩青.數(shù)字信號(hào)處理[M].北京:清華大學(xué)出版社,1995.
[2]揚(yáng)大柱.Matlab在IIR濾波器設(shè)計(jì)中的應(yīng)用[J].現(xiàn)代機(jī)械,2006(5):60-62.
[3]張亞妮.基于Matlab的數(shù)字濾波器的設(shè)計(jì)[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào),2005,24(5):716-718.
[4]羅軍輝.Matlab7.0在數(shù)字信號(hào)處理中的應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.
[5]馮巧玲,孫君曼.IIR數(shù)字濾波器設(shè)計(jì)方法[J].河南科學(xué),2002,20(1):85-88.
[6]劉彬.Matlab環(huán)境下IIR濾波器設(shè)計(jì)、仿真與驗(yàn)證[J].電子測量技術(shù),2011,34(4):7-10.
[7]仲麟.Matlab仿真技術(shù)與應(yīng)用教程[M].北京:國防工業(yè)出版社,2004.
[8]王占龍.基于Matlab7.0的IIR 濾波器設(shè)計(jì)及實(shí)現(xiàn)[J].科技信息:學(xué)術(shù)研究,2007(29):271-272.