• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA串并結合FIR濾波器的設計

      2012-04-29 23:21:42于亞萍陳雪強劉源衛(wèi)勇
      湖北農(nóng)業(yè)科學 2012年14期
      關鍵詞:濾波器分布式算法

      于亞萍 陳雪強 劉源 衛(wèi)勇

      摘要:根據(jù)FIR濾波器的特性和分布式(DA)算法的特點,基于FPGA實現(xiàn)FIR濾波器的原理和方法,在拆分查找表的基礎上,利用串并結合DA算法對數(shù)字濾波器的設計進行優(yōu)化,設計更高階次的濾波器并節(jié)省所占用的硬件資源。采用串并結合DA算法設計了16階FIR低通濾波器,在Quartus II 7.0下進行仿真,結果驗證了該方法濾波效果好,能夠有效地減少FPGA硬件資源的使用,提高FIR的運算速度。

      關鍵詞:FIR濾波器;查找表;FPGA;分布式(DA)算法

      中圖分類號:TN713文獻標識碼:A文章編號:0439-8114(2012)14-3092-04

      Design of FPGA-Based Serial-Parallel FIR Filter

      YU Ya-ping1,CHEN Xue-qiang2,LIU Yuan1,WEI Yong1

      (1.Department of Mechanic and Electronic Engineering,Tianjin Agricultural University,Tianjin 300384, China;

      2. Jinma Coking Limited Company, Jiyuan City of Henan Province, Jiyuan 454650, Henan,China)

      Abstract: According to the characteristics of FIR filter and distributed algorithm (DA), the theory and method of FIR Filter was realized using DA based on FPGA. On the basis of table partitioning, the designation of FIR filters was optimized by serial-parallel arithmetic aiming at filters with higher order while saving the hardware it would use. 16-order FIR filters was designed by serial and parallel DA and simulated in Quartus Ⅱ 7.0. Results showed that the FIR filters were with small resource usage and high speed compared with traditional methods.

      Key words: FIR filter; look-up table; FPGA; distributed algorithm

      數(shù)字濾波器是數(shù)字信號處理的重要手段,分為有限脈沖響應數(shù)字(Finite impulsive response,FIR)濾波器和無限脈沖響應數(shù)字(Infinite impulsive response,IIR)濾波器兩種。其中FIR濾波器在數(shù)字信號處理的過程中有很好的線性相位和穩(wěn)定性,被廣泛應用于工業(yè)、農(nóng)業(yè)和醫(yī)學領域中[1]。

      目前FIR濾波器的硬件實現(xiàn)有以下4種方式:①使用單片通用數(shù)字濾波器集成電路,這種電路使用起來比較簡單,由于字長和階數(shù)的規(guī)格較少,不易滿足實際需要。②使用DSP芯片[2],DSP芯片是依靠軟、硬件結合來實現(xiàn)FIR濾波器,速度受到限制。③使用可編程邏輯器件FPGA/CPLD[3],用FPGA來實現(xiàn)數(shù)字信號處理可以很好地解決并行和順序性的矛盾,而且易于測試與硬件升級[4]。

      在FPGA中,進行傳統(tǒng)乘法運算占用了大量的硬件資源,分布式(DA)算法巧妙地利用ROM查找表將固定系數(shù)的乘累加運算轉(zhuǎn)換成查找表操作[5,6],避免了乘法運算。查找表后數(shù)據(jù)執(zhí)行的都是簡單的加法運算,可以較大程度地提高運算速度[7]。

      該研究在拆分查找表的基礎上,采用串并結合的DA算法進行FIR濾波器的設計,能很好地實現(xiàn)實時處理,有效減少硬件的使用,提高濾波器的運算速度。

      1DA算法

      DA算法是一項重要的FPGA技術,它與傳統(tǒng)算法實現(xiàn)乘加運算的不同在于執(zhí)行部分積運算的先后順序不同[8,9]。

      對于一個無符號系統(tǒng),DA算法為:

      式中,x[n]是變量,表示如下:

      對于有符號系統(tǒng),DA算法為:

      DA算法對數(shù)據(jù)相同位分別加權求和,要實現(xiàn)有符號DA系統(tǒng),利用一個LUT實現(xiàn)映射f(c[n],xb[n]),采用帶有加/減控制的累加器,對前(B-1)位進行移位累加,對第B位進行減法運算。

      1.1串行DA算法

      將輸入數(shù)據(jù)的相同位進行尋址,預先設定LUT接收一個N位輸入向量xb={xb[0],xb[1]…xb[N-1]},輸出為f(c[n],xb[n])。各個映射f(c[n],xb[n])都有相應的二次冪加權并累加,N次查詢循環(huán)后就完成了對內(nèi)積y的計算。串行DA算法如圖1所示。

      這種計算方法節(jié)省芯片的內(nèi)部資源,運算速度與輸入數(shù)據(jù)的長度有關,比較慢。

      1.2拆分查找表DA算法

      如果輸入系數(shù)N過多,LUT的地址隨系數(shù)呈指數(shù)增加。假定長度為LN的內(nèi)積,則:

      可以用一個DA結構實現(xiàn)??傻玫剑?/p>

      拆分查找表DA算法如圖2所示,實現(xiàn)一個4N的DA設計需要3個次輔助加法器,表格的規(guī)模由24N×B降到了4個2N×B。若要實現(xiàn)更高階的濾波器,拆分查找表法的優(yōu)勢將更加明顯,另外,如果是線性相位的濾波器,表的個數(shù)還能縮小一半。但是拆分查找表法只能降低硬件資源的有效使用,不能提高FIR的運算速度。

      1.3串并結合DA算法

      并行DA算法是通過增加ROM、寄存器和加法器提高速度,讓輸入數(shù)據(jù)每一位的相同位同時尋址,ROM表的內(nèi)容相同,將尋址內(nèi)容進行相應的二次冪加權并相加,每級的加法運算都是并行的。并行DA算法能使系統(tǒng)在1個系統(tǒng)時鐘內(nèi)完成濾波運算,但占用資源太多。

      全串行方式是在每個時鐘周期中對所有變量的一個相同位進行串行處理,全并行方式是每個時鐘周期對所有變量的所有相同位進行并行處理,這兩種方法是針對資源優(yōu)化設計和速度優(yōu)化設計的兩種最優(yōu)情況。根據(jù)設計者對FIR速度大小的要求,可以通過串并結合的方式提高FIR的速度,使資源利用達到最優(yōu)。若:

      對于一個數(shù)據(jù)寬度和尋址查找表寬度均為8位的FIR濾波器來說,可以寫為:

      y=[sum0]+[sum1]21+[sum2]22+[sum3]23++[sum4]+[sum5]21+[sum6]22+[sum7]23×24

      兩個基數(shù)都為21的輸出加權累加器,每個系統(tǒng)的時鐘脈沖可以算兩位。根據(jù)系統(tǒng)對資源和運算速度的要求,可以對一次并行處理的數(shù)據(jù)位數(shù)進行合理的安排。DA算法的串并結合實現(xiàn)結構如圖3所示。

      2串并結合的FIR低通數(shù)字濾波器的FPGA實現(xiàn)

      2.1采用窗函數(shù)對參數(shù)進行設計

      2.1.1參數(shù)設計使用MATLAB軟件中的Filter design toolbox數(shù)字濾波器設計軟件模塊FDATool進行設計[10],FIR濾波器的設計指標:采樣頻率10 MHz,截止頻率1.5 MHz,濾波器階數(shù)16階,輸入數(shù)據(jù)寬度12位,系數(shù)數(shù)據(jù)寬度12位,采用Kaiser窗進行設計,β=0.5,線性偶對稱。

      2.1.2運算量化量化是將濾波器的系數(shù)由浮點數(shù)轉(zhuǎn)換為FPGA可以進行運算的定點數(shù)??紤]到溢出,將h(n)擴大210倍,再表示為12位二進制補碼,可得到:

      h(0)=h(15)=0.028 219 0=29=0000000111012C

      h(1)=h(14)=-0.007 315 9=-8=1111111110002C

      h(2)=h(13)=-0.049 899 0=-51=1111110011012C

      h(3)=h(12)=-0.061 658 0=-63=1111110000012C

      h(4)=h(11)=-0.014 040 0=-14=1111111100102C

      h(5)=h(10)=0.089 426 0=92=0000010111002C

      h(6)=h(19)=0.209 090 0=214=0000110101102C

      h(7)=h(18)=0.288 940 0=296=0001001010002C

      2.2FPGA的實現(xiàn)

      采用FPGA實現(xiàn)時,首先將輸入數(shù)據(jù)存入數(shù)組中寄存起來,然后以寄存器中每一個輸入數(shù)據(jù)的相同位的值為地址,去對應查找表中的值,根據(jù)DA算法的公式,進行相應二次冪加權后累加,減去數(shù)據(jù)最高位,就能得到正確的濾波器輸出。該系統(tǒng)在拆分查找表的基礎上,采用串并結合方法對輸入數(shù)據(jù)進行構建,共由數(shù)據(jù)存儲延時模塊、查找表模塊、移位累加模塊、控制模塊組成。系統(tǒng)結構框架如圖4所示。

      2.2.1數(shù)據(jù)存儲延時模塊設計的濾波器階數(shù)為16階,可以采用FIR網(wǎng)絡的線性型結構,首先將12位的輸入數(shù)據(jù)并行輸入數(shù)據(jù)寄存器中,由于該濾波器系數(shù)有16個,分別將16位輸入數(shù)據(jù)存入16×13列數(shù)組中的前12列中,按位存儲,第13列擴展位存儲的數(shù)據(jù)與符號位相同。由于FIR數(shù)字濾波器的單位取樣響應是對稱的,濾波系數(shù)對稱,將輸入數(shù)據(jù)x(i)和x(15-i)相加之后存入寄存器,可以將16階系數(shù)尋址降為8階。分別將每一次輸入數(shù)據(jù)的第1位到第6位、第7位到第12位和第13位數(shù)據(jù)并行輸入,在控制模塊的作用下,每一個系統(tǒng)時鐘脈沖,數(shù)據(jù)左移一位,將第一列數(shù)據(jù)輸出作為地址尋找查找表的內(nèi)容。

      2.2.2查找表模塊抽頭系數(shù)查找表模塊將濾波器系數(shù)的各種組合固化在ROM中[11],它的地址來自于輸入數(shù)據(jù)移位模塊相同位的輸出,通過查找表得到卷積數(shù)據(jù),并將這些數(shù)據(jù)輸出到移位相加模塊。設計將查找表劃分為兩個四抽頭查找表LUT1和LUT2,LUT1用VHDL語言實現(xiàn)如下:

      Case table_address0 is

      When"0000"=>table_out_12b<="000000000000";

      When "0001"=>table_out_12b<="000000011101";-- 29

      When "0010"=>table_out_12b<="111111111000";-- -8

      When "0011"=>table_out_12b<="000000010101";-- 21

      When "0100"=>table_out_12b<="111111001101";-- -51

      When "0101"=>table_out_12b<="111111101010";-- -22

      When "0110"=>table_out_12b<="111111000101";-- -59

      When "0111"=>table_out_12b<="111111100010";-- -30

      When "1000"=>table_out_12b<="111111000001";-- -63

      When "1001"=>table_out_12b<="111111011110";-- -34

      When "1010"=>table_out_12b<="111110111001";-- -71

      When "1011"=>table_out_12b<="111111010110";-- -42

      When "1100"=>table_out_12b<="111110001110";-- -114

      When "1101"=>table_out_12b<="111110101011";-- -85

      When "1110"=>table_out_12b<="111110000110";-- -122

      When "1111"=>table_out_12b<="111110100011";-- -93

      When others=>table_out_12b<="000000000000"

      2.2.3移位累加模塊移位累加模塊的主要功能是實現(xiàn)數(shù)據(jù)的累加,主要由加減器單元和移位累加單元組成。為了使累加器的結果不產(chǎn)生溢出,需要對累加器進行冗余設計,輸入數(shù)據(jù)和濾波器系數(shù)的位數(shù)均為N,累加器的長度為M,濾波器的長度為L,對于有符號數(shù):M=2N+log2L-1,設計中累加器的長度為27位。

      2.2.4控制模塊控制模塊主要控制信號的輸入、移位相加和數(shù)據(jù)的輸出,使上述各個模塊按照一定的時序進行操作,最終完成濾波功能。系統(tǒng)仿真波形如圖5所示。

      3結論

      理論分析和試驗結果表明,在采用拆分查找表的基礎上用串并結合的方式,不僅能夠節(jié)省硬件資源,而且能夠提高FIR的運算速度。該設計采用FPGA器件CycloneⅡ EP2C5F256C6進行方案驗證,僅占用邏輯單元631個,采用串并結合的FIR數(shù)字濾波器具有良好的濾波效果,在資源允許的條件下,可根據(jù)實際應用任意確定濾波器的階數(shù)和運算速度,是一種比較實用可靠的設計方法。

      參考文獻:

      [1] 劉建成,鄒應全,徐偉.基于FPGA的FIR濾波器設計與仿真[J]. 南京信息工程大學學報(自然科學版),2010,2(5):400-404.

      [2] 周日貴,龔勇清,聶愛球,等. 定點DSP實現(xiàn)高精度FIR數(shù)字濾波[J]. 儀表技術與傳感器,2004(2):400-404.

      [3] 呂紹娟,趙不賄. FIR數(shù)字濾波的 FPGA實現(xiàn)[J]. 微計算機信息,2008,24(20):223-224.

      [4] 徐志軍,徐光輝. CPLD/FPGA的開發(fā)與應用[M]. 北京:電子工業(yè)出版社,2003.

      [5] 黃曉紅,蔡江利. 基于FPGA 的改進型FIR濾波器的實現(xiàn)[J]. 電子技術應用,2009,35(5):32-33.

      [6] 楊洪軍,王振友. 基于分布式算法和查找表的FIR濾波器的優(yōu)化設計[J]. 山東理工大學學報(自然科學版),2009,23(5):104-106.

      [7] 劉德建,鄭繼禹.基于流水線技術的FIR 濾波器的設計與實現(xiàn)[J]. 電測與儀表,2008,45(6):54-56.

      [8] MEYER-BAESE U. 數(shù)字信號處理的FPGA實現(xiàn)[M]. 劉凌,胡永生,譯. 北京:清華大學出版社,2003.

      [9] XIE J F,HE J J,TAN G Z. FPGA realization of FIR filters for high-speed and medium-speed by using modified distributed arithmetic architectures[J].Microelectronics Journal,2010,41(6):365-370.

      [10] 李彬. FIR數(shù)字濾波器的FPGA實現(xiàn)技術研究[D]. 成都:西南交通大學,2007.

      [11] 羅朝霞,高書莉. CPLD/FPGA設計及應用[M]. 北京:人民郵電出版社,2007.

      猜你喜歡
      濾波器分布式算法
      基于無擾濾波器和AED-ADT的無擾切換控制
      基于MapReduce的改進Eclat算法
      Travellng thg World Full—time for Rree
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      進位加法的兩種算法
      開關電源EMI濾波器的應用方法探討
      電子制作(2018年16期)2018-09-26 03:26:50
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      一種改進的整周模糊度去相關算法
      基于TMS320C6678的SAR方位向預濾波器的并行實現(xiàn)
      金阳县| 慈利县| 永修县| 徐州市| 黄大仙区| 驻马店市| 嘉黎县| 新干县| 于田县| 安庆市| 石屏县| 沁阳市| 镇康县| 鸡泽县| 湟中县| 灵石县| 德兴市| 壤塘县| 独山县| 和硕县| 河间市| 延津县| 怀仁县| 阳春市| 乃东县| 子洲县| 奇台县| 静乐县| 琼中| 永仁县| 阿坝县| 金平| 基隆市| 长顺县| 班玛县| 丰顺县| 桓台县| 忻州市| 咸阳市| 桂东县| 瓦房店市|