国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

可編程FIR 濾波器的FPGA 實(shí)現(xiàn)*

2012-12-22 05:59:04謝海霞孫志雄
電子器件 2012年2期
關(guān)鍵詞:低通濾波器乘法濾波器

謝海霞,孫志雄

(瓊州學(xué)院電子信息工程學(xué)院,海南 三亞572022)

隨著信息技術(shù)、計(jì)算機(jī)和半導(dǎo)體集成電路的飛速發(fā)展,數(shù)字濾波器的理論與實(shí)現(xiàn)技術(shù)也獲得極大的發(fā)展,并已經(jīng)應(yīng)用及滲透到許多重要學(xué)科和技術(shù)領(lǐng)域中。根據(jù)單位沖激響應(yīng)函數(shù)的時(shí)域特性數(shù)字濾波器可分為IIR 濾波器和FIR 濾波器,其中FIR 濾波器是數(shù)字信號(hào)處理中常用部件,它的最大優(yōu)點(diǎn)在于設(shè)計(jì)任何幅頻特性時(shí),可以具有嚴(yán)格的線性相位,這一點(diǎn)對數(shù)字信號(hào)的實(shí)時(shí)處理非常關(guān)鍵,因而受到人們的青睞[1-5]。

FIR 濾波器的設(shè)計(jì)實(shí)現(xiàn)大致有兩種方法:一種是軟件實(shí)現(xiàn),使用高級(jí)語言如C/C++、MATLAB 等,在通用的計(jì)算機(jī)上實(shí)現(xiàn),這種方法多用于教學(xué)或算法仿真,不能實(shí)現(xiàn)實(shí)時(shí)性。另一種是硬件實(shí)現(xiàn),采用可編程邏輯器件(CPLD/FPGA)。FPGA 具有靈活的可編程邏輯,突破了并行處理與流水級(jí)數(shù)的限制,它所具有的查找表結(jié)構(gòu)非常適用于實(shí)現(xiàn)實(shí)時(shí)快速可靠的FIR 濾波器,在加上Verilog HDL 語言靈活的描述方法以及與硬件無關(guān)的特點(diǎn),使得使用Verilog HDL 語言基于FPGA 芯片實(shí)現(xiàn)FIR 濾波器成為研究方向[3]。本文對基于FPGA 的FIR 數(shù)字濾波器實(shí)現(xiàn)進(jìn)行了研究,并設(shè)計(jì)一個(gè)16 階的FIR 低通濾波器[6-10]。

1 FIR 濾波器的結(jié)構(gòu)

FIR 有限脈沖響應(yīng)濾波器是數(shù)字濾波器的一種,它的特點(diǎn)是單位脈沖響應(yīng)是一個(gè)有限長序列,其數(shù)學(xué)表達(dá)式為:

式中,N 表示FIR 濾波器的抽頭數(shù),y(n)表示第n 時(shí)刻的輸出樣本,h(k)表示FIR 濾波器的第k 級(jí)抽頭系數(shù),x(n-k)表示延時(shí)k 個(gè)抽頭的輸入信號(hào)。根據(jù)式(1)可得FIR 濾波器的直接型結(jié)構(gòu),如圖1 所示。

圖1 直接型FIR 濾波器的結(jié)構(gòu)示意圖

用加法器和乘法器不難實(shí)現(xiàn)這種結(jié)構(gòu)的FIR 濾波器,傳給每個(gè)乘法器的操作數(shù)就是一個(gè)FIR 系數(shù)。所需乘法次數(shù)是N,加法次數(shù)是N-1。但這種直接實(shí)現(xiàn)的FIR 濾波器不論速度上還是資源耗用上都不理想。在使用FIR 濾波器的實(shí)際系統(tǒng)中,常常都會(huì)利用了FIR 濾波器的線性相位的新特點(diǎn),因此根據(jù)線性相位FIR 濾波器的系數(shù)具有對稱性這一特點(diǎn),即h(n)=h(N-1-n)或h(n)= -h(huán)(N-1-n);因此,線性相位FIR 濾波器的直接型結(jié)構(gòu)可改進(jìn)為如圖2 所示。

圖2 線性相位FIR 濾波器的直接型結(jié)構(gòu)改進(jìn)圖(N 為偶數(shù))

在改進(jìn)的結(jié)構(gòu)中,N 次乘法減少為N/2 次,而加法次數(shù)增加了N/2 次,總的運(yùn)算量得以減少。以乘法次數(shù)表示,其總運(yùn)算量為N/2 次,這種直接型結(jié)構(gòu)簡單明了,系統(tǒng)調(diào)整方便[11-12]。

2 FIR 濾波器的抽頭系數(shù)的MATLAB設(shè)計(jì)

2.1 FIR 濾波器的設(shè)計(jì)指標(biāo)

