基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)_第1頁(yè)
基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)_第2頁(yè)
基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)_第3頁(yè)
基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)_第4頁(yè)
基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于FPGA流水線分布式算法的FIR濾波器的實(shí)現(xiàn)摘要:提出了一種采用現(xiàn)場(chǎng)可編碼門陣列器件(FPGA)并利用窗函數(shù)法實(shí)現(xiàn)線性FIR數(shù)字濾波器的設(shè)計(jì)方案,并以一個(gè)十六階低通FIR數(shù)字濾波器電路的實(shí)現(xiàn)為例說(shuō)明了利用Xilinx公司的Virtex-E系列芯片的設(shè)計(jì)過(guò)程。對(duì)于在FPGA中實(shí)現(xiàn)FIR濾波器的關(guān)鍵乘加運(yùn)算,給出了將乘加運(yùn)算轉(zhuǎn)化為查找表的分布式算法。設(shè)計(jì)的電路通過(guò)軟件進(jìn)行了驗(yàn)證并進(jìn)行了硬件仿真,結(jié)果表明:電路工作正確可靠,能滿足設(shè)計(jì)要求。關(guān)鍵詞:FIR濾波器FPGA窗函數(shù)分布式摘要: 提出了一種采用現(xiàn)場(chǎng)可編碼門陣列器件(FPGA)并利用窗函數(shù)法實(shí)現(xiàn)線性FIR數(shù)字濾波器的設(shè)計(jì)方案,并以一個(gè)十六階

2、低通FIR數(shù)字濾波器電路的實(shí)現(xiàn)為例說(shuō)明了利用Xilinx公司的Virtex-E系列芯片的設(shè)計(jì)過(guò)程。對(duì)于在FPGA中實(shí)現(xiàn)FIR濾波器的關(guān)鍵乘加運(yùn)算,給出了將乘加運(yùn)算轉(zhuǎn)化為查找表的分布式算法。設(shè)計(jì)的電路通過(guò)軟件進(jìn)行了驗(yàn)證并進(jìn)行了硬件仿真,結(jié)果表明:電路工作正確可靠,能滿足設(shè)計(jì)要求。關(guān)鍵詞: FIR濾波器 FPGA 窗函數(shù) 分布式算法 流水線隨著數(shù)字技術(shù)日益廣泛的應(yīng)用,以現(xiàn)場(chǎng)可編程門陣列(FPGA)為代表的ASIC器件得到了迅速普及和發(fā)展,器件集成度和速度都在高速長(zhǎng)。FPGA既具有門陣列的高邏輯密度和高可靠性,又具有可編碼邏輯器件的用戶可編程特性,可以減少系統(tǒng)設(shè)計(jì)和維護(hù)的風(fēng)險(xiǎn),降低產(chǎn)品成本,縮短設(shè)計(jì)

3、周期。分布式算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)算法實(shí)現(xiàn)乘加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序不同。簡(jiǎn)單地說(shuō),分布式算法在完成乘加功能時(shí)是通過(guò)將各輸入數(shù)據(jù)每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)相加形成相應(yīng)部分積,然后在對(duì)各部門積進(jìn)行累加形成最終結(jié)果,而傳統(tǒng)算法是等到所有乘積產(chǎn)生之后再進(jìn)行相加來(lái)完成乘加運(yùn)算的。與傳統(tǒng)算法相比,分布式算法可極大地減少硬件電路規(guī)模,很容易實(shí)現(xiàn)流水線處理,提高電路的執(zhí)行速度。FPGA有著規(guī)整的內(nèi)部邏輯塊陣列和豐富的連線資源,特別適合細(xì)粒度和高并行度結(jié)構(gòu)特點(diǎn)的數(shù)字信號(hào)處理任務(wù),如FIR、FFT等。本文詳細(xì)討論利用FPGA實(shí)現(xiàn)FIR濾波器的設(shè)計(jì)過(guò)程,并且對(duì)設(shè)計(jì)中的

