吳黎慧,蒲南江,高磊,胡洋
(中北大學(xué) 信息與通信工程學(xué)院 山西 太原 030051)
數(shù)字信號處理技術(shù)(digital signal processing,DSP)隨著計(jì)算機(jī)和大規(guī)模集成電路技術(shù)的迅速發(fā)展,現(xiàn)已成為一項(xiàng)成熟的技術(shù),其方法通常涉及變換、濾波、頻譜分析、編碼解碼等處理。其中數(shù)字濾波是一個(gè)重要環(huán)節(jié),它能滿足濾波器對幅度和相位特性的嚴(yán)格要求,克服模擬濾波器所無法解決的電壓和溫度漂移以及噪聲等問題。由于FIR濾波器只有零點(diǎn)、系統(tǒng)穩(wěn)定等諸多優(yōu)點(diǎn)使得其在工程上得到了廣泛的應(yīng)用。使用FPGA來實(shí)現(xiàn)FIR濾波器,既具有實(shí)時(shí)性,又有一定的靈活性。
有限脈沖相應(yīng)(FIR)濾波器的系統(tǒng)函數(shù)為:
數(shù)字濾波器實(shí)際上是一個(gè)采用有限精度算法實(shí)現(xiàn)的線性時(shí)不變離散系統(tǒng),它的設(shè)計(jì)步驟為先根據(jù)需要確定其性能指標(biāo),設(shè)計(jì)一個(gè)系統(tǒng)傳遞函數(shù)H(z)逼近所需要的技術(shù)指標(biāo),最后采用有限精度算法實(shí)現(xiàn)。
該系統(tǒng)的設(shè)計(jì)指標(biāo)要求:采用窗函數(shù)法設(shè)計(jì)FIR低通濾波器;采樣頻率Fs為100Hz;截止頻率Fc為30Hz;通帶最大衰減為1dB;阻帶最小衰減為40 dB。
常用窗函數(shù)的特性如表1所示,窗函數(shù)法的基本思想是使其具有最窄主瓣寬度和盡可能小的旁瓣。這種設(shè)計(jì)法的重點(diǎn)是如何選擇合適的窗函數(shù)和理想濾波器。通過理論分析和對比,海明窗在6個(gè)窗函數(shù)中,主瓣寬度不是太寬8π/N,其最大旁瓣值比主瓣約低44dB,旁瓣抑制度高,普能量絕大部分集中于主瓣內(nèi),故選用海明窗用于濾波器的設(shè)計(jì)。用MATLAB提供的濾波器設(shè)計(jì)的專門工具箱FDATooL仿真設(shè)計(jì)濾波器,濾波器的幅頻特性滿足要求。把獲得的濾波器系數(shù)導(dǎo)出為文本文件保存。
表1 5種窗函數(shù)基本參數(shù)比較
FPGA采用ALTERA公司生產(chǎn)的Cyclone III 系列中的EP1C6Q240C8芯片。使用濾波器描述編程,從而實(shí)現(xiàn)FIR濾波器的頂層原理圖,如圖1所示。
圖1 濾波器頂層模塊圖
取輸入信號Din=[99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0,99,0,0,0,70],QuatusII仿真結(jié)果如圖2所示,其中clear為復(fù)位信號,clk為時(shí)鐘信號,Din為輸入序列,Dout為輸出序列。
圖2 FIR濾波器仿真結(jié)果
由濾波器卷積公式:
其中X(n)為輸入序列用Din代替,系統(tǒng)函數(shù)為h(n),詳見表2.
表2 FIR濾波器理論值與仿真結(jié)果比較
量化系數(shù)后產(chǎn)生的濾波器頻譜與理論濾波器頻譜如圖3所示。
通過圖3可以發(fā)現(xiàn),當(dāng)把濾波器系數(shù)量化擴(kuò)大2^14=16384倍時(shí),設(shè)計(jì)的濾波器頻譜與理論濾波器頻譜非常接近,即此時(shí)的濾波器精確度較高。
把理論值與仿真值作差,通過MATLAB畫圖軟件,得到絕對誤差如圖4所示。
圖3 頻譜比較圖
圖4 絕對誤差
由圖4中得知其誤差均值為x=7.5229e-005,方差p =1.8823e-008,可見,其誤差均值和方差均非常小,在誤差的允許范圍之內(nèi),不會對工程結(jié)果產(chǎn)生嚴(yán)重誤差。
把理論值與仿真值作差后除以理論值就可得到相對誤差,同樣通過MATLAB畫圖軟件得到相對誤差的圖樣,如圖5所示。
圖5 濾波器相對誤差
由圖5可知為仿真濾波器相對誤差,前幾個(gè)結(jié)果相對誤差相對較大,到n=6以后,相對誤差基本可以維持在-0.1~+0.1的范圍內(nèi),故在誤差允許的范圍內(nèi),采用FPGA設(shè)計(jì)的濾波器與MATLAB理論仿真的結(jié)果完全吻合,此種方法完全可行。要想得到比較精確的結(jié)果,可以適當(dāng)提高濾波器系數(shù)擴(kuò)大的倍數(shù),但這是以提高資源占用大小為前提的。
本文通過基于FPGA設(shè)計(jì)的數(shù)字濾波器的誤差分析,結(jié)合工程要求,驗(yàn)證了關(guān)于設(shè)計(jì)該參數(shù)要求下的濾波器完全可用,符合工程要求。
[1]張維璽.FIR數(shù)字濾波器的模塊設(shè)計(jì)[J].云南工業(yè)大學(xué)學(xué)報(bào),1995,11 (4):18-23.
[2]王道憲.CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)[M].北京:國防工業(yè)出版社,2004.
[3]楊桓.零起點(diǎn)學(xué)單片機(jī)與FPGA[M].北京:北京航空航天大學(xué)出版社,2007.
[4]胡莉,陳紅艷.基于可編程邏輯器件的FIR數(shù)字濾波器實(shí)現(xiàn)[J].2002年西南地區(qū)自動化、儀器儀表及電控技術(shù)學(xué)術(shù)年會,2002,10-11:1-3
[5]杜清珍,秦鵬.基于CPLD 的線性相位FIR 濾波器優(yōu)化設(shè)計(jì)[J].西北工業(yè)大學(xué)學(xué)報(bào),2004(2):50.
[6]王旭東,潘廣幀.MATLAB及其在FPGA中的應(yīng)用[M].北京:國防工業(yè)出版社,2006.
[7]王正林,陳國.MATLAB/Simulink與控制系統(tǒng)仿真[M].北京:電子工業(yè)出版社,2005:1-13.
[8]丁吉, 姜濤.基于Matlab的FIR數(shù)字濾波器的設(shè)計(jì)[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2006(03).