本文設(shè)計(jì)的FIR 數(shù)字濾波器是低通濾波器,其設(shè)計(jì)指標(biāo)為:采樣頻率是5 MHz,截止頻率是1.5 MHz,輸入、輸出數(shù)據(jù)寬度是8 位,階數(shù)是15 階,通帶衰減Ap=4 dB。

2.2 參數(shù)提取

使用MATLAB6.5 軟件中Filter Design Toolbox工具箱中的FDATool,選擇低通濾波器,Kaiser 窗設(shè)計(jì)方法,F(xiàn)s=5 MHz,F(xiàn)c=1.5 MHz,階數(shù)為15 階,線性相位。圖3 是軟件仿真結(jié)果圖,如圖3 所示,實(shí)線條是濾波器的幅頻響應(yīng),頻率為1.5 MHz 處幅頻響應(yīng)衰減Ap=4.8 dB,虛線條是相頻響應(yīng),相頻特性是線性,仿真結(jié)果滿足設(shè)計(jì)指標(biāo)要求。最后導(dǎo)出所設(shè)計(jì)的濾波器抽頭系數(shù),對其四舍五入處理后,16個(gè)抽頭系數(shù)如下:

h[0]=h[15]=0.039 9;h[1]=h[14]=-0.014 5;h[2]=h[13]=-0.045 3;h[3]=h[12]=-0.056 0;h[4]=h[11]=0.027 0;h[5]=h[10]=-0.126 5;h[6]=h[9]=0.065 4;h[7]=h[8]=0.514 9。

圖3 FIR 數(shù)字低通濾波器頻域特性圖

3 抽頭系數(shù)的最佳SD 編碼

FIR 濾波器的抽頭系數(shù)多為小數(shù),且有符號(hào),因此抽頭系數(shù)的編碼是必須考慮的一個(gè)問題。常用的編碼方式有二進(jìn)制補(bǔ)碼、反碼、有符號(hào)數(shù)值表示法等。

本例中采用以下的編碼方式:將十進(jìn)制數(shù)用2n數(shù)相加、減的形式表示出來,這種編碼方法也被稱SD(Signed Digit Numbers)編碼,該編碼與傳統(tǒng)的二進(jìn)制編碼不同,它使用三個(gè)值來表示數(shù)字,即0、1、-1,其中-1 經(jīng)常寫為。例如:

2710=3210-410-12=1000SD(下標(biāo)表示進(jìn)制)

通??梢酝ㄟ^非零元素的數(shù)量來估計(jì)乘法的效率,比如乘法操作:A* x[n],其具體實(shí)現(xiàn)過程如下。

若A10=(ak-1ak-2…a0)2,則

可以明顯地看到,乘法的成本與A 中非零元素ak的數(shù)量有直接的關(guān)系。而普通二進(jìn)制編碼需要4 個(gè)加法器,用SD 編碼只需要3 個(gè)加法器。

SD 編碼通常不是唯一的,比如:

在上面的SD 編碼中,由于第1 種方式具有最少數(shù)量的1 和,因此它的乘法成本最低,因此應(yīng)該盡量減少編碼中1 和的數(shù)量,以將乘法器實(shí)現(xiàn)的成本降低到最低,通常將這種包含最少1 和數(shù)量的SD 編碼稱為最佳SD 編碼。

在濾波器系數(shù)的處理上,采用最佳SD 編碼方式,以減少對器件資源的在耗用。濾波器系數(shù)的SD編碼如下,每個(gè)抽頭系數(shù)均先左移7 位(乘以128)。

4 FIR 濾波器的FPGA 實(shí)現(xiàn)

FIR 濾波器采用對稱結(jié)構(gòu),每個(gè)抽頭的輸出分別乘以相應(yīng)加權(quán)的二進(jìn)制值,再將結(jié)果相加。同時(shí)利用濾波器系數(shù)的偶對稱特性,把輸入信號(hào)x(n)進(jìn)行以下等效:

這樣,16 階FIR 濾波器的輸出就可以用下面的算式得到:

在得到結(jié)果后,再將結(jié)果右移7 位,即得到正確的結(jié)果。根據(jù)以上設(shè)計(jì)思路,用Verilog HDL 語言設(shè)計(jì)。仿真結(jié)果如圖4 所示。

圖4 16 階FIR 濾波器的仿真結(jié)果

對QuartusⅡ仿真結(jié)果和MATLAB 計(jì)算的理論值進(jìn)行比較分析,它們之間的誤差如表1 所示。

表1 理論值與仿真結(jié)果

