基于FPGA的IIR數(shù)字濾波器的設(shè)計方案
1.引言
數(shù)字濾波器在通信、自動控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。其中IIR數(shù)字濾波器和FIR數(shù)字濾波器是目前人們使用較多的兩種。數(shù)字濾波器通常采用計算機(jī)軟件、專用數(shù)字濾波器、DSP器件或可編程邏輯器件(如FPGA)實現(xiàn)。因為,用FPGA實現(xiàn)數(shù)字濾波器具有實時性強(qiáng)、靈活性高、處理速度快以及小批量生產(chǎn)成本低等優(yōu)點,所以得到了較為廣泛的應(yīng)用。本文以巴特沃思數(shù)字帶通濾波器為例,較為詳細(xì)地介紹了其設(shè)計和實現(xiàn)方法。給定巴特沃茲數(shù)字帶通濾波器的抽樣頻率為500Hz,上、下邊帶截止頻率分別為150Hz和30Hz.
2.濾波器的系統(tǒng)模型
雙線性變換法是在低通濾波器的基礎(chǔ)上采用頻率變換法把低通濾波器轉(zhuǎn)換成所需要濾波器的。據(jù)此方法,我們得到如下濾波器的系統(tǒng)模型:
3.Matlab仿真
針對式(1)所描述的系統(tǒng)模型,利用Matlab軟件工具箱函數(shù)freqz(b,a,N,Fs)繪制出其幅頻特性和相頻特性,以檢驗參數(shù)的正確性。該濾波器的幅相頻率特性如圖1所示。
由圖1可見,系統(tǒng)的上、下邊帶分別為150Hz和30Hz,滿足系統(tǒng)設(shè)計要求。
4.FPGA設(shè)計
4.1 濾波器的結(jié)構(gòu)
同一系統(tǒng)函數(shù)的IIR濾波器可以用不同的結(jié)構(gòu)來實現(xiàn),如直接I型、直接II型(典范型)、級聯(lián)型和并聯(lián)型。不同的結(jié)構(gòu)有不同的特點,為便于硬件實現(xiàn)及容易確定數(shù)據(jù)位數(shù),本文選用直接I型這一結(jié)構(gòu)形式。
系統(tǒng)的直接I型結(jié)構(gòu)如圖2所示。
4.2 FPGA主要模塊
(1)D觸發(fā)器模塊
使用D觸發(fā)器來實現(xiàn)圖2中所需的延時功能。每當(dāng)時鐘上升沿到來時,便對輸入的數(shù)據(jù)進(jìn)行鎖存。D觸發(fā)器可以利用Quartus II軟件中LPM宏模塊定制實現(xiàn)。
(2)乘累加模塊
由式(1)所描述的濾波器的系統(tǒng)模型,可得所對應(yīng)的差分方程如下:
乘累加模塊承擔(dān)式(2)中乘累加的計算工作。
5.系統(tǒng)框圖及實驗波形圖
利用數(shù)字濾波器實現(xiàn)模擬信號濾波的系統(tǒng)結(jié)構(gòu)框圖如圖3所示。
模擬輸入信號經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,用FPGA數(shù)字濾波器進(jìn)行濾波處理,再經(jīng)D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬輸出信號,完成模擬信號的濾波處理。FPGA芯片采用的是Cyclone II系列EP2C5T144C8型FPGA.A/D和D/A轉(zhuǎn)換器采用的康芯高速ADC/DAC模塊。
輸入峰峰值為5V的正弦信號,周期分別為10Hz、100Hz和200Hz,經(jīng)濾波系統(tǒng)處理后所得輸出信號波形分別如圖4、5、6所示,輸出信號幅度分別為400mV、2.32V、1.2V.
6.結(jié)語
本方案利用FPGA實現(xiàn)了巴特沃茲IIR數(shù)字帶通濾波器,并給出較為詳細(xì)的方案設(shè)計過程。實驗結(jié)果證明了所設(shè)計的濾波器完全滿足預(yù)定設(shè)計要求,從而也證實了本方案的有效性、可行性。