《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 一種新的FIR濾波器系數(shù)量化方法
一種新的FIR濾波器系數(shù)量化方法
2019年電子技術(shù)應(yīng)用第4期
杜 勇
四川工商學(xué)院 電子信息工程學(xué)院,四川 成都611745
摘要: FIR濾波器系數(shù)的量化方法不僅影響到濾波器性能,還直接影響到整個(gè)電路系統(tǒng)的性能。分析了傳統(tǒng)濾波器系數(shù)量化方法對(duì)濾波器性能的影響,提出了基于濾波器增益的系數(shù)量化方法,給出了MATLAB及FPGA實(shí)現(xiàn)后的ModelSim仿真測試數(shù)據(jù),結(jié)果表明這種方法最多可將濾波輸出幅度提高近一倍,信噪比提高近6 dB。
關(guān)鍵詞: FPGA FIR濾波器 系數(shù)量化
中圖分類號(hào): TN911.7
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.182027
中文引用格式: 杜勇. 一種新的FIR濾波器系數(shù)量化方法[J].電子技術(shù)應(yīng)用,2019,45(4):52-54,59.
英文引用格式: Du Yongn. A new method of filter coefficient quantization[J]. Application of Electronic Technique,2019,45(4):52-54,59.
A new method of filter coefficient quantization
Du Yong
College of Electronics and Information Engineering,Sichuan Technology and Business University,Chengdu 611745,China
Abstract: The method of FIR filter coefficient quantization has influence not only on the filter performance, but also on the circuit system performance. Normal filter coefficient quantization method is analyzed, and a new method of filter coefficient quantization based on filter gain is proposed. A low pass filter based on the new quantization method is designed with MATLAB and implemented on FPGA. ModelSim simulation results show that the new method can improve the output signal′s amplitude and SNR effectively.
Key words : FPGA;FIR filter;coefficient quantization

0 引言

    相對(duì)于模擬濾波器,數(shù)字濾波器具有高精度、高可靠性、可編程改變?yōu)V波特性、便于集成等一系列優(yōu)點(diǎn),并且理論上可實(shí)現(xiàn)近似理想頻率特性的濾波性能。經(jīng)典的數(shù)字濾波器主要包括有限脈沖響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器和無限脈沖響應(yīng)(Infinite Impulse Response,IIR)濾波器。相對(duì)于IIR濾波器來說,當(dāng)FIR濾波器系數(shù)保持線性對(duì)稱結(jié)構(gòu)時(shí),能夠在滿足幅頻響應(yīng)要求的同時(shí)獲得嚴(yán)格的線性相位特性。在數(shù)據(jù)通信、語音信號(hào)處理、雷達(dá)信號(hào)處理等領(lǐng)域通常要求信號(hào)在傳輸過程中不能有明顯的相位失真,因此FIR濾波器獲得了更廣泛的應(yīng)用[1]。

    FPGA因其獨(dú)特的可編程結(jié)構(gòu)及強(qiáng)大的并行運(yùn)算能力,很適合于實(shí)現(xiàn)FIR濾波器設(shè)計(jì)?;贔PGA的FIR濾波器設(shè)計(jì)近年來一直是學(xué)者們研究的熱點(diǎn),主要集中在最優(yōu)濾波器設(shè)計(jì)方法、提高濾波器運(yùn)行速度、濾波器系數(shù)量化方法等方面[2-7]。常規(guī)的系數(shù)量化方法僅關(guān)注對(duì)濾波器本身幅頻特性的影響[8],較少考慮在濾波器輸出位寬確定的情況下,如何提高輸出幅度,進(jìn)而最大化輸出信噪比的問題。在研究分析傳統(tǒng)濾波器系數(shù)量化方法的基礎(chǔ)上,提出了基于濾波器增益的系數(shù)量化方法,給出了MATLAB及FPGA實(shí)現(xiàn)后的ModelSim仿真測試數(shù)據(jù),結(jié)果表明這種方法最多可將濾波輸出幅度提高近一倍,信噪比提高近6 dB。

