基于FPGA的IIR數字濾波器硬件模塊的設計
關(guān)鍵詞:IIR數字濾波器,級聯(lián)結構,FPGA
Abstract:The introduction of this paper is in height of the method of the high-step IIR digital adopting cascade structure of wave filter in realizing on FPGA . the wave filter of Matlab design of in signal handling tool case are used to design the IIR wave filter that does not be quantified in accordance with application requirement very conveniently, and it is further described with VHDL language, through compiling, function emulatation, synthesis and can be realized on FPGA after sequential emulatation. This design development is good, and in actual use, the proper modificaion of peripheral parameter frequency that changes wave filter respondence can be realized according to different requirements on the FPGA of different scales.
Keywords: IIR digital wave filter; cascade structure; FPGA
1 引言
近年來(lái)由于半導體技術(shù)、計算機技術(shù)的成熟與迅速發(fā)展,使得科技與生活的密切結合,尤其是數字信號處理的突飛猛進(jìn),以及許多組件得以數字化及一體化,提供了小型、多功能、低成本與低功率消耗的特性。由于數字信號先天上優(yōu)于模擬信號,因此數字信號對噪聲的免疫力遠較模擬信號來(lái)得好,使得數字信號能長(cháng)時(shí)間的保存或長(cháng)距離的傳輸且比較不容易產(chǎn)生失真現象。數字信號處理(Digital Signal Processing DSP)在通信與信息系統、信號與信息系統、自動(dòng)控制、雷達、軍事、航空航天、醫療和家用電器等眾多領(lǐng)域得到了廣泛應用。本設計是基于數字信號處理的基礎上,實(shí)現的IIR數字濾波,對于采集信號精度的提高,具有借鑒意義。
2 硬件系統介紹
2.1 系統框圖
系統硬件框圖如圖2.1所示。主要由A/D轉換、FPGA、存儲器和D/A轉換四部分組成。
2.2部分芯片介紹
一個(gè)電路的性能與元器件的選擇是密切相關(guān)的,下面將從控制芯片、存儲器、A/D轉換和D/A轉換四個(gè)方面介紹系統硬件設計。
數字信號處理芯片,我們選用采用Xilinx公司的XC2S50型號的FPGA芯片。用FPGA進(jìn)行數據采集存儲的有以下優(yōu)點(diǎn):(1)FPGA采取有多少數據轉換芯片用多少控制單元模塊的策略,功能控制模塊與數據轉換芯片是一一對應的關(guān)系,在硬件上保證了數據采集的完全并行性;(2)XC2S50芯片內有RAM塊,可以設計為數據緩沖,方便解決數據流阻塞的問(wèn)題;(3)FPGA芯片讀寫(xiě)速度較高,在采集和存儲速度都上不會(huì )存在任何問(wèn)題;(4)FPGA的設計采用在線(xiàn)編程的方式進(jìn)行,修改和調試都相當快捷、方便;(5)FPGA的外圍電路除了一塊配置芯片外,不再需要其他任何外圍器件,集成度高,可靠性強。
對于A(yíng)/D和D/A轉換芯片,我們選用高精度的16位轉換芯片ADS8402和MAX5631,有利于提高所測數據的精度。
2.3 硬件工作過(guò)程
傳感器采集的模擬信號,經(jīng)過(guò)ADS8402芯片以后轉換為數字信號,將數字信號輸入FPGA芯片中,FPGA芯片采用IIR數字濾波算法對輸入信號進(jìn)行處理,將處理后的信號一方面可以通過(guò)數字接口進(jìn)行傳輸,另一方面可以經(jīng)AD變換以模擬量的形式輸出,通過(guò)前后輸出和輸入信號的對比,我們就可以直觀(guān)的分析濾波效果。
3 IIR數字濾波器的原理和設計
數字濾波器是實(shí)現數字濾波的核心器件,按類(lèi)型分為2大類(lèi):無(wú)限沖激響應 IIR和有限沖激響應FIR數字濾波器。IIR數字濾波器在很多領(lǐng)域中有著(zhù)廣闊的應用前景,與FIR數字濾波器相比,它可以用較低的階數獲得高選擇性,所要求的階用存儲單元少,且成本低、信號延遲小,同時(shí)還可以利用模擬濾波器設計成果,設計工作量相對較小。
3.1 IIR 數字濾波器的結構
高階IIR濾波器可通過(guò)傳遞函數, 表示為:
(3.1-1)
由于高階IIR濾波器可以用若干個(gè)二階網(wǎng)絡(luò )級聯(lián)起來(lái)構成。對于每一個(gè)二階基本節,
它可以用轉置直接II型結構加以實(shí)現, 如圖3.1所示。
圖 3.1 標準二階部分的轉換
3.2 濾波器系數的計算
該系統的設計指標為:模擬信號采樣頻率為2MHZ,每周期最少采樣20點(diǎn),即模擬信號的通帶邊緣頻率為fp = 100KHZ,阻帶邊緣頻率fs = 1MHz,通帶波動(dòng)RP不大于0.1dB(通帶誤差不大于5%),阻帶衰減AS不小于32dB。
本系統函數H(z)的計算采用MATLAB軟件中數字信號處理工具箱比較方便,其中有兩個(gè)現成的函數可以使用:ellipord(Fp/π,Fs/π,Rp,As)函數用來(lái)計算數字橢圓濾波器的階次N和3dB截止頻率Fn,而 ellip(N,Rp,As,Fn)函數可以求得直接型橢圓IIR濾波器的各個(gè)系數。利用MATLAB軟件進(jìn)行計算,可得:b =(0.0271 -0.0724 0.0984 -0.0724 0.0271),a =(1.0000 -3.3553 4.3439 -2.5578 0.5771)。
通過(guò)調用以上兩個(gè)函數計算得到的系統函數 :
(3.2-1)
上面的式子是直接型結構,它的實(shí)現需用的乘法器和延遲單元相對較多,而且分子和分母的系數相差較大,需要較多的二進(jìn)制位數才能實(shí)現相應的精度要求。如果采用二階節級聯(lián)實(shí)現,一來(lái)各個(gè)基本節的零點(diǎn)、極點(diǎn)可以很方便地單獨進(jìn)行調整,二來(lái)可以降低對二進(jìn)制數位數的要求。下面給出了一個(gè)直接型結構轉為級聯(lián)型結構的 文件,即利用[b0,b,a]=dir2cas(b,a) ,可得b0 = 0.0271。對該系數進(jìn)行合理安排后可得式(3.2-2):
為了使設計簡(jiǎn)便以及資源得充分利用,我們應該對系數進(jìn)行進(jìn)一步的量化,將系數由小數轉化為整數,根據需要主要考慮量化精度和系統資源兩方面,將二階網(wǎng)絡(luò )的系數同時(shí)擴大N倍后作為新的系數,然后再將輸出網(wǎng)絡(luò )的系數縮小N倍,并用二進(jìn)制數進(jìn)行表示,如下表3.1所示:
表3.1濾波器系數擴大
系數 | a0 | a1 | a2 | b0 | b1 | |
IIR1 | 原數據 | 0.11 | 0.1041 | 0.11 | 1.58 | 0.6469 |
擴大1024 后的系數 | 113 | 107 | 113 | 1618 | 662 | |
IIR2 | 原系數 | 0.2464 | 0.426 | 0.2464 | 1.7753 | 0.892 |
擴大1024 后的系數 | 252 | 436 | 252 | 1818 | 913 |
經(jīng)過(guò)系數擴大后的系統函數級聯(lián)表達式為:
(3.2-3)
以下為用VHDL語(yǔ)言所編寫(xiě)濾波器級聯(lián)結構的部分源程序
第一級乘累加器的源程序如下:
entity mac is
Port (clk:in std_logic;
x0:in bits8;
x1:in bits8;
x2:in bits8;
y0:in bits8;
y1:in bits8;
y2:out bits8
);
end mac;
architecture flex of mac is
begin
process
begin
wait until clk='1';
y2=(113*x2-107*x1+113*x0+1618*y1-662*y0)/1024;
end process;
end flex;
其中第二級乘累加器的源程序與第一級基本相似,第一級的乘累加器輸出為第二級乘累加器的一個(gè)輸入,其余輸入為第一級輸出經(jīng)過(guò)寄存器后的輸出,或為反饋回來(lái)的信號,輸入時(shí)鐘和復位信號相同,第二級乘累加器的輸出,也為總的輸出,。
4 結束語(yǔ)
該驗證過(guò)程的輸入信號是一個(gè)正弦100HZ信號,在信號輸出穩定后加上一個(gè)高脈沖200,一個(gè)低脈沖50,在初始狀態(tài)時(shí),信號的值初始化為0,當X信號經(jīng)過(guò)連續的輸入,信號逐漸穩定,并輸入IIR濾波器的差分方程進(jìn)行濾波,將干擾脈沖濾掉,輸出100HZ穩定的正弦信號,該信號的通帶衰減為0.09 dB,阻帶衰減為32.7 dB,滿(mǎn)足設計要求。
參考文獻
[1] .羅鵬飛、楊世海、朱國富翻譯.[英]EmmanuelC.I feachor,BarrieW Jervis.數字信號處理實(shí)踐方法.[M]北京:電子工業(yè)出版社.2004;5:82~84
[2]雪倪,向東.基于FPGA的四階IIR數字濾波器,重慶師范學(xué)院信息技術(shù)系。4:71~75
[3]任勇峰,莊新敏.VHDL與硬件實(shí)現速成,國防工業(yè)出版社.2005;5:158~159
[4]王世一.數字信號處理[M],北京:北京理工大學(xué)出版社.1997;3:50~52
[5] 陳志高,李樹(shù)廣. 基于TMS320F2812的有源濾波器的設計.微計算機信息.2007;21(2):158~159
評論