劉 鑫,王勝奎 ,李廣良,劉 彤
(1.西安應(yīng)用光學(xué)研究所 陜西 西安 710065;2.西安導(dǎo)航技術(shù)研究所 陜西 西安 710068)
基于FPGA的IIR數(shù)字濾波器實(shí)現(xiàn)及其量化字長效應(yīng)分析
劉 鑫1,王勝奎2,李廣良1,劉 彤1
(1.西安應(yīng)用光學(xué)研究所 陜西 西安 710065;2.西安導(dǎo)航技術(shù)研究所 陜西 西安 710068)
為了實(shí)現(xiàn)音頻基帶數(shù)字信號的提取與雜波信號剔除,提供了一個從MATLAB仿真到FPGA實(shí)現(xiàn)的IIR數(shù)字濾波器的解決方案,同時對比了由于量化字長的不同對數(shù)字濾波器產(chǎn)生的影響。通過MATLAB的FDA Tool產(chǎn)生所需的濾波器構(gòu)型和SOS系數(shù),由MATLAB量化濾波器系數(shù),將量化后的濾波器系數(shù)裝載至FPGA板級實(shí)現(xiàn)。在Chipscope中觀察實(shí)際濾波輸出波形,比較濾波器系數(shù)量化對濾波效果造成的影響,實(shí)驗(yàn)證明,采用級聯(lián)型結(jié)構(gòu)和較長的量化字長,濾波器輸出較為穩(wěn)定。
IIR數(shù)字濾波器;FPGA;MATLAB仿真;量化字長
數(shù)字濾波器(Digital Filter,DF)一詞最早出現(xiàn)在20世紀(jì)60年代,其定義為通過對數(shù)字信號的運(yùn)算處理,改變信號的頻譜,完成濾波作用的算法和裝置。通俗而言,數(shù)字濾波器就是要在形形色色的信號中,抑制無用信號,提取出所需要的信號。數(shù)字濾波器與模擬濾波器相比有體積小、重量輕、精度高、穩(wěn)定度好、靈活、不要求阻抗匹配等優(yōu)點(diǎn),因此在現(xiàn)代電子設(shè)計(jì)中被廣泛使用。
現(xiàn)場可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA),是可編程器件的一個重要分支,其具有良好的并行運(yùn)算能力、優(yōu)越的可重配置性和可擴(kuò)展性。當(dāng)下,F(xiàn)PGA已經(jīng)成為電子通信產(chǎn)品中不可或缺的組成部分,尤其在數(shù)字濾波器設(shè)計(jì)、信號的調(diào)制解調(diào)等數(shù)字信號處理領(lǐng)域得到了廣泛的應(yīng)用。
本文的主要設(shè)計(jì)流程為:任意信號發(fā)生器產(chǎn)生sin(2πf1t)+sin(2πf2t)的混頻信號,其中 f1=200 kHz,f2=600 kHz;信號由射頻電纜傳輸至電路板的AD進(jìn)行采樣,采樣后的信號進(jìn)入FPGA進(jìn)行數(shù)字濾波。數(shù)字濾波器的模型由Matlab的FDA Tool產(chǎn)生,并生成SOS系數(shù)和G增益,Matlab對生成的系數(shù)進(jìn)行運(yùn)算字長的量化,量化后的濾波器系數(shù)運(yùn)用到FPGA程序中運(yùn)算,觀察輸入信號和輸出信號,并比較系數(shù)量化字長的不同對輸出的影響。
常用的數(shù)字濾波器類型有無限長脈沖響應(yīng)(IIR)濾波器和有限長脈沖響應(yīng)(FIR)濾波器兩種。其中IIR濾波器的傳遞為封閉函數(shù)的形式,結(jié)構(gòu)上帶有反饋環(huán)路,幅頻特性精度很高,不是線性相位的,可以應(yīng)用于對相位信息不敏感的音頻信號上;FIR濾波器幅頻特性精度較之于IIR濾波器低,但是線性相位,就是不同頻率分量的信號經(jīng)過FIR濾波器后時間差不變[1]。本文的輸入信號為數(shù)字音頻基帶信號,對信號的相位要求不高,旨在實(shí)現(xiàn)音頻信號的提取與雜波的剔除,故選取IIR濾波器作為研究對象。
IIR濾波器即無限脈沖響應(yīng)濾波器,其單位脈沖響應(yīng)是無限長的,其系統(tǒng)傳遞函數(shù)為:
系統(tǒng)的差分方程可以寫成:
本文設(shè)計(jì)為一個4階濾波器,其濾波器函數(shù)可以寫作:
式中,y(n)表示當(dāng)前時刻輸出,y(n-i)表示前 i時刻的輸出,x(n)表示當(dāng)前時刻輸入,x(n-i)表示前 i時刻的輸入,i=1、2、3、4。
上式也即是IIR濾波器在FPGA中的設(shè)計(jì)語言表達(dá)式。
使用Matlab信號處理工具箱專用的濾波器設(shè)計(jì)分析工具 FDA Tool(Filter Design&Analysis Tool)。 FDA Tool可以設(shè)計(jì)包括FIR和IIR在內(nèi)的的幾乎所有的常規(guī)濾波器,它操作簡單、使用靈活[2]。
本文設(shè)計(jì)的4階IIR濾波器的設(shè)計(jì)指標(biāo)如下:
1)采樣頻率 fs為 12.5 MHz;
2)濾波器類型為帶通(bandPass);
3)濾波器下通帶截止頻率fc1為140 kHz、濾波器上通帶截止頻率fc2為260 kHz;
3)濾波器設(shè)計(jì)類型為Butterworth。
由FDA Tool生成的4階IIR Butterworth型帶通濾波器模型,其幅頻和相頻響應(yīng)曲線如圖1所示。
圖1 FDA Tool生成IIR濾波器的模型圖Fig.1 A model of IIR filter designed by FDA Tool
選擇 FDA Tool的“File”菜單中的“Generate M-file”,生成濾波器函數(shù)bpf.m。bpf.m文件的內(nèi)容如下:
其中函數(shù)bpf為FDA Tool生成的.m文件。由此得出原始信號的Matlab仿真波形和信號經(jīng)過IIR濾波器后的Matlab仿真波形分別如圖2和圖3所示。
圖 2 sin(2πf1t)+sin(2πf2t)的 Matlab 仿真波形圖Fig.2 Matlab simulation waveform of sin(2πf1t)+sin(2πf2t)
選擇 FDA Tool的“File”菜單中的“Export…”,導(dǎo)出 IIR 濾波器系數(shù)。對于級聯(lián)型IIR濾波器,導(dǎo)出的濾波器系數(shù)分成兩個部分:SOS矩陣和G增益,其中對于多個級聯(lián)的IIR濾波器,SOS矩陣為一個二維矩陣。
生成的SOS系數(shù)和G增益為:
圖3 濾波輸出信號的Matlab仿真波形圖Fig.3 Matlab simulation waveform of the filter output waveform
圖4 生成濾波器的SOS系數(shù)和G增益Fig.4 SOS coefficient and G gain of the filter
由此可見在Matlab下生成的濾波器系數(shù)均為全精度浮點(diǎn)型小數(shù),而最終濾波器是在數(shù)字器件FPGA中被執(zhí)行。因此,需要將Matlab仿真的系數(shù)轉(zhuǎn)換成能夠用于FPGA實(shí)現(xiàn)的形式,具體做法為:將Matlab中的浮點(diǎn)系數(shù)均乘以2N,其中N為正整數(shù),表示濾波器系數(shù)的量化字長。N的大小關(guān)系到數(shù)字濾波器設(shè)計(jì)效果,N越大效果越好,但同時N太大會導(dǎo)致FPGA硬件資源的增加,兼顧兩方面選擇合適的N。
IIR數(shù)字濾波器在實(shí)現(xiàn)時一般采用級聯(lián)方式,因?yàn)榧壜?lián)型結(jié)構(gòu)與直接型結(jié)構(gòu)相比,每一個級聯(lián)部分中的反饋網(wǎng)絡(luò)很少,易于控制有限字長效應(yīng)帶來的影響。此外,級聯(lián)型結(jié)構(gòu)具有運(yùn)算速度快、占用資源少的優(yōu)勢[3]。文中的4階IIR濾波器為兩個2階濾波器級聯(lián)構(gòu)成,故濾波器系數(shù)分為2部分。
量化級聯(lián)型濾波器系數(shù)的工作由Matlab完成,其量化過程為:
其中,b為分子系數(shù)向量,a為分母系數(shù)向量。
分別選取N=24和38。當(dāng)N取24時,級聯(lián)型濾波器量化后的系數(shù)向量為:
當(dāng)N取38時,級聯(lián)型濾波器量化后的系數(shù)向量為:
文中輸入信號的數(shù)學(xué)表達(dá)式為:y(t)=sin(2πf1t)+sin(2πf2t),其中 f1=200 kHz,f2=600 kHz。 信號由安捷倫公司的任意信號發(fā)生器N8241A產(chǎn)生(信號的產(chǎn)生依賴于Matlab的信號模擬,此處不做贅述)。
圖5 輸入信號的時域波形圖Fig.5 Time-domain waveform of the input signal
通過頻譜分析儀觀察輸入信號的頻譜如圖6所示。
圖6 輸入信號的頻域波形圖Fig.6 Frequency-domain waveform of the input signal
在FPGA內(nèi)部濾波器是一個數(shù)學(xué)運(yùn)算的過程。
當(dāng)量化字長 N=24 時,將式(4)代入式(3),由 Chipscope觀察到的數(shù)字濾波器的輸出波形見圖7。
圖7 N=24時濾波器的輸出波形Fig.7 The filter output waveform as N=24
當(dāng)量化字長 N=38 時,將式(5)代入式(3),由 Chipscope觀察到的數(shù)字濾波器的輸出波形見圖8。
圖8 N=38時濾波器的輸出波形Fig.8 The filter output waveform as N=38
比較量化字長不同時濾波器的輸出波形,可見,當(dāng)字長較小時,濾波器的性能受到很大影響,波形出現(xiàn)較大失真;當(dāng)字長增加時,濾波器的輸出波形明顯平滑,波形的畸變也較小。
對設(shè)計(jì)出的無限精度濾波器的系統(tǒng)函數(shù)系數(shù)進(jìn)行量化,將導(dǎo)致實(shí)際系數(shù)與設(shè)計(jì)系數(shù)值之間出現(xiàn)誤差,進(jìn)而造成濾波器的零極點(diǎn)位置發(fā)生偏離,頻率響應(yīng)發(fā)生變化,從而影響濾波器的性能,甚至嚴(yán)重到使單位圓內(nèi)的極點(diǎn)位置偏移到單位圓外,造成濾波器不穩(wěn)定。系數(shù)量化對濾波器的影響除了和字長有關(guān)外,還同時和濾波器的結(jié)構(gòu)有著密切的關(guān)系。級聯(lián)型結(jié)構(gòu)由于每一對共軛極點(diǎn)單獨(dú)用一個二階子系統(tǒng)實(shí)現(xiàn),每對極點(diǎn)只受與之有關(guān)的兩個系數(shù)的影響,因此極點(diǎn)位置受系數(shù)量化的影響比直接型結(jié)構(gòu)要小的多[4]。
本文所實(shí)現(xiàn)的數(shù)字濾波器設(shè)計(jì)和更改相對靈活,可以對個別濾波器系數(shù)和反饋系數(shù)做調(diào)整,數(shù)字濾波器輸出的信號平滑完整,能滿足設(shè)計(jì)指標(biāo)的要求。同時濾波器構(gòu)型由于其量化字長的不同,產(chǎn)生不同的濾波效果,量化字長較長時濾波器輸出穩(wěn)定,但是不同的設(shè)計(jì)、不同的信號對濾波器有著不同的要求,所以不能一概而論說量化字長越長濾波器效果越好。IIR濾波器是存在反饋環(huán)節(jié)的閉環(huán)系統(tǒng),且中間過程存在除法運(yùn)算,因此要實(shí)現(xiàn)IIR數(shù)字濾波器的全精度運(yùn)算,運(yùn)算過程中寄存器所需的運(yùn)算字長將十分長[5-6]。本文僅對不同量化字長的數(shù)字濾波器進(jìn)行板級比較,在設(shè)計(jì)中可能要對不同結(jié)構(gòu)所對應(yīng)的IIR數(shù)字濾波器運(yùn)算字長進(jìn)行仿真確定,文中對此不做研究。
[1]Oppenheim A V.離散時間信號處理[M].2版.北京:清華大學(xué)出版社,2002:284-290.
[2]耶曉東.基于Matlab的IIR數(shù)字濾波器設(shè)計(jì)及DSP實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,9(19):175-177.
YE Xiao-dong.Design of IIR digital filter based on Matlab and implementation of DSP[J].Electronic Design Engineering,2011,9(19):175-177.
[3]趙娜,黃志利,徐寶連,等.數(shù)字濾波器不同實(shí)現(xiàn)結(jié)構(gòu)下的有限字長效應(yīng)分析[J].彈艦與制導(dǎo)學(xué)報(bào),2008,6(28):246-249.
ZHAO Na,HUANG Zhi-li,XU Bao-lian,et al.Analysis of finite wordlength effect of fixed-point digital filter under different structure[J].Journal of Projectiles, Rockets, Missiles and Guidance,2008,6(28):246-249.
[4]姜乃卓,都思丹.IIR數(shù)字濾波器的系數(shù)量化效應(yīng)分析[J].電子測量技術(shù),2010,12(33):8-11.
JIANG Nai-zhuo,DU Si-dan.Analysis of IIR digital filter’s coefficient quantization effect[J].Electronic Measurement Technology,2010,12(33):8-11.
[5]Cooley J W,Tukey J W.An algorithm for the machine calculation of complex series[J].Math Comput,1965,19:297-301.
[6]Brenner N,Rader C.A new principle for fast fourier transformation[J].IEEE Acoustics Speech&Signal Processing,1976(24):264-266.
Implementation of IIR digital filter based on FPGA and the analysis of quantized word length effects
LIU Xin1, WANG Sheng-kui2, LI Guang-liang1, LIU Tong1
(1.Xi’an Institute of Applied Optics, Xi’an 710065, China;2.Xi’an Research Institute of Navigation Technology, Xi’an 710068, China)
In order to realize the extraction of the audio baseband digital signal and the clutter signal elimination,a solution of digital filter from MATLAB simulation to FPGA implementation is provided,while the effects of different quantized word length on the digital filter are compared in this paper.The desired filter configuration and SOS coefficients are produced via the MATLAB FDA Tool,and the digital filter coefficients are quantified by MATLAB computing.Quantized filter coefficients are loaded to the FPGA for board-level implementation.By observing the actual filter output waveform in Chipscope,the effects of the filter coefficient quantization on the filtering effect are compared.The experiment proved that the cascade structure and longer quantitative word length,bring relatively stable filter output.
IIR digital filter; FPGA; MATLAB simulation; quantized word length effect
TN713.7
A
1674-6236(2014)15-0023-04
2014-04-08 稿件編號:201404068
陜西省科技統(tǒng)籌創(chuàng)新工程計(jì)劃項(xiàng)目(2012TKCQ01-29)
劉 鑫(1982—),女,吉林扶余人,碩士,工程師。研究方向:光、電、信息技術(shù)。