1 FIR濾波器原理及結(jié)構(gòu)

    FIR濾波器,是指單位脈沖響應(yīng)長度有限的濾波器。FIR濾波器的突出特點(diǎn)是其單位取樣響應(yīng)h(n)是一個(gè)N點(diǎn)長的有限長序列,0≤n≤N-1。濾波器的輸出y(n)可表示為輸入序列x(n)與單位取樣響應(yīng)h(n)的線性卷積。

wdz4-gs1-2.gif

    從系統(tǒng)函數(shù)很容易看出,F(xiàn)IR濾波器只在原點(diǎn)上存在極點(diǎn),這使得FIR濾波器具有全局穩(wěn)定性。FIR濾波器是由一個(gè)抽頭延遲線加法器和乘法器的集合構(gòu)成的,每一個(gè)乘法器的操作系數(shù)就是一個(gè)FIR系數(shù)。因此,F(xiàn)IR的這種結(jié)構(gòu)也被人們稱為抽頭延遲線結(jié)構(gòu)。圖1是FIR濾波器FPGA實(shí)現(xiàn)的典型結(jié)構(gòu)圖。

wdz4-t1.gif

2 系數(shù)量化對(duì)FIR濾波器性能的影響

2.1 FIR濾波器的MATLAB設(shè)計(jì)方法

    在采用FPGA編程實(shí)現(xiàn)FIR濾波器之前,通常采用MATLAB軟件設(shè)計(jì)濾波器系數(shù)。MATLAB提供了豐富的FIR濾波器函數(shù),分別對(duì)應(yīng)不同的設(shè)計(jì)方法,如窗函數(shù)法、頻率取樣法、基于“最大誤差最小”的最優(yōu)設(shè)計(jì)法等。為便于對(duì)比,采用最優(yōu)設(shè)計(jì)方法設(shè)計(jì)FIR低通濾波器(MATLAB設(shè)計(jì)函數(shù)為firpm),其參數(shù)為:采樣頻率32 MHz,過渡帶0.5 MHz~1.5 MHz。圖2為MATLAB設(shè)計(jì)出的濾波器幅頻響應(yīng)圖。

wdz4-t2.gif

    由圖2可知,F(xiàn)IR濾波器的長度N越大,濾波器過渡帶越接近設(shè)計(jì)參數(shù),通帶及阻帶濾波性能越好,當(dāng)N=41時(shí)阻帶衰減為26 dB,當(dāng)N=61時(shí)阻帶衰減為38.5 dB,當(dāng)N=81時(shí)阻帶衰減為48 dB;當(dāng)系數(shù)長度超過一定值后(本實(shí)例為61),濾波器過渡帶的改善余量已很小,但通帶及阻帶濾波性能會(huì)持續(xù)增加。不失一般性,下文以長度為61的低通濾波器為例進(jìn)行討論。

2.2 系數(shù)的量化方法及其對(duì)濾波性能的影響分析

    根據(jù)MATLAB的FIR濾波器設(shè)計(jì)原理,無論濾波器長度多長,濾波器通帶內(nèi)增益均為1(0 dB),濾波器系數(shù)為帶小數(shù)的浮點(diǎn)數(shù)。由于FPGA只能處理二進(jìn)制數(shù)據(jù),MATLAB設(shè)計(jì)出的濾波器系數(shù)需要轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)才能完成FPGA電路實(shí)現(xiàn)。

    濾波器系數(shù)是帶符號(hào)的數(shù)據(jù),F(xiàn)PGA實(shí)現(xiàn)時(shí)需要用二進(jìn)制補(bǔ)碼格式表示。設(shè)濾波器系數(shù)的量化位寬為Q,則系數(shù)C的表示范圍為-2Q-1≤C≤(2Q-1-1),又由于FIR濾波器系數(shù)的嚴(yán)格對(duì)稱特性,實(shí)際范圍為(1-2Q-1)≤C≤(2Q-1-1)。

    傳統(tǒng)的濾波器系數(shù)量化方法可分解為3個(gè)步驟:(1)找出濾波器系數(shù)中最大的絕對(duì)值數(shù)M;(2)以M為基準(zhǔn),對(duì)所有濾波系數(shù)進(jìn)行歸一化處理,即對(duì)所有系數(shù)除以M;(3)對(duì)所有濾波器系數(shù)乘以(2Q-1-1),并對(duì)處理后的系數(shù)取整形成整數(shù)系數(shù);(4)將整數(shù)濾波器系數(shù)轉(zhuǎn)換成二進(jìn)制補(bǔ)碼數(shù)據(jù)。圖3為不同量化位寬情況下的濾波器幅頻響應(yīng)圖。