由上面仿真波形可以讀出結(jié)果。經(jīng)比較,仿真結(jié)果與輸出信號(hào)理論吻合,除了一個(gè)38%的誤差較大,其它的誤差都在可接受范圍內(nèi);且波形基本沒有毛刺,設(shè)計(jì)符合要求。(部分比較大的誤差出入是由于在設(shè)計(jì)中系數(shù)量化時(shí)引入的量化誤差,以及舍位時(shí)產(chǎn)生的舍位誤差,在數(shù)據(jù)比較小的時(shí)候。這種誤差較為明顯。)仿真結(jié)果正確后把生成的編程數(shù)據(jù)文件下載到FPGA 芯片中即可。

5 結(jié)束語

在實(shí)際使用的時(shí)候,大多數(shù)情況下,人們希望能夠根據(jù)應(yīng)用的不同場所改變?yōu)V波器的參數(shù)和性能,這就需要對濾波器的系數(shù)進(jìn)行在線配置。本文設(shè)計(jì)的可編程濾波器能滿足這一要求。可編程濾波器在數(shù)據(jù)處理上分為兩個(gè)過程:第1 步完成濾波器系數(shù)的配置,將系數(shù)配置到抽頭延遲線上;第2 步執(zhí)行乘積和的計(jì)算,對乘積進(jìn)行一位有符號(hào)擴(kuò)展,并加到前面的部分乘積上。本文所介紹的設(shè)計(jì)、驗(yàn)證的方法都是可行的,具有很高的應(yīng)用價(jià)值。

[1] Shousheng He,Mats Torkelson.FPGA Implementation of FIR Filters Using Pipelined Bit-Serial Canonical Signed Digit Multipliers[J].IEEE Custom Integrated Circuits Conference,1994(1-4 May):81-84.

[2] 劉在爽,盧瑩瑩.高階FIR 濾波器面向FPGA 的多種實(shí)現(xiàn)方法[J].中國有線電視,2008(2):164-168.

[3] 李瑩,路衛(wèi)軍,于敦山. 一種在FPGA 上實(shí)現(xiàn)FIR 數(shù)字濾波器的資源優(yōu)化算法[J]. 北京大學(xué)學(xué)報(bào):自然科學(xué)版,2009,45(2);222-226.

[4] 楊麗杰.基于FPGA 的FIR 濾波器設(shè)計(jì)方法的研究[J]. 東華大學(xué)學(xué)報(bào),2006,(6):93-97.

[5] 劉悅. FIR 數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息技術(shù),2009,(2):8-9.

[6] 江國強(qiáng). EDA 技術(shù)與應(yīng)用[M]. 北京:電子工業(yè)出版社,2006.1-15.[M].清華大學(xué)出版社,2010.

[7] 王金明,冷自強(qiáng). EDA 技術(shù)與Verilog 設(shè)計(jì)[M]. 北京:科學(xué)出版社,2008.

[8] 王道.CPLD/FPGA 可編程邏輯器件應(yīng)用與開發(fā)[M].北京:電子工業(yè)出版社,2004.

[9] 冷邦明. 基于FPGA 的數(shù)字信號(hào)處理算法研究與高效實(shí)現(xiàn)[D].哈爾濱工程大學(xué),2009.

[10] 朱霞,柴志雷,須文波. 基于FPGA 的數(shù)字濾波器乘法模塊改進(jìn)[J].計(jì)算機(jī)仿真,2009,26(1):335-338.

[11] 陳后金,薛健,胡健.數(shù)字信號(hào)處理[M].第2 版.北京:高等教育出版社,2008.

[12] 何賓.FPGA 數(shù)字信號(hào)處理實(shí)現(xiàn)原理及方法[M].北京:清華大學(xué)出版社,2010.

猜你喜歡
低通濾波器乘法濾波器
算乘法
我們一起來學(xué)習(xí)“乘法的初步認(rèn)識(shí)”
《整式的乘法與因式分解》鞏固練習(xí)
把加法變成乘法
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
IIR數(shù)字濾波器設(shè)計(jì)中頻率轉(zhuǎn)換探究
開關(guān)電源EMI濾波器的應(yīng)用方法探討
電子制作(2018年16期)2018-09-26 03:26:50
基于瞬時(shí)無功理論的諧波檢測中低通濾波器的改進(jìn)
基于Canny振蕩抑制準(zhǔn)則的改進(jìn)匹配濾波器
基于TMS320C6678的SAR方位向預(yù)濾波器的并行實(shí)現(xiàn)
鄂尔多斯市| 石屏县| 乐清市| 柳州市| 邳州市| 葵青区| 饶平县| 庆安县| 吉木萨尔县| 施甸县| 张家港市| 留坝县| 阿尔山市| 富平县| 双牌县| 团风县| 新竹县| 敖汉旗| 孙吴县| 河间市| 包头市| 大名县| 交城县| 星座| 巴彦淖尔市| 新巴尔虎左旗| 龙泉市| 绍兴县| 保亭| 贡觉县| 兴山县| 北辰区| 丰顺县| 南昌市| 兴宁市| 交口县| 阳东县| 荆州市| 呈贡县| 乐都县| 河北省|