4、關(guān)鍵技術(shù)分布式算法進(jìn)行詳細(xì)描述。1 FIR和分布式算法1.1 FIR的基本概念FIR濾波器的數(shù)學(xué)表達(dá)式為:式中,N是FIR濾波器的抽頭數(shù),x(n)表示第n時(shí)刻的輸入樣本;h(i)是FIR濾波器的第i級(jí)抽頭系數(shù)。普通的直接型FIR濾波器結(jié)構(gòu)如圖1所示。FIR濾波器實(shí)質(zhì)上是一個(gè)分節(jié)的延遲線,把每一節(jié)的輸出加權(quán)累加,便得到濾波器的輸出。對(duì)于FIR濾波器,幅度上只需滿足以下兩個(gè)條件之一,就能構(gòu)成線性相位FIR濾波器。h(n)=h(N-1-n) (2)h(n)=-h(N-1-n) (3)式(2)稱為第一類線性相位的幅度條件(偶對(duì)稱),式(3)稱為第二類線性相位的幅度條件(奇對(duì)稱)。1.2 FIR濾波器的

5、優(yōu)化在實(shí)際應(yīng)用中,為了減少邏輯資源的占有量和提高系統(tǒng)的運(yùn)行速度,對(duì)FIR濾波器需要進(jìn)行優(yōu)化處理。本文采用的優(yōu)化主要有兩種:一種是對(duì)表達(dá)式進(jìn)行優(yōu)化,另一種是在FPGA實(shí)現(xiàn)中利用特有的查找表進(jìn)行優(yōu)化。對(duì)于線性相位因果FIR濾波器,它的系列具有中心對(duì)稱特性,即h(i)=h(N-1-i)。令s(i)=x(i) x(N-1-i),對(duì)于偶對(duì)稱,代入式(1)可得:根據(jù)方程(4),線性相位FIR濾波器的直接型結(jié)構(gòu)可以改為如圖2所示的結(jié)構(gòu),從而使N次乘法減少為N/2次,加法次數(shù)增加了N/2次(N為偶數(shù)),總的運(yùn)算量減少。由于實(shí)現(xiàn)的是固定系數(shù)的FIR濾波器,所以可以用利用簡(jiǎn)化的過(guò)程(如查找表)減少設(shè)計(jì)所耗用的器件

6、資源。以一個(gè)8階FIR濾波器為例來(lái)說(shuō)明在FPGA實(shí)現(xiàn)中優(yōu)化的過(guò)程。假定濾波器的輸入為2bit的正整數(shù),由(4)可以得到輸出為:y(n)=s(0)h(0)+s(1)h(1)+s(2)h(2)+s(3)h(3) (5)這時(shí)的乘法和加法就可以并行地采用查找表實(shí)現(xiàn),其結(jié)構(gòu)示意圖如圖3所示。在圖3中,右面4個(gè)信號(hào)是輸入的低位bit,左邊是輸入信號(hào)的高位bit。低位和P1最多使用4bit,由于系數(shù)固定,查找表實(shí)現(xiàn)起來(lái)很方便;高位和P2可按同樣方法計(jì)算。在該結(jié)構(gòu)中,部門積P1和P2可以利用Virtex-E的4輸入查找表實(shí)現(xiàn),所有的計(jì)算都可并行完成。由于輸入為2bit,因此只用了一個(gè)加法器;對(duì)于更多位數(shù)的輸入

7、來(lái)說(shuō),將需要更多的加法器。這樣就實(shí)現(xiàn)了將乘法器轉(zhuǎn)化為回法器,減少了解邏輯資源,優(yōu)化了設(shè)計(jì)。1.3 分布式算法分布式算法在20多年前被首次提出,但直到Xilinx發(fā)明FPGA的查找表結(jié)構(gòu)以后,分布式算法才在20世紀(jì)90年代初重新受到重視,并被有效地應(yīng)用在FIR濾波器的設(shè)計(jì)中。下面介紹分布式算法的原理。式(1)可以用下式表示:式中,hi即h(i),xi(n)即x(n-i),N為濾波器的抽頭數(shù)。把數(shù)據(jù)源數(shù)據(jù)格式規(guī)定為2的補(bǔ)碼形式,則:式中,xib(n)為二進(jìn)制數(shù),取值為0或1;xio(n)為符號(hào)位,為1表示數(shù)據(jù)為負(fù),為0表示數(shù)據(jù)為正。將(7)式代入(6)式可得:由此可以看出,方括號(hào)是輸入變量的一個(gè)數(shù)