wdz4-t3.gif

    由圖3(a)中的歸一化幅頻圖可知,濾波器系數(shù)量化位寬越小,量化后的濾波性能越差(當(dāng)量化位寬為6 bit時(shí),阻帶衰減相比量化前減小了約6 dB),反之量化位寬越大,量化前后的濾波性能相差越小。當(dāng)量化位寬超過一定值(本實(shí)例為12 bit)后,濾波性能幾乎不再變化。不失一般性,下文以長度為61、量化位寬為12 bit的低通濾波器為例進(jìn)行討論。

3 基于增益的FIR濾波器系數(shù)量化方法

3.1 一般量化方法對(duì)系統(tǒng)性能的影響

    根據(jù)前面討論的濾波器量化方法,系數(shù)量化過程相當(dāng)于濾波器增益擴(kuò)大了(2Q-1-1)/M倍。從圖3(b)中的未歸一化幅頻圖可知,量化位寬越大,濾波器通帶內(nèi)的增益越大。當(dāng)量化位寬為6 bit時(shí),通帶增益為54 dB,當(dāng)量化位寬為12 bit時(shí),增益為90 dB。

    FPGA設(shè)計(jì)FIR濾波器,一般采用定點(diǎn)二進(jìn)制數(shù)據(jù)進(jìn)行運(yùn)算。前面討論系數(shù)量化對(duì)系統(tǒng)性能的影響時(shí),實(shí)際有一個(gè)前提條件,即濾波運(yùn)算采用全精度運(yùn)算,濾波運(yùn)算的結(jié)果保留全部有效數(shù)據(jù)位。當(dāng)濾波器系數(shù)量化位寬為Q時(shí),由于濾波器增益擴(kuò)大了(2Q-1-1)/M倍(一般來說,M≤1),為保證全精度運(yùn)算,保留全部有效濾波輸出位寬,相對(duì)于濾波器輸入信號(hào)而言,位寬將增加Qa bit。其中

    wdz4-gs3.gif

    對(duì)于前面討論的長度N=61,量化位寬Q=12的低通濾波器而言,M=0.062 1,(2Q-1-1)/M=32 963,則濾波輸出位寬需增加Qa=16 bit。假設(shè)輸入數(shù)據(jù)位寬為10 bit,則濾波器全精度輸出位寬為26 bit。

wdz4-gs4.gif

3.2 基于增益的系數(shù)量化方法

    根據(jù)前面的討論,量化濾波器系數(shù)后,輸出有效位寬所能表示信號(hào)的信噪比下降,是由于濾波輸出信號(hào)達(dá)不到滿量程狀態(tài)。為此,優(yōu)化濾波器系數(shù)量化方法,采用基于濾波器增益的方法對(duì)系數(shù)進(jìn)行量化。結(jié)合前述的濾波器實(shí)例,具體步驟為:(1)對(duì)所有濾波器系數(shù)乘以wdz4-3.2-x1.gif=216=65 536,并對(duì)處理后的系數(shù)取整形成整數(shù)系數(shù);(2)將整數(shù)濾波器系數(shù)轉(zhuǎn)換成二進(jìn)制補(bǔ)碼數(shù)據(jù)。

    經(jīng)過改進(jìn)的量化處理后,相當(dāng)于對(duì)濾波增益直接增加了65 536倍(常規(guī)方法僅增加了32 963倍),濾波輸出的數(shù)據(jù)幅值能夠達(dá)到輸出數(shù)據(jù)有效位寬所能表示的滿量程值,實(shí)現(xiàn)了輸出位寬一定的條件下,輸出信號(hào)信噪比的最大化。經(jīng)過這樣的量化處理,系數(shù)的量化位寬為:

    wdz4-gs5.gif

    對(duì)于上文所討論的低通濾波器,量化位寬需要13 bit。圖4為常規(guī)量化方法和改進(jìn)量化方法的濾波器系數(shù)(沖激響應(yīng))圖,其中Qa=16。

