黃玉健,黃永慶
(1.2.梧州學(xué)院 圖像處理與智能信息系統(tǒng)廣西高校重點實驗室,廣西 梧州 543002)
IIR數(shù)字濾波器,即無限脈沖響應(yīng)(Infinite Impulse Response,IIR)數(shù)字濾波器是最常用的數(shù)字濾波器之一。由于IIR濾波器具有通常階數(shù)比較低長度比較短就可以實現(xiàn)所需功能且能以比較高的速度運行以及可以閉環(huán)設(shè)計算法等優(yōu)點,它被廣泛應(yīng)用于數(shù)字信號處理(DSP)系統(tǒng)。在非實時系統(tǒng)和低速系統(tǒng)中,IIR濾波處理可以用軟件算法實現(xiàn),但是在實時高速處理系統(tǒng)中,用軟件算法實現(xiàn)IIR濾波器功能往往無法滿足要求。這時就必須要用硬件高速實現(xiàn),而FPGA作為并行高速處理器件,不僅在運算處理速度上滿足要求,而且集成度高、設(shè)計靈活、穩(wěn)定性高,是實時性要求高或計算量大的系統(tǒng)的優(yōu)秀解決方案。本文論述用Matlab設(shè)計IIR級聯(lián)型數(shù)字濾波器并在FPGA上實現(xiàn)。
本文的組織結(jié)構(gòu)如下:第2節(jié)對IIR直接型和級聯(lián)型濾波器原理進(jìn)行理論分析;第3節(jié)闡述用Matlab設(shè)計并求取級聯(lián)型IIR濾波器系數(shù);第4節(jié)闡述如何應(yīng)用已經(jīng)設(shè)計出的級聯(lián)型IIR濾波器系數(shù)在FPGA實現(xiàn)濾波功能,通過聯(lián)合Modelsim仿真和實際下載到FPGA芯片上運行來驗證設(shè)計的正確性。第5節(jié)對本文進(jìn)行總結(jié)。
IIR濾波器全稱為無限脈沖響應(yīng)濾波器,它的單位脈沖響應(yīng)是無限長的,它的離散變換的傳遞函數(shù)如公式(1)所示:
(1)
公式(1)中,M是分子的階數(shù),N是分母的階數(shù),al是分母的系數(shù),bi是分子的系數(shù),通常N>M。把公式(1)變換成差分方程,可以得到公式(2):
(2)
從公式(2)可以得到IIR濾波器的信號流圖,結(jié)構(gòu)形式如圖1所示,稱為IIR濾波器的直接Ⅰ型結(jié)構(gòu)。
對于線性時不變系統(tǒng)的Z變換形式,交換子系統(tǒng)的次序,系統(tǒng)的函數(shù)不變。因此可以把公式(1)變換得到公式(3):
(3)
根據(jù)公式(3)得到IIR濾波器的信號流圖,結(jié)構(gòu)如圖2所示,稱為IIR濾波器的直接Ⅰ型的變形。對于圖(2),由于兩個串行時延支路具有相同的輸入,因此可以合并,合并后得到下頁圖3,稱為IIR濾波器直接Ⅱ型結(jié)構(gòu)。對于N階差分方程而言,相比直接Ⅰ型結(jié)構(gòu),直接Ⅱ型結(jié)構(gòu)的延時單元少一半,僅需要N個延時單元。因此,直接Ⅱ型結(jié)構(gòu)在用軟件實現(xiàn)時可以節(jié)省存儲空間,在用硬件實現(xiàn)時可以節(jié)省寄存器,比直接Ⅰ型結(jié)構(gòu)有非常明顯的優(yōu)勢。
圖1 IIR濾波器的直接Ⅰ型結(jié)構(gòu)圖 圖2 IIR濾波器直接Ⅰ型結(jié)構(gòu)的變形圖
從公式(1)可知,一個N階IIR濾波器系統(tǒng)可以用它的零點和極點表示。因為IIR濾波器系統(tǒng)函數(shù)的系數(shù)都是實數(shù),所以它的零點和極點只能有兩種情況:要么是實數(shù),要么是復(fù)共軛對。把(1)式分子分母進(jìn)行因式分解,可得公式(4):
(4)
(5)
圖3 IIR濾波器直接Ⅱ型結(jié)構(gòu)圖 圖4 四階IIR系統(tǒng)的級聯(lián)結(jié)構(gòu)圖
本論文設(shè)計一個六階IIR低通以及一個六階IIR高通濾波器。設(shè)計參數(shù)為:采樣頻率fs=10MHz,截止頻率fc=3MHz,阻帶衰減60dB,濾波器系數(shù)量化位數(shù)為14位。用Matlab調(diào)用cheby2函數(shù)設(shè)計滿足參數(shù)要求的IIR濾波器,得到直接型IIR低通濾波器分母多項式系數(shù)a1=[1.0000 -1.0099 1.2239 -0.5394 0.2415 -0.0381 0.0047]和分子多項式的系數(shù)b1=[0.0269 0.0999 0.1948 0.2396 0.1948 0.0999 0.0269];直接型IIR濾波器分母多項式系數(shù)a2=[1.0000 3.0736 4.3761 3.5128 1.6615 0.4334 0.0486]和分子多項式的系數(shù)b2=[0.0063 0.0066 0.0138 -0.0129 0.0138 0.0066 0.0063]。頻率響應(yīng)如下頁圖5所示。
a.低通幅頻響應(yīng) b.低通相頻響應(yīng)
c.高通幅頻響應(yīng) d.高通相頻響應(yīng)圖5 六階IIR濾波器頻率響應(yīng)圖
由上述可知,本設(shè)計的六階IIR濾波器可用3個二階IIR濾波器級聯(lián)來實現(xiàn),第3節(jié)已經(jīng)對濾波器的系數(shù)進(jìn)行了量化。根據(jù)級聯(lián)結(jié)構(gòu)量化系數(shù)可以得到低通濾波器的差分方程,見公式(6);以及高通濾波器的差分方程,見公式(7)。
(6)
(7)
根據(jù)差分方程,可以得到二階IIR濾波器的FPGA實現(xiàn)結(jié)構(gòu)圖[2]如下頁圖6所示。然后用3級二階IIR濾波器級聯(lián)得到六階IIR濾波器。FPGA實現(xiàn)后的頂層RTL原理圖如下頁圖7所示。
圖6 二階IIR濾波器的FPGA實現(xiàn)結(jié)構(gòu)圖
圖7 六階IIR濾波器FPGA實現(xiàn)頂層RTL電路圖
為了驗證FPGA實現(xiàn)的IIR濾波器的濾波效果,對本設(shè)計分別采用Quartus II 聯(lián)合Modelsim仿真驗證和下載到FPGA器件Altera公司的Cyclone III 系列的EP3C25Q240C8芯片上實際運行濾波驗證。IIR低通濾波Modelsim仿真圖如8所示。圖中Xin為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經(jīng)14位量化后混合波形圖,Y1out和Y2out分別是第一級和第二級濾波輸出,Yout為最終濾波輸出。下頁圖9則是IIR高通濾波Modelsim仿真圖,輸入波形參數(shù)同低通濾波輸入波形參數(shù)一樣。可以看出均達(dá)到良好濾波效果。
圖8 IIR低通濾波器濾波效果Modelsim仿真圖
圖9 IIR高通濾波器濾波效果Modelsim仿真圖
下載到FPGA芯片運行實際低通濾波效果的SignalTap II圖如圖10所示。圖10中Xin同樣為輸入頻率1MHz正弦波和4.1MHz正弦波的疊加波形經(jīng)14位量化并轉(zhuǎn)換為HEX格式文件[5],后經(jīng)信號發(fā)生器產(chǎn)生的混合波形圖[6],IIR_OUT為濾波輸出波形,同樣可以看出濾波效果也很好。
圖10 IIR低通濾波器實際運行濾波SignalTap II圖
本文用采用Matlab的切比雪夫II型函數(shù)設(shè)計出直接型IIR濾波器系數(shù),然后再把直接型系數(shù)轉(zhuǎn)換為級聯(lián)型系數(shù),最后采用Verilog語言在FPGA上實現(xiàn)。通過仿真驗證與下載運行測試的結(jié)果表明,該設(shè)計是快速可靠的,可作為高速數(shù)字濾波器設(shè)計的較好方案。