1.IIR濾波器的原理
1.1 概述
《數(shù)字信號處理》作為一門通信、電子、信息等本科專業(yè)基礎(chǔ)課程,在《信號與系統(tǒng)》課程的基礎(chǔ)上,學(xué)習(xí)離散信號與離散時間系統(tǒng),尤其是離散傅里葉變換(DFT)和快速傅里葉變換(FFT)、數(shù)字濾波器、多速率信號處理等在通信、雷達等領(lǐng)域得到廣泛應(yīng)用。
無限脈沖相應(yīng)(Infinite Impulse Response ,IIR)濾波器與(Finite Impulse Response ,F(xiàn)IR)濾波器構(gòu)成了兩種常用的數(shù)字濾波器,這兩者既有聯(lián)系,也有區(qū)別。
首先,IIR濾波器具有很高的濾波效率,在相同幅頻響應(yīng)條件下,所需的濾波器階數(shù)明顯比FIR濾波器低。其次,IIR濾波器的設(shè)計,可以借鑒模擬濾波器的設(shè)計成果。此外,IIR濾波器可以用較少的硬件資源(主要是乘加運算的DSP資源)獲得較好的濾波器幅頻特性。
需要注意的是,IIR濾波器的一個顯著特點是不具備嚴(yán)格的線性相位特性,相對于FIR濾波器而言應(yīng)用范圍較窄,只有在不需要嚴(yán)格線性相位特性的情況下,可以利用IIR濾波器實現(xiàn)數(shù)字濾波。
數(shù)字濾波器通常由一個系統(tǒng)函數(shù)、差分方程、方框圖或流圖來表示:
其基本運算單元、方框圖及流圖為:
例如給定一個二階濾波器:,則其方框圖結(jié)構(gòu)與流圖結(jié)構(gòu)如下圖所示。
在流圖結(jié)構(gòu)中,我們還需要弄清楚以下幾個基本概念:
節(jié)點:
源節(jié)點:只有輸出、沒有輸入的的節(jié)點
阱節(jié)點(輸出節(jié)點):只有輸入支路而沒有輸出支路,它一般代表系統(tǒng)的輸出變量,故也稱為輸出節(jié)點。
網(wǎng)絡(luò)節(jié)點:分支節(jié)點或加法器
支路:只有一個輸入,由一個或多個輸出的節(jié)點
節(jié)點的值=所有輸入支路的值之和
支路的值=支路起點處的節(jié)點值×傳輸系數(shù)
知乎話題:如何通俗易懂地理解FIR/IIR濾波器?
1.2IIR濾波器的原理及特性
LLR濾波器具有以下結(jié)構(gòu)及特點:
IIR濾波器的特點:
系統(tǒng)的單位抽樣相應(yīng)h(n)無限長理解:由于本步驟的輸出會作為下一步驟的輸入,無限遞歸下去,所以一個時刻的影響就是無限的,也就是“無限沖激響應(yīng)”。
系統(tǒng)函數(shù)H(z)在有限z平面( 0<|z|<∞)上有極點存在LSI系統(tǒng)因果穩(wěn)定性:一個LSI系統(tǒng)是因果穩(wěn)定系統(tǒng)的必要與充分條件是系統(tǒng)函數(shù)H(z)必須是在從單位圓|z|=1到|z|<∞的整個z平面內(nèi)(0≤|z|≤∞)收斂。即:系統(tǒng)函數(shù)H(z)的全部極點必須在Z平面的單位圓以內(nèi)。
存在輸出到輸入的反饋,遞歸型結(jié)構(gòu)在物理世界的時間系統(tǒng)中,因環(huán)境噪聲等不可控因素,IIR濾波器將可能導(dǎo)致所設(shè)計系統(tǒng)不穩(wěn)定,反復(fù)遞歸振蕩。
如果只有不為0,其他,則稱為全極點型的IIR濾波器或自回歸(AR)系統(tǒng),如果由兩個或多個,則稱為零-極點型的IIR濾波器或自回歸滑動平均(ARMA)系統(tǒng)。
IIR濾波器結(jié)構(gòu):直接I型、直接II型、級聯(lián)型、并聯(lián)型和格型結(jié)構(gòu)。
單位沖擊相應(yīng)h(n)為實數(shù)。
1.3 IIR濾波器的結(jié)構(gòu)
1.3.1 直接I型
對于差分方程:如果先實現(xiàn)各的加權(quán)和,再實現(xiàn)各的加權(quán)和,則稱之為直接I型。
1.3.2直接II型
將直接I型結(jié)構(gòu)的兩個延時鏈子系統(tǒng)的次序進行交換,并將有相同輸出的中間兩延時鏈加以合并,即可得到直接II型結(jié)構(gòu)(典范型結(jié)構(gòu))。
直接型的共同缺點
對于高階濾波器,系數(shù)a_k和b_k分別對濾波器的極點與零點的控制作用不明顯,即對頻率響應(yīng)的控制作用不明顯,因而調(diào)整頻率響應(yīng)比較困難。
極點對系數(shù)的變化過于靈敏,易出現(xiàn)不穩(wěn)定或較大誤差
運算的累積誤差較大:乘法運算的量化誤差,造成系統(tǒng)輸出端噪聲功率大
1.3.3 級聯(lián)型
?
?
?
1.3.4并聯(lián)型
?
?
?
2.IIR濾波器的設(shè)計方法
程佩青《數(shù)字信號處理教程》(第四版簡明版)第6章總結(jié)的IIR濾波器設(shè)計方法
?
?
?
?
?
?
?
?
?
?
顯然,在數(shù)字化時代,利用MATLAB、FPGA、DSP等軟硬件來設(shè)計濾波器,才能應(yīng)用到產(chǎn)品中!
3.IIR濾波器的MATLAB設(shè)計
MATLAB軟件提供了豐富的濾波器設(shè)計方法,例如Signal Processing Toolbox提供了FIR、IIR、單速率和多速率濾波器設(shè)計、分析和實現(xiàn)的案例,可以用于設(shè)計參考。
?
?
除了函數(shù),我們也可以利用filterDesigner設(shè)計。命令行鍵入filterDesigner ,回車。
進入濾波器設(shè)計界面,設(shè)計一個IIR濾波器。
在界面的左側(cè),顯示當(dāng)前濾波器信息?!绊憫?yīng)類型”用于指定濾波器的作用。“設(shè)計方法”包含IIR和FIR,用于指定濾波器的類型。設(shè)置濾波器的階數(shù),設(shè)定頻率的單位可以采用歸一化或Hz、kHz、MHz等。參數(shù)設(shè)置完畢,點擊“設(shè)計濾波器”,可通過工具欄查看所設(shè)計濾波器的幅值響應(yīng)、相位響應(yīng)、群延遲響應(yīng)、零極點圖等。并可在左上角查看當(dāng)前濾波器信息。
設(shè)計確定后,可對濾波器系數(shù)進行量化。設(shè)置量化參數(shù),濾波器算法選擇“定點”,系數(shù)字長設(shè)為16。
需要注意的是,在生成.coe文件時,需要滿足定點、單節(jié)和直接型的FIR,才能支持Xilinx FPGA所需的.coe文件。我們也可以將所設(shè)計濾波器導(dǎo)出生成.m文件,以供應(yīng)用。
此外,我們可以應(yīng)用designfilt設(shè)計濾波器,再用filter對數(shù)據(jù)進行濾波。
?
例如,設(shè)計一個低通IIR濾波器。
?
4.IIR濾波器的FPGA實現(xiàn)
IIR濾波器的FPGA實現(xiàn)比較復(fù)雜,需要應(yīng)用到除法器。在利用FPGA實現(xiàn)IIRA濾波器前,我們需要將MATLAB設(shè)計的IIR濾波器滿足設(shè)計需求后,將系數(shù)進行量化。
示例:采用cheby2函數(shù)設(shè)計一個階數(shù)為7(級數(shù)為8)的帶通濾波器,采樣頻率為2000Hz、截至頻率為500Hz、阻帶衰減為60dB,設(shè)計一個IIR濾波器。
c=fvtool(b,a),將濾波器可視化。
為方便FPGA實現(xiàn),我們需要將系數(shù)進行量化定點。對于IIR濾波器的FPGA設(shè)計,可以參考杜勇的《數(shù)字濾波器的MATLAB與FPGA實現(xiàn)》第5章。在實際應(yīng)用中,很少用IIR濾波器去做設(shè)計,而是更多的應(yīng)用FIR濾波器設(shè)計。
最后,我們需要將處理結(jié)果進行對比,確保設(shè)計一致。
審核編輯:黃飛
?
評論