• 
    

    
    

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

      ?

      基于FPGA的FIR濾波器優(yōu)化設(shè)計

      2014-11-20 08:18:14吳秀山郇昌紅
      電視技術(shù) 2014年5期
      關(guān)鍵詞:乘法器濾波器運算

      呂 威,吳秀山,胡 明,郇昌紅

      (中國計量學(xué)院機(jī)電工程學(xué)院,浙江杭州310018)

      自從20世紀(jì)80年代可編程邏輯門陣列(FPGA)被發(fā)明以來,它被廣泛地用作設(shè)計中等符合邏輯和不太復(fù)雜的狀態(tài)機(jī)設(shè)計,且只能用在數(shù)據(jù)處理非常有限的的任務(wù)中。隨著FPGA的容量、性能、運行速度等指標(biāo)的提高,F(xiàn)PGA可以被用在越來越高端的應(yīng)用中,例如在需要并行處理數(shù)據(jù)和對速度要求很高的系統(tǒng)中,由于基于FPGA系統(tǒng)的并行性,其處理速度往往快于在通用處理器上的軟件實現(xiàn)。FPGA現(xiàn)在已經(jīng)被普遍的應(yīng)用在數(shù)字信號處理系統(tǒng)中。同時FPGA具有的在系統(tǒng)可編程的特性使得基于FPGA的設(shè)計成為在線可編程系統(tǒng)。FPGA也被用在了以前只能使用專用集成電路(ASIC)和微處理器才能實現(xiàn)的應(yīng)用中,因為它可以提供相同的性能、低功耗、更短的研發(fā)周期和較低的開發(fā)成本[1-4]。

      在一個用于脈沖寬度調(diào)制(PWM)的數(shù)模轉(zhuǎn)換器(ADC)中,該系統(tǒng)的數(shù)字部分可以比較經(jīng)濟(jì)地在ALTER公司的AFlex10K器件上實現(xiàn),使用這個裝置可以迅速地對有功功率、無功功率和視在功率進(jìn)行測量。這個功率分析儀在FPGA上實現(xiàn),可以對單相功率進(jìn)行測量,所占用的資源大概為該器件上60%的邏輯單元。所有的操作都是并行執(zhí)行的,所以響應(yīng)的時間非常短。為了得到正確的測量值,所有的信號必須先通過一個有限脈沖響應(yīng)濾波器(FIR)。在硬件上FIR濾波器比無限脈沖響濾波器(IIR)更容易實現(xiàn),這是因為FIR濾波器具有更簡單和規(guī)則的結(jié)構(gòu),但是要達(dá)到相同的濾波效果,F(xiàn)IR濾波器往往比IIR濾波器具有更高的階數(shù),所以需要占用更多的硬件資源,所以在FPGA上實現(xiàn)FIR濾波器需要考慮速度、面積和功耗等約束條件,這就是為什么會提出一種不含乘法器模塊的 FIR 濾波器的原因[1,5-6]。

      1 FIR濾波器

      具有固定系數(shù)的FIR濾波器是線性時不變數(shù)字濾波器,突出特點是其單位取樣響應(yīng)h(n)是一個N點長的有限序列,0≤n≤N-1,濾波器的輸出y(n)可以表示為輸入x(n)和單位響應(yīng)f(n)的線性卷積

      對于線性時不變系統(tǒng),Z變換可以更方便地表示為

      式中:F(z)為系統(tǒng)的傳遞函數(shù),其表達(dá)式為

      L階線性時不變FIR濾波器可以用圖1表示,實現(xiàn)1個數(shù)字濾波器需要的運算單元有加法器、乘法器和延遲單元等。乘法器為固定系數(shù)乘法器,該系數(shù)被稱作階權(quán),歷史上FIR濾波器也被稱作橫向濾波器,是由于它的抽頭延遲線結(jié)構(gòu)[7-9]。

      數(shù)字信號處理的實質(zhì)是數(shù)值運算,這些運算可以在計算機(jī)上用軟件實現(xiàn),也可以通過硬件實現(xiàn)。無論哪種方式,運算過程中的一些系數(shù)、信號序列及結(jié)果都要以二進(jìn)制形式存儲在有限字長的單元中。為了在FPGA器件中實現(xiàn)FIR濾波器,需要對乘法器的系數(shù)進(jìn)行量化,如果乘法器的系數(shù)為整數(shù)的二次冪,或者是可以用兩項或者三項二次冪表示,那么乘法器可以用移位寄存器替換。由于以前基于兩項二次冪之和的系數(shù)替換誤差較大,擴(kuò)展到三項二次冪之和,并且計算了誤差。圖2為用加法器和移位寄存器替換的乘法器結(jié)構(gòu),乘法器的系數(shù)可以表示為

      圖1 直接型FIR濾波器

      式中:ai,k范圍是{-1,1};bi,k范圍是 {-t,…,0,…,u},t和u決定了系數(shù)的動態(tài)范圍,t和u越大近似值越接近于真實值[5]。

      圖2 系數(shù)為二次冪之和的運算單元

      2 系數(shù)計算

      濾波器的系數(shù)計算通過ALTERA公司的軟件FIR編輯器或者其他專用軟件來獲得,一旦得到了該系數(shù)就可以將這些系數(shù)進(jìn)行二次冪之和轉(zhuǎn)換。

      提出的轉(zhuǎn)換系數(shù)的算法如圖3所示,該算法將濾波器中乘法器的系數(shù)轉(zhuǎn)換成二次冪的三項之和,如果將算法中的條件(i>2)替換成(i>1),則該算法可以很方便地將系數(shù)轉(zhuǎn)換成二次冪的兩項之和。

      流程圖中,a[i,k]和b[i,k]分別表示的是式(4)中的系數(shù)ai,k和bi,k,該算法有2 個循環(huán)結(jié)構(gòu),i循環(huán)計算的是向量a[i,k]和b[i,k],k循環(huán)用來計算濾波器中每個乘法器的系數(shù)。該算法的主要思想是計算系數(shù)f[k]的基于2的對數(shù),在輸入口的f[k]為乘法器的系數(shù)值。在第一步中,計算取決于系數(shù)的b[0,k]的二次冪的差,a[i,k]的取值-1或者1由有符號數(shù)f[k]除以f[k]的絕對值得到。

      隨著i值的增大,剩余的系數(shù)a[i,k]和b[i,k]相繼被計算出。如果在某個節(jié)點或者是輸入點,b[i,k]等于乘法器系數(shù)的字長n,濾波器的乘法相當(dāng)于乘以系數(shù)0,因為此時濾波器的階數(shù)為0。濾波器也相當(dāng)于進(jìn)行n位移位運算,在這個運算中,移位的方向并不重要,因為不管左移還是右移計算的結(jié)果都為0。當(dāng)i>2時,此時k的值增加,下一個乘法器的的系數(shù)將被進(jìn)行近似轉(zhuǎn)換,由于在FPGA上實現(xiàn)該算法的復(fù)雜性,這些系數(shù)的轉(zhuǎn)換將完全在外部進(jìn)行,并且將計算得到的結(jié)果在FPGA的隨機(jī)存儲器上配置。

      圖3 乘法器系數(shù)的轉(zhuǎn)換算法

      3 測試結(jié)果

      基于以上提出的系數(shù)近似轉(zhuǎn)換算法,對比了二次冪的兩項和三項和對乘法器系數(shù)轉(zhuǎn)換誤差的區(qū)別,圖4描繪了在計算過程中將系數(shù)轉(zhuǎn)換成二次冪的兩項或者三項和的相對誤差??梢钥吹?,如果將一個字長為8位的系數(shù)用二次冪的兩項之和來表示,那么相對誤差最多可達(dá)10.3%,而用二次冪的三項之和來近似該系數(shù)時,相對誤差將會低很多,最大誤差為2.3%。如果乘法器系數(shù)字長為12位,用二次冪的兩項之和的最大誤差將達(dá)到10.8%,二次冪的三項之和的最大誤差為2.6%。

      圖4 二次冪的兩項和三項和近似誤差(截圖)

      表1給出了幾個整數(shù)系數(shù)的轉(zhuǎn)換,可以看出將乘法器的系數(shù)用二次冪的三項之和來進(jìn)行近似,精確度將遠(yuǎn)大于用二次冪的兩項之和進(jìn)行近似。

      表1 系數(shù)轉(zhuǎn)換的例子

      在MATLAB軟件上對以上提出的濾波器進(jìn)行仿真,圖5的結(jié)果是一個15階的高通FIR濾波器的幅值響應(yīng),濾波器中乘法器的系數(shù)被量化到8位整數(shù)的精度,圖中顯示了系數(shù)量化前和系數(shù)近似為二次冪的兩項或三項之和時的幅度響應(yīng),圖中可以看出,將系數(shù)近似為二次冪兩項之和后濾波器的阻帶與系數(shù)量化前的阻帶有很大的區(qū)別。

      圖5 三種不同系數(shù)編碼的高通濾波器幅度響應(yīng)(截圖)

      不過在有些情況下,將乘法器系數(shù)近似為二次冪的兩項之和的濾波器可能在幅度響應(yīng)上比系數(shù)近似為二次冪的三項之和更為準(zhǔn)確,但是對于在FPGA上硬件資源的占用來說,將系數(shù)近似為二次冪的三項之和可以更加節(jié)約資源。

      圖6為一個13階的低通FIR濾波器的幅度響應(yīng),可以看到只有在歸一化頻率為0.8~0.85時,將系數(shù)近似為兩項二次冪之和的幅度響應(yīng)比將系數(shù)近似為三項二次冪之和的幅度響應(yīng)更為精確。

      圖6 三種不同系數(shù)編碼的低通濾波器幅度響應(yīng)(截圖)

      圖7給出了基于三項二次冪之和系數(shù)的FIR濾波器框圖,該結(jié)構(gòu)很適合在FPGA上實現(xiàn),只需做很小的修改就可以將其改變?yōu)橄禂?shù)近似為兩項二次冪之和的濾波器結(jié)構(gòu)。圖中D表示為一個時鐘周期延遲的單元,用D觸發(fā)器實現(xiàn)。LSR是一個左移移位寄存器,由QUARTUS軟件提供的參數(shù)化組合邏輯單元設(shè)計,該移位寄存器可以將輸入左移3種不同的位數(shù),由bi,k的數(shù)值決定。輸入符號由的值確定,如果ai,k=+1,則輸入符號為邏輯0,如果ai,k= -1,則輸入符號為邏輯1,框圖中的“+”代表加法器。

      圖7 基于二次冪三項之和系數(shù)的FIR濾波器框圖

      圖7描述的結(jié)構(gòu)在ALTERA的Flex10k器件中實現(xiàn),一個7階系數(shù)字長為12位的FIR濾波器用該方法實現(xiàn),作為資源占用對比也用傳統(tǒng)的含乘法器的結(jié)構(gòu)實現(xiàn)該濾波器,傳統(tǒng)的實現(xiàn)方法需要的邏輯單元為2 067個,而采用上述方法實現(xiàn)占用邏輯單元為1 540個。

      4 結(jié)論

      本文介紹了基于三項二次冪之和結(jié)構(gòu)的FIR濾波器結(jié)構(gòu),采用該結(jié)構(gòu)的濾波器與傳統(tǒng)需要乘法器模塊的濾波器結(jié)構(gòu)相比,這種結(jié)構(gòu)的濾波器具有很好的性能并且可以達(dá)到更快的速度,在FPGA器件上實現(xiàn)一個7階系數(shù)為12位的FIR濾波器時,所占用的面積減小了近75%,這種新的結(jié)構(gòu)可以讓設(shè)計者在同一個FPGA器件上實現(xiàn)更多的濾波器。

      [1]趙健等.數(shù)字信號處理[M].北京:清華大學(xué)出版社,2012.

      [2]黃鳳英.基于模塊局部可重構(gòu)FIR濾波器設(shè)計[J].電視技術(shù),2013,37(9):83-86.

      [3] PARHAMI B.Computer arithmetic:Algorithms and hardware designs[M].New York:Oxford Univ.Press,2000.

      [4] CILETTID.Verilog HDL高級數(shù)字設(shè)計[M].張雅綺,李鏘,譯.北京:電子工業(yè)出版社,2005.

      [5] PARHIK K.VLSI digital signal processing systems design and implementation[M].New York:Wiley InterScience,2003.

      [6]金燕.FPGA應(yīng)用中CIC抽取濾波器增益矯正的實現(xiàn)[J].電視技術(shù),2013,37(7):57-59.

      [7]高亞軍.基于FPGA的數(shù)字信號處理[M].北京:電子工業(yè)出版社,2012.

      [8] RABAEY JM,CHANDRAKASAN A,NIKOLIC B.數(shù)字集成電路——設(shè)計透視[M].2版.北京:清華大學(xué)出版社,2004.

      [9]RABAEY JM.數(shù)字集成電路——系統(tǒng)與設(shè)計[M].周潤德,譯.北京:電子工業(yè)出版社,2004.

      猜你喜歡
      乘法器濾波器運算
      基于無擾濾波器和AED-ADT的無擾切換控制
      重視運算與推理,解決數(shù)列求和題
      有趣的運算
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      開關(guān)電源EMI濾波器的應(yīng)用方法探討
      電子制作(2018年16期)2018-09-26 03:26:50
      “整式的乘法與因式分解”知識歸納
      基于FPGA的流水線單精度浮點數(shù)乘法器設(shè)計*
      撥云去“誤”學(xué)乘除運算
      基于TMS320C6678的SAR方位向預(yù)濾波器的并行實現(xiàn)
      乘法器模塊在FPGA中的實現(xiàn)
      开原市| 天津市| 富锦市| 家居| 夏河县| 永州市| 鹤壁市| 吴川市| 通江县| 长武县| 遵义县| 洮南市| 稻城县| 黎平县| 呼伦贝尔市| 宁阳县| 新巴尔虎左旗| 三明市| 丹东市| 弥勒县| 沂源县| 呼和浩特市| 台东市| 开平市| 龙胜| 老河口市| 麦盖提县| 阿拉善右旗| 乐至县| 濮阳市| 神木县| 汶上县| 金塔县| 麻江县| 甘孜| 都安| 西安市| 湖南省| 鹤庆县| 兰坪| 蒙自县|