8、據(jù)位和所有濾波器抽頭系數(shù)h0hi的每一位進(jìn)行“與”運(yùn)算并求和。而指數(shù)部分則說(shuō)明了求和結(jié)果的位權(quán),整數(shù)乘以2b就是左移b位,對(duì)此可以通過(guò)硬件連線實(shí)現(xiàn),不占用邏輯資源。這樣就可以通過(guò)建立查找表來(lái)實(shí)現(xiàn)方括號(hào)中的運(yùn)算,查找表可用所有輸入變量的一同一位進(jìn)行尋址。2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)下面以一個(gè)16階的線性相位FIR低通濾波器為例說(shuō)明設(shè)計(jì)的過(guò)程。2.1 設(shè)計(jì)指標(biāo)及參數(shù)提取采樣頻率:50MHz 歸一化截止頻率:0.4MHz類型:低通 輸入數(shù)據(jù)寬度:8位階數(shù):16階 輸出數(shù)據(jù)寬度:16位采用漢字窗函數(shù)(Hanning)設(shè)計(jì)16階線性相位FIR數(shù)字濾波器,并提取其特性參數(shù)。這里需要注意的是:下載到FPGA的程序是按

9、照FIR濾波器的差分方程式編寫的。由于從MATLAB17位,相當(dāng)于乘上65536)。用漢字窗(Hanning)進(jìn)行設(shè)計(jì),此16階FIR數(shù)字低通濾波器特性參數(shù)經(jīng)過(guò)換算如下:h0=h15=0000 h1=h14=0065 h2=h13=018Fh3=h12=035A h4=h11=0579 h5=h10=078Eh6=h9=0935 h7=h8=0A1F2.2 系統(tǒng)具體實(shí)現(xiàn)步驟我們知道,如果濾波器抽頭數(shù)N過(guò)多,用單個(gè)查找表就不能執(zhí)行全字(因?yàn)椴檎冶砦粚?濾波器抽頭數(shù)的數(shù)量)。在這種情況下,可以將表的地址輸入位數(shù)(即濾波器抽頭數(shù)N)進(jìn)行降低,既利用部分表并將結(jié)果相加。如果加上流水線寄存器,這一改進(jìn)并

10、沒(méi)有降低速度,但是卻可以極大地減少設(shè)計(jì)規(guī)模,因?yàn)椴檎冶淼囊?guī)模是隨著地址空間,也就是濾波器抽頭數(shù)N的增加而呈指數(shù)增加,根據(jù)卷積和 定義16階內(nèi)積。濾波器抽頭數(shù)是16個(gè),考慮到線性FIR濾波器的偶對(duì)稱特性,只考慮8個(gè)獨(dú)立濾波器抽頭數(shù),則需要一個(gè)2 88的表(其中指數(shù)8指的是8個(gè)濾波器抽頭數(shù),后面的8指的是輸入數(shù)據(jù)的位寬)。但是Virtex-e FPGA只能提供4輸入的查找表,所以要對(duì)查找表的地址進(jìn)行電路分割。將8位地址線分為高4位和低4位,分別作為兩個(gè)2 48的查找表的地址輸入,從而指數(shù)倍地節(jié)省了硬件資源。假定輸入數(shù)據(jù)xn的值x0=1 10=00000001 2c,x1=-1 10=1111111

11、1 2c,x2=3 10=00000011 2c,x3=2 10=00000010 2c。(注:2c代表用二進(jìn)制補(bǔ)碼表示,最高位為符號(hào)位。)數(shù)據(jù)校驗(yàn)結(jié)果:h0x0+h1x1+h2x+h3x3=2812說(shuō)明利用分布式查表算法的計(jì)算結(jié)果與直接計(jì)算結(jié)果相同,算法正確無(wú)誤。查找表(2)的查表計(jì)算結(jié)果依此類推。只是需要注意:查找表(2)的數(shù)據(jù)輸入x是8位數(shù)據(jù)x4、x5、x6、x7,而不是x3、x2、x1、x0。根據(jù)系數(shù)偶對(duì)稱性質(zhì)。x8、x9、x10、x11查查找表(2),x12、x13、x14、x15查查找表(1)。3 設(shè)計(jì)結(jié)果本系統(tǒng)的FPGA采用Xilinx公司的Virtex-E系列中的XCV100E FPGA,使用的軟件是Xilinx公司的ISE5.2i及Modelsim公司的Modelsim時(shí)序仿真工具,對(duì)FIR濾波器進(jìn)行描述編程使用的是VHDL語(yǔ)言。實(shí)現(xiàn)FIR濾波器的最上層的原理圖如圖4所示,輸入16個(gè)8位數(shù)據(jù)data_in=1,-1,3,2,2-1,1,-1,1,-1,3,2,2,-1,1,1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論