亚洲日本成本线在观看,最新国自产拍在线,免费性爱视频日本,久久精品国产亚洲精品国产精品

            現(xiàn)在位置:范文先生網>理工論文>電子通信論文>基于FPGA流水線分布式算法的FIR濾波器的實現(xiàn)

            基于FPGA流水線分布式算法的FIR濾波器的實現(xiàn)

            時間:2023-02-21 00:03:21 電子通信論文 我要投稿
            • 相關推薦

            基于FPGA流水線分布式算法的FIR濾波器的實現(xiàn)

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

                關鍵詞:FIR濾波器 FPGA 窗函數(shù) 分布式算法 流水線

            隨著數(shù)字技術日益廣泛的應用,以現(xiàn)場可編程門陣列(FPGA)為代表的ASIC器件得到了迅速普及和發(fā)展,器件集成度和速度都在高速長。FPGA既具有門陣列的高邏輯密度和高可靠性,又具有可編碼邏輯器件的用戶可編程特性,可以減少系統(tǒng)設計和維護的風險,降低產品成本,縮短設計周期。

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

            1 FIR和分布式算法

            1.1 FIR的基本概念

            FIR濾波器的數(shù)學表達式為:

             

            式中,N是FIR濾波器的抽頭數(shù),x(n)表示第n時刻的輸入樣本;h(i)是FIR濾波器的第i級抽頭系數(shù)。

            普通的直接型FIR濾波器結構如圖1所示。

            FIR濾波器實質上是一個分節(jié)的延遲線,把每一節(jié)的輸出加權累加,便得到濾波器的輸出。對于FIR濾波器,幅度上只需滿足以下兩個條件之一,就能構成線性相位FIR濾波器。

            h(n)=h(N-1-n) (2)

            h(n)=-h(N-1-n) (3)

            式(2)稱為第一類線性相位的幅度條件(偶對稱),式(3)稱為第二類線性相位的幅度條件(奇對稱)。

            1.2 FIR濾波器的優(yōu)化

            在實際應用中,為了減少邏輯資源的占有量和提高系統(tǒng)的運行速度,對FIR濾波器需要進行優(yōu)化處理。本文采用的優(yōu)化主要有兩種:一種是對表達式進行優(yōu)化,另一種是在FPGA實現(xiàn)中利用特有的查找表進行優(yōu)化。

            1.2.1 表達式的直接優(yōu)化

            對于線性相位因果FIR濾波器,它的系列具有中心對稱特性,即h(i)=±h(N-1-i)。令s(i)=x(i) ±x(N-1-i),對于偶對稱,代入式(1)可得:

            根據(jù)方程(4),線性相位FIR濾波器的直接型結構可以改為如圖2所示的結構,從而使N次乘法減少為[N/2]次,加法次數(shù)增加了[N/2]次(N為偶數(shù)),總的運算量減少。

            1.2.2 利用查找表進行設計優(yōu)化

            由于實現(xiàn)的是固定系數(shù)的FIR濾波器,所以可以用利用簡化的過程(如查找表)減少設計所耗用的器件資源。

            以一個8階FIR濾波器為例來說明在FPGA實現(xiàn)中優(yōu)化的過程。假定濾波器的輸入為2bit的正整數(shù),由(4)可以得到輸出為:

            y(n)=s(0)h(0)+s(1)h(1)+s(2)h(2)+s(3)h(3)  (5)

            這時的乘法和加法就可以并行地采用查找表實現(xiàn),其結構示意圖如圖3所示。

                在圖3中,右面4個信號是輸入的低位bit,左邊是輸入信號的高位bit。低位和P1最多使用4bit,由于系數(shù)固定,查找表實現(xiàn)起來很方便;高位和P2可按同樣方法計算。在該結構中,部門積P1和P2可以利用Virtex-E的4輸入查找表實現(xiàn),所有的計算都可并行完成。由于輸入為2bit,因此只用了一個加法器;對于更多位數(shù)的輸入來說,將需要更多的加法器。這樣就實現(xiàn)了將乘法器轉化為回法器,減少了解邏輯資源,優(yōu)化了設計。

            1.3 分布式算法

            分布式算法在20多年前被首次提出,但直到Xilinx發(fā)明FPGA的查找表結構以后,分布式算法才在20世紀90年代初重新受到重視,并被有效地應用在FIR濾波器的設計中。下面介紹分布式算法的原理。

            式(1)可以用下式表示:

            式中,hi即h(i),xi(n)即x(n-i),N為濾波器的抽頭數(shù)。

            把數(shù)據(jù)源數(shù)據(jù)格式規(guī)定為2的補碼形式,則:

            式中,xib(n)為二進制數(shù),取值為0或1;xio(n)為符號位,為1表示數(shù)據(jù)為負,為0表示數(shù)據(jù)為正。將(7)式代入(6)式可得:

            由此可以看出,方括號是輸入變量的一個數(shù)據(jù)位和所有濾波器抽頭系數(shù)h0~hi的每一位進行“與”運算并求和。而指數(shù)部分則說明了求和結果的位權,整數(shù)乘以2b就是左移b位,對此可以通過硬件連線實現(xiàn),不占用邏輯資源。這樣就可以通過建立查找表來實現(xiàn)方括號中的運算,查找表可用所有輸入變量的一同一位進行尋址。

            2 系統(tǒng)設計與實現(xiàn)

            下面以一個16階的線性相位FIR低通濾波器為例說明設計的過程。

            2.1 設計指標及參數(shù)提取

            2.1.1 濾波器的設計指標

            采樣頻率:≥50MHz 歸一化截止頻率:0.4MHz

            類型:低通 輸入數(shù)據(jù)寬度:8位

            階數(shù):16階 輸出數(shù)據(jù)寬度:16位

                2.1.2 參數(shù)提取

            采用漢字窗函數(shù)(Hanning)設計16階線性相位FIR數(shù)字濾波器,并提取其特性參數(shù)。

            這里需要注意的是:下載到FPGA的程序是按照FIR濾波器的差分方程式編寫的。由于從MATLAB中算出的系數(shù)h(n)的值是一組浮點數(shù),而FPGA器件只進行定點值的計算,所以要進行浮點值到定點值的轉換。假定“1”對應10000000000000000(17位,相當于乘上65536)。

            用漢字窗(Hanning)進行設計,此16階FIR數(shù)字低通濾波器特性參數(shù)經過換算如下:

            h[0]=h[15]=0000 h[1]=h[14]=0065 h[2]=h[13]=018F

            h[3

            ]=h[12]=035A h[4]=h[11]=0579 h[5]=h[10]=078E

            h[6]=h[9]=0935 h[7]=h[8]=0A1F

            圖5

                2.2 系統(tǒng)具體實現(xiàn)步驟

            2.2.1 查找表的建立

            我們知道,如果濾波器抽頭數(shù)N過多,用單個查找表就不能執(zhí)行全字(因為查找表位寬=濾波器抽頭數(shù)的數(shù)量)。在這種情況下,可以將表的地址輸入位數(shù)(即濾波器抽頭數(shù)N)進行降低,既利用部分表并將結果相加。如果加上流水線寄存器,這一改進并沒有降低速度,但是卻可以極大地減少設計規(guī)模,因為查找表的規(guī)模是隨著地址空間,也就是濾波器抽頭數(shù)N的增加而呈指數(shù)增加,

            根據(jù)卷積和定義16階內積。

            濾波器抽頭數(shù)是16個,考慮到線性FIR濾波器的偶對稱特性,只考慮8個獨立濾波器抽頭數(shù),則需要一個2 8×8的表(其中指數(shù)8指的是8個濾波器抽頭數(shù),后面的8指的是輸入數(shù)據(jù)的位寬)。但是Virtex-e FPGA只能提供4輸入的查找表,所以要對查找表的地址進行電路分割。將8位地址線分為高4位和低4位,分別作為兩個2 4×8的查找表的地址輸入,從而指數(shù)倍地節(jié)省了硬件資源。

            2.2.2 查表計算部分積累加和的過程

            假定輸入數(shù)據(jù)x[n]的值x[0]=1 10=00000001 2c,x[1]=-1 10=11111111 2c,x[2]=3 10=00000011 2c,x[3]=2 10=00000010 2c。(注:2c代表用二進制補碼表示,最高位為符號位。)

            數(shù)據(jù)校驗結果:h[0]x[0]+h[1]x[1]+h[2]x+h[3]x[3]=2812

            說明利用分布式查表算法的計算結果與直接計算結果相同,算法正確無誤。

            查找表(2)的查表計算結果依此類推。只是需要注意:查找表(2)的數(shù)據(jù)輸入x是8位數(shù)據(jù)x[4]、x[5]、x[6]、x[7],而不是x[3]、x[2]、x[1]、x[0]。根據(jù)系數(shù)偶對稱性質。x[8]、x[9]、x[10]、x[11]查查找表(2),x[12]、x[13]、x[14]、x[15]查查找表(1)。

            3 設計結果

            本系統(tǒng)的FPGA采用Xilinx公司的Virtex-E系列中的XCV100E FPGA,使用的軟件是Xilinx公司的ISE5.2i及Modelsim公司的Modelsim時序仿真工具,對FIR濾波器進行描述編程使用的是VHDL語言。

            實現(xiàn)FIR濾波器的最上層的原理圖如圖4所示,輸入16個8位數(shù)據(jù)data_in={1,-1,3,2,2-1,1,-1,1,-1,3,2,2,-1,1,1}。

            系統(tǒng)仿真的時序圖如圖5所示。所設計FIR濾波器的幅頻、相頻、單位脈沖沖激響應如圖6~8所示。

            FIR濾波是DPS的基本運算形式這一。本文介紹的基于FPGA的分布式算法提高了系統(tǒng)運行的速度并且節(jié)省了大量的FPGA資源。通過階段以及查找表中抽頭系數(shù)的設定,還可以靈活地實現(xiàn)除低通外的高通、寬阻和帶通濾波器。

                設計的電路已通過FPGA驗證,說明工作正常,符號設計指標。


            【基于FPGA流水線分布式算法的FIR濾波器的實現(xiàn)】相關文章:

            基于FPGA實現(xiàn)FIR濾波器的研究08-06

            FIR數(shù)字濾波器分布式算法的原理及FPGA實現(xiàn)08-06

            基于流水線技術的并行高效FIR濾波器設計08-06

            3-DES算法的FPGA高速實現(xiàn)08-06

            固定幾何結構的FFT算法及其FPGA實現(xiàn)08-06

            基于FPGA的四階IIR數(shù)字濾波器08-06

            數(shù)字簽名算法SHA-1的FPGA高速實現(xiàn)08-06

            基于FPGA的核物理實驗定標器的設計與實現(xiàn)08-06

            基于模糊控制的遲早門同步器及其FPGA實現(xiàn)08-06