《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于優(yōu)化DA算法濾波器的設(shè)計(jì)及其FPGA實(shí)現(xiàn)
基于優(yōu)化DA算法濾波器的設(shè)計(jì)及其FPGA實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第2期
朱效效,蔡 俊,陸 偉
安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南232001
摘要: 由于傳統(tǒng)MAC方法在設(shè)計(jì)數(shù)字濾波器時(shí)頻繁使用乘法器,導(dǎo)致整個(gè)系統(tǒng)運(yùn)行速率下降,而一般DA算法在設(shè)計(jì)高階濾波器時(shí)存在查找表規(guī)模過(guò)大以至于難以實(shí)現(xiàn)的問(wèn)題。提出一種優(yōu)化的DA算法來(lái)克服這一缺陷,為此設(shè)計(jì)了一個(gè)18階的線(xiàn)性相位結(jié)構(gòu)的FIR低通濾波器,并用Verilog HDL語(yǔ)言在FPGA上實(shí)現(xiàn),在第三方仿真平臺(tái)Modelsim工具上仿真。仿真結(jié)果與MATLAB計(jì)算的理論值進(jìn)行對(duì)比,驗(yàn)證了此優(yōu)化算法的正確性。
中圖分類(lèi)號(hào): TN713
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)02-0059-02
Implementation of digital filter with optimal distributed arithmetic based on FPGA
Zhu Xiaoxiao,Cai Jun,Lu Wei
School of Electrical and Information Engineering,Anhui University of Science and Technology,Huainan 232001,China
Abstract: Due to traditional MAC method used multiplier frequently in design of the digital filter,which led to decrease the speed of the whole system,while the general DA algorithm in the design of high order filter existed the problem of that the scale of look-up table was too large to achieve.This papper proposes an optimized DA algorithm to overcome this defect,to verify the algorithm the thesis design a 18 order linear phase structure of FIR low pass filter. Finally,this algorithm is brought out that is used Verilog HDL in FPGA,and simulated in Modelsim tool. The simulation outcome is contrasted with that the MATLAB calculated theoretical values,which verifies the correctness of optimization algorithm.
Key words : MAC;optimization of DA algorithm;linear phase;FPGA

  

0 引言

  FIR濾波器具有嚴(yán)格的線(xiàn)性相頻特性,同時(shí)又可保證任意幅頻特性。而這個(gè)特點(diǎn)使FIR濾波器在數(shù)據(jù)傳輸、圖像處理和識(shí)別、語(yǔ)音處理和通信系統(tǒng)中具有廣泛的應(yīng)用。除此之外,F(xiàn)IR濾波器除0以外沒(méi)有其他的極點(diǎn),所以整個(gè)濾波系統(tǒng)是相對(duì)穩(wěn)定的,不存在不穩(wěn)定的問(wèn)題,這是FIR區(qū)別于IIR的本質(zhì)原因,而FIR在傳輸數(shù)據(jù)時(shí)存在色散。

  本文只討論FIR濾波器的設(shè)計(jì)方法?;贒A算法的濾波器有效解決了MAC結(jié)構(gòu)的不足,但是隨著濾波器的階數(shù)增加,查找表的規(guī)模呈指數(shù)增加,再設(shè)計(jì)高階濾波器時(shí)普通DA算法甚至難以實(shí)現(xiàn)。本文提出了一種優(yōu)化的DA算法來(lái)克服一般DA算法在設(shè)計(jì)高階濾波器時(shí)的缺陷,并用Verilog HDL語(yǔ)言在FPGA上實(shí)現(xiàn)[1]。

1 線(xiàn)性相位FIR濾波器的結(jié)構(gòu)

  如果FIR中的h(n)為實(shí)數(shù),并符合下列條件其中的一種:

  偶對(duì)稱(chēng):h(n)=h(N-1-n)

  奇對(duì)稱(chēng):h(n)=-h(N-1-n)

  稱(chēng)其具有線(xiàn)性相位結(jié)構(gòu)。

  當(dāng)N為奇數(shù)時(shí),其系統(tǒng)函數(shù)為[2]:

  1.png

  其直接型結(jié)構(gòu)如圖1所示。

001.jpg

  當(dāng)N為偶數(shù)時(shí),其系統(tǒng)函數(shù)為:

  2.png

  其直接型結(jié)構(gòu)如圖2所示。

002.jpg