wdz4-t4.gif

    從圖4可以看出,在濾波輸出位寬相同的條件下,改進(jìn)的量化方法所產(chǎn)生的濾波器系數(shù)(沖激響應(yīng))幅值大于常規(guī)方法,相當(dāng)于濾波器增益更大。同時(shí)也要注意到,改進(jìn)的量化方法所需的濾波器系數(shù)位寬由12 bit增加到13 bit。也就是說,增加濾波器增益,是以增加系數(shù)量化位寬為代價(jià)的。

4 FPGA實(shí)現(xiàn)后的測試結(jié)果分析

    接下來采用Xilinx的Spartan6系列FPGA器件XC6SLX25-FT256C為目標(biāo)平臺(tái),調(diào)用ISE14.7工具中的FIR濾波器核,實(shí)現(xiàn)前文所討論的低通濾波器(采樣頻率為32 MHz,過渡帶為0.5 MHz~1.5 MHz,濾波器長度N=61)。仿真工具為ModelSim10.1,輸入信號(hào)為2路單頻信號(hào)的疊加。兩路單頻信號(hào)頻率分別為0.22 MHz和2 MHz,功率比為1:1。輸入位寬為10 bit,濾波器輸出位寬為26(Qa=16)。圖5、圖6分別為常規(guī)量化方法和改進(jìn)量化方法的濾波器ModelSim仿真波形圖。

wdz4-t5.gif

wdz4-t6.gif

    從圖5、圖6中可以看出,兩種方法都能夠有效濾除帶外干擾信號(hào)(2 MHz單頻信號(hào)),改進(jìn)量化方法的濾波器輸出信號(hào)幅度值(16,641,407)明顯大于常規(guī)量化方法的幅度值(7,910,390),相當(dāng)于增加了濾波增益,增加了濾波輸出信號(hào)的信噪比。

5 結(jié)論

    本文詳細(xì)分析了濾波器系數(shù)量化方法對(duì)濾波性能的影響。在對(duì)常規(guī)系數(shù)量化方法的步驟、原理進(jìn)行分析的基礎(chǔ)上,針對(duì)濾波輸出數(shù)據(jù)幅值達(dá)不到有效位寬滿量程的現(xiàn)象,提出了基于濾波器增益的系數(shù)量化改進(jìn)方法。MATLAB仿真及FPGA實(shí)現(xiàn)后的ModelSim仿真均表明,在濾波輸出位寬相同的條件下,改進(jìn)的量化方法可以有效提高濾波器增益,進(jìn)而提高濾波輸出信號(hào)的信噪比。需要注意的是,增加濾波器增益是以增加系數(shù)量化位寬、增加FPGA實(shí)現(xiàn)后的邏輯資源為代價(jià)的。

參考文獻(xiàn)

[1] 高耀鴻.基于FPGA的FIR低通濾波器[D].長沙:湖南大學(xué),2012.

[2] 朱效效,蔡俊,陸偉.基于優(yōu)化DA算法濾波器的設(shè)計(jì)及其FPGA實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(2):59-60,64.

[3] 徐彥凱,雙凱.提高定點(diǎn)精度的FPGA信號(hào)處理算法[J].計(jì)算機(jī)工程與科學(xué),2012,34(9):197-200.

[4] 郭廣浩,劉志哲,孟慶龍,等.多級(jí)并行流水FIR數(shù)字濾波器的設(shè)計(jì)與驗(yàn)證[J].現(xiàn)代電子技術(shù),2015,38(1):69-72.

[5] 李凱勇.基于FPGA高效FIR濾波器設(shè)計(jì)[J].青海大學(xué)學(xué)報(bào),2017,35(6):56-60.

[6] 張娜,李春祎.多相并行FIR濾波器的FPGA高速實(shí)現(xiàn)方法[J].無線電通信技術(shù),2017,43(4):86-90.

[7] 周龍,王紅玲,崔新瑩,等.基于FPGA及分布式算法濾波器[J].電子設(shè)計(jì)工程,2017,25(23):139-142.

[8] 曹振吉,何敏.基于FPGA和Matlab的FIR數(shù)字濾波器[J].現(xiàn)代電子技術(shù),2015,38(19):98-101.



作者信息:

杜  勇

(四川工商學(xué)院 電子信息工程學(xué)院,四川 成都611745)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。