采用數(shù)字信號處理芯片實(shí)現(xiàn)IIR數(shù)字濾波器的設(shè)計(jì)
1 引言
近年來由于半導(dǎo)體技術(shù)、計(jì)算機(jī)技術(shù)的成熟與迅速發(fā)展,使得科技與生活的密切結(jié)合,尤其是數(shù)字信號處理的突飛猛進(jìn),以及許多組件得以數(shù)字化及一體化,提供了小型、多功能、低成本與低功率消耗的特性。由于數(shù)字信號先天上優(yōu)于模擬信號,因此數(shù)字信號對噪聲的免疫力遠(yuǎn)較模擬信號來得好,使得數(shù)字信號能長時(shí)間的保存或長距離的傳輸且比較不容易產(chǎn)生失真現(xiàn)象。數(shù)字信號處理(Digital Signal Processing DSP)在通信與信息系統(tǒng)、信號與信息系統(tǒng)、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療和家用電器等眾多領(lǐng)域得到了廣泛應(yīng)用。本設(shè)計(jì)是基于數(shù)字信號處理的基礎(chǔ)上,實(shí)現(xiàn)的IIR數(shù)字濾波,對于采集信號精度的提高,具有借鑒意義。
2 硬件系統(tǒng)介紹
2.1 系統(tǒng)框圖
系統(tǒng)硬件框圖如圖2.1所示。主要由A/D轉(zhuǎn)換、FPGA、存儲(chǔ)器和D/A轉(zhuǎn)換四部分組成。
2.2部分芯片介紹
一個(gè)電路的性能與元器件的選擇是密切相關(guān)的,下面將從控制芯片、存儲(chǔ)器、A/D轉(zhuǎn)換和D/A轉(zhuǎn)換四個(gè)方面介紹系統(tǒng)硬件設(shè)計(jì)。
數(shù)字信號處理芯片,我們選用采用Xilinx公司的XC2S50型號的FPGA芯片。用FPGA進(jìn)行數(shù)據(jù)采集存儲(chǔ)的有以下優(yōu)點(diǎn):(1)FPGA采取有多少數(shù)據(jù)轉(zhuǎn)換芯片用多少控制單元模塊的策略,功能控制模塊與數(shù)據(jù)轉(zhuǎn)換芯片是一一對應(yīng)的關(guān)系,在硬件上保證了數(shù)據(jù)采集的完全并行性;(2)XC2S50芯片內(nèi)有RAM塊,可以設(shè)計(jì)為數(shù)據(jù)緩沖,方便解決數(shù)據(jù)流阻塞的問題;(3)FPGA芯片讀寫速度較高,在采集和存儲(chǔ)速度都上不會(huì)存在任何問題;(4)FPGA的設(shè)計(jì)采用在線編程的方式進(jìn)行,修改和調(diào)試都相當(dāng)快捷、方便;(5)FPGA的外圍電路除了一塊配置芯片外,不再需要其他任何外圍器件,集成度高,可靠性強(qiáng)。
對于A/D和D/A轉(zhuǎn)換芯片,我們選用高精度的16位轉(zhuǎn)換芯片ADS8402和MAX5631,有利于提高所測數(shù)據(jù)的精度。
2.3 硬件工作過程
傳感器采集的模擬信號,經(jīng)過ADS8402芯片以后轉(zhuǎn)換為數(shù)字信號,將數(shù)字信號輸入FPGA芯片中,F(xiàn)PGA芯片采用IIR數(shù)字濾波算法對輸入信號進(jìn)行處理,將處理后的信號一方面可以通過數(shù)字接口進(jìn)行傳輸,另一方面可以經(jīng)AD變換以模擬量的形式輸出,通過前后輸出和輸入信號的對比,我們就可以直觀的分析濾波效果。
3 IIR數(shù)字濾波器的原理和設(shè)計(jì)
數(shù)字濾波器是實(shí)現(xiàn)數(shù)字濾波的核心器件,按類型分為2大類:無限沖激響應(yīng) IIR和有限沖激響應(yīng)FIR數(shù)字濾波器。IIR數(shù)字濾波器在很多領(lǐng)域中有著廣闊的應(yīng)用前景,與FIR數(shù)字濾波器相比,它可以用較低的階數(shù)獲得高選擇性,所要求的階用存儲(chǔ)單元少,且成本低、信號延遲小,同時(shí)還可以利用模擬濾波器設(shè)計(jì)成果,設(shè)計(jì)工作量相對較小。
3.1 IIR 數(shù)字濾波器的結(jié)構(gòu)
高階IIR濾波器可通過傳遞函數(shù), 表示為:
(3.1-1)
由于高階IIR濾波器可以用若干個(gè)二階網(wǎng)絡(luò)級聯(lián)起來構(gòu)成。對于每一個(gè)二階基本節(jié),
它可以用轉(zhuǎn)置直接II型結(jié)構(gòu)加以實(shí)現(xiàn), 如圖3.1所示。
3.2 濾波器系數(shù)的計(jì)算
該系統(tǒng)的設(shè)計(jì)指標(biāo)為:模擬信號采樣頻率為2MHZ,每周期最少采樣20點(diǎn),即模擬信號的通帶邊緣頻率為fp = 100KHZ,阻帶邊緣頻率fs = 1MHz,通帶波動(dòng)RP不大于0.1dB(通帶誤差不大于5%),阻帶衰減AS不小于32dB。
本系統(tǒng)函數(shù)H(z)的計(jì)算采用MATLAB軟件中數(shù)字信號處理工具箱比較方便,其中有兩個(gè)現(xiàn)成的函數(shù)可以使用:ellipord(Fp/π,F(xiàn)s/π,Rp,As)函數(shù)用來計(jì)算數(shù)字橢圓濾波器的階次N和3dB截止頻率Fn,而 ellip(N,Rp,As,F(xiàn)n)函數(shù)可以求得直接型橢圓IIR濾波器的各個(gè)系數(shù)。利用MATLAB軟件進(jìn)行計(jì)算,可得:b =(0.0271 -0.0724 0.0984 -0.0724 0.0271),a =(1.0000 -3.3553 4.3439 -2.5578 0.5771)。
通過調(diào)用以上兩個(gè)函數(shù)計(jì)算得到的系統(tǒng)函數(shù) :
(3.2-1)
上面的式子是直接型結(jié)構(gòu),它的實(shí)現(xiàn)需用的乘法器和延遲單元相對較多,而且分子和分母的系數(shù)相差較大,需要較多的二進(jìn)制位數(shù)才能實(shí)現(xiàn)相應(yīng)的精度要求。如果采用二階節(jié)級聯(lián)實(shí)現(xiàn),一來各個(gè)基本節(jié)的零點(diǎn)、極點(diǎn)可以很方便地單獨(dú)進(jìn)行調(diào)整,二來可以降低對二進(jìn)制數(shù)位數(shù)的要求。下面給出了一個(gè)直接型結(jié)構(gòu)轉(zhuǎn)為級聯(lián)型結(jié)構(gòu)的 文件,即利用[b0,b,a]=dir2cas(b,a) ,可得b0 = 0.0271。對該系數(shù)進(jìn)行合理安排后可得式(3.2-2):
為了使設(shè)計(jì)簡便以及資源得充分利用,我們應(yīng)該對系數(shù)進(jìn)行進(jìn)一步的量化,將系數(shù)由小數(shù)轉(zhuǎn)化為整數(shù),根據(jù)需要主要考慮量化精度和系統(tǒng)資源兩方面,將二階網(wǎng)絡(luò)的系數(shù)同時(shí)擴(kuò)大N倍后作為新的系數(shù),然后再將輸出網(wǎng)絡(luò)的系數(shù)縮小N倍,并用二進(jìn)制數(shù)進(jìn)行表示,如下表3.1所示:
表3.1濾波器系數(shù)擴(kuò)大
系數(shù) a0 a1 a2 b0 b1
IIR1 原數(shù)據(jù) 0.11 0.1041 0.11 1.58 0.6469
擴(kuò)大1024 后的系數(shù) 113 107 113 1618 662
IIR2 原系數(shù) 0.2464 0.426 0.2464 1.7753 0.892
擴(kuò)大1024 后的系數(shù) 252 436 252 1818 913
經(jīng)過系數(shù)擴(kuò)大后的系統(tǒng)函數(shù)級聯(lián)表達(dá)式為:
(3.2-3)
以下為用VHDL語言所編寫濾波器級聯(lián)結(jié)構(gòu)的部分源程序
第一級乘累加器的源程序如下:
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)過寄存器后的輸出,或?yàn)榉答伝貋淼男盘?,輸入時(shí)鐘和復(fù)位信號相同,第二級乘累加器的輸出,也為總的輸出,。
4 結(jié)束語
該驗(yàn)證過程的輸入信號是一個(gè)正弦100HZ信號,在信號輸出穩(wěn)定后加上一個(gè)高脈沖200,一個(gè)低脈沖50,在初始狀態(tài)時(shí),信號的值初始化為0,當(dāng)X信號經(jīng)過連續(xù)的輸入,信號逐漸穩(wěn)定,并輸入IIR濾波器的差分方程進(jìn)行濾波,將干擾脈沖濾掉,輸出100HZ穩(wěn)定的正弦信號,該信號的通帶衰減為0.09 dB,阻帶衰減為32.7 dB,滿足設(shè)計(jì)要求。
文章創(chuàng)新點(diǎn):本文設(shè)計(jì)的通用的簡單IIR數(shù)字濾波器適用于任何一種數(shù)據(jù)采集系統(tǒng)。一方面可以將傳感器采集的模擬數(shù)據(jù)經(jīng)A/D轉(zhuǎn)換以后,再經(jīng)過該數(shù)字濾波器后,進(jìn)行濾除信號中的干擾,以模擬量的形式輸出;另一方面還可以將采集到的數(shù)字信號直接經(jīng)過數(shù)字量接口輸出,經(jīng)驗(yàn)證經(jīng)過濾波處理有利于提高采集信號的精確度及準(zhǔn)確度。
責(zé)任編輯:gt