2 分布式算法

  2.1 分布式算法基礎(chǔ)

  DA算法是基于查找表結(jié)構(gòu)的,其詳細(xì)公式解析如下[3]:

  SX{GIT%V6@AVXE~Q}8D(IRS.png

  重新分配求和的順序,其結(jié)果如下:

  y=c[0]( xB-1[0]2B-1+ xB-2[0]2B-2+…+ x0[0]20)

  +c[1]( xB-1[1]2B-1+ xB-2[1]2B-2+…+ x0[1]20)+…

  +c[N-1](xB-1[N-1]2B-1+xB-2[N-1]2B-2+…+x0[N-1]20)

  =(c[0] xB-1[0]+c[1] xB-1[1]+…+c[N-1]xB-1[N-1])2B-1

  +c[0] xB-2[0]+c[1] xB-2[1]+…+c[N-1]xB-2[N-1])2B-2

  +…+(c[0] x0[0]+c[1] x0[1]+…+c[N-1] x0[N-1])20

  (6)

  2.2 分布式算法的優(yōu)化

  假如N的數(shù)量增加,一個(gè)單一的LUT無(wú)法執(zhí)行全字,就能夠利用部分表并先將結(jié)果相加。其原理為:假定長(zhǎng)度為L(zhǎng)N的內(nèi)積)QHPKUPTM[O}9P~7[$45ZQM.png,那么可以用一個(gè)DA體系結(jié)構(gòu)實(shí)現(xiàn)它:

  7.png

  表的規(guī)模從一個(gè)24N B的LUT減少4個(gè)2N B表。優(yōu)化的DA算法的結(jié)構(gòu)圖如圖3所示。

003.jpg

3 基于FPGA的FIR低通濾波器的設(shè)計(jì)

  3.1 基于FPGA的FIR設(shè)計(jì)流程

  本文設(shè)計(jì)的FIR濾波器的流程如圖4所示,主要分為系數(shù)提取和FPGA完成[4]。

004.jpg

  3.2 FIR濾波器的MATLAB設(shè)計(jì)

  本文設(shè)計(jì)濾波器主要參數(shù)為阻帶最小衰減為30 dB,通帶波紋小于0.5 dB,截止頻率為0.4。為此設(shè)計(jì)了18階的FIR線(xiàn)性相位低通濾波器,采用窗函數(shù)中的凱澤窗來(lái)設(shè)計(jì)。根據(jù)凱澤窗參數(shù)?對(duì)濾波器的性能的影響,來(lái)滿(mǎn)足條件。由這些技術(shù)指標(biāo)可通過(guò)MATLAB提供的濾波器設(shè)計(jì)工具箱FDAtool來(lái)仿真設(shè)計(jì)濾波器,從而提取濾波器的系數(shù)[5]。

  由于提取出來(lái)的系數(shù)是浮點(diǎn)型,而FPGA只能處理定點(diǎn)型數(shù)據(jù),所以需要把提取出來(lái)的系數(shù)進(jìn)行量化,在該設(shè)計(jì)方案中將系數(shù)擴(kuò)大1 024倍,即210。再通過(guò)編碼轉(zhuǎn)化為二進(jìn)制形式。通過(guò)FDAtool工具提取出的數(shù)據(jù)及其量化結(jié)果如下:

  h(0)=h(17)=-0.014 361 548 558 709 025,

  h(1)=h(16)

  =0.000 000 000 000 000 007 952 163 344 493 980 7,

  h(2)=h(15)=0.028 618 979 697 780 135,

  h(3)=h(14)=0.024 250 698 402 580 449,

  h(4)=h(13)=-0.033 323 873 349 896 04,

  h(5)=h(12)= -0.075 849 033 020 568 446,

  h(6)=h(11)

  =0.000 000 000 000 000 014 598 689 803 221 391,

  h(7)=h(10)=0.197 209 967 107 277 67,

  h(8)=h(9)=0.373 454 809 721 535 27。

  其量化結(jié)果分別為:-15,0,29,25,-34,-78,0,202,

  382。十六進(jìn)制補(bǔ)碼分別為fff1,0000,001d,0019,ffde,ffb2,0000,00ca,017e。

  3.3 線(xiàn)性相位FIR濾波器的FPGA實(shí)現(xiàn)

  本文采用模塊化思想,由一個(gè)主時(shí)鐘控制各個(gè)子時(shí)鐘,全部模塊分別為并串轉(zhuǎn)換、延時(shí)與預(yù)求和、移位累加、查找表采用3個(gè)分割查表結(jié)構(gòu)和求部分和的模塊[6]。

  為了驗(yàn)證電路能否連續(xù)正確運(yùn)行,本文連續(xù)隨機(jī)輸入序列0、127、100、57、26、5、20、26、79、8、12、49、35、102、99、125、63、82在Modelsim工具上進(jìn)行仿真,其結(jié)果如圖5所示。

005.jpg

  仿真結(jié)果與MATLAB工具計(jì)算的理論值相比較,其Modelsim部分仿真結(jié)果如下:0、-2、-1、3、6、0、-11、-9、

  19、19、66。MATLAB理論計(jì)算結(jié)果對(duì)應(yīng)為:0、-1.823 9、-1.436 2、2.816 0、5.568 3、-0.247 6、-11.1261、-9.084 2、

  19.414 9、66.125 3。通過(guò)仿真與MATLAB計(jì)算理論結(jié)果進(jìn)行比較,理論值與仿真結(jié)果存在誤差但是誤差在允許的范圍內(nèi),誤差主要是因?yàn)榱炕瘯r(shí)產(chǎn)生的。

4 結(jié)束語(yǔ)

  本文提出的優(yōu)化DA算法本質(zhì)是提出對(duì)查找表的優(yōu)化,事實(shí)證明濾波器階數(shù)越高,此優(yōu)化算法的作用越明顯,而且可以節(jié)省內(nèi)部邏輯資源。最后通過(guò)硬件實(shí)現(xiàn),結(jié)果與理論值相比較,設(shè)計(jì)符合預(yù)期。

參考文獻(xiàn)

  [1] 程佩青.數(shù)字信號(hào)處理[M].北京:清華大學(xué)出版社,2001.

  [2] Meyer-Baese U(美).數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2011.

  [3] 杜勇.數(shù)字濾波器的MATLAB與FPGA實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2012.

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

  [5] 劉朋全.基于FPGA的FIR數(shù)字濾波器的設(shè)計(jì)和實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2006.

  [6] 夏宇聞.數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.


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