精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-05-23 08:16 ? 次閱讀

FIR(finite impulse response)濾波器數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位沖激響應是有限的,沒有輸入到輸出的反饋,是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。

目前FIR濾波器的硬件實現有以下幾種方式:

一種是使用單片通用數字濾波器集成電路,這種電路使用簡單,但是由于字長和階數的規格較少,不易完全滿足實際需要。雖然可采用多片擴展來滿足要求,但會增加體積和功耗,因而在實際應用中受到限制。

另一種是使用DSP芯片。DSP芯片有專用的數字信號處理函數可調用,實現FIR濾波器相對簡單,但是由于程序順序執行,速度受到限制。而且,就是同一公司的不同系統的DSP芯片,其編程指令也會有所不同,開發周期較長。

還有一種是使用可編程邏輯器件,FPGACPLD。FPGA有著規整的內部邏輯塊整列和豐富的連線資源,特別適合用于細粒度和高并行度結構的FIR濾波器的實現,相對于串行運算主導的通用DSP芯片來說,并行性和可擴展性都更好。

FIR濾波器的主要組成模塊是乘累加單元(MAC),如果按照直觀結構構造乘法器和系數寄存器來實現會占用大量的邏輯資源,顯然不可取。本文采用基于分布式算法思想的方法來設計FIR濾波器,并在FPGA上實現。

1 分布式算法原理

分布式算法(distributed arithmetic,DA)最初是在1973年由Croisier提出的,但直到Xilinx發明FPGA的查找表以后,DA算法才在上世紀90年代初重新受到重視,并有效地應用在FIR濾波器的設計中。DA算法的原理如下。

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

函數f(c(n),xb(n))的實現方法是利用一個LUT(查找表)實現影射f(c(n),xb(n)),也就是說2N字寬、預先設定程序的LUT接收一個N位輸入向量xb=[xb[0],xb…xb[N-1]],輸出為f(c(n),xb(n)),個個影射,f(c(n),xb(n))都由相應的二次冪加權并累加。對于固定系數,整數乘以2b即左移6位,可以通過硬連線實現,不占用邏輯資源,利用圖1所示的移位加法器就能有效地實現累加。DA算法的主要特點是巧妙利用SRAM查找表將固定系數的MAC運算轉化為查表操作,其運算速度不隨系數和輸入數據精度的增加而降低,而且相對直接實現乘法器和系數寄存器在邏輯資源占用上得到了極大的改善。缺點是查找表的大小隨濾波器的階數的增加呈指數增長,這時可以采用將大查找表分解為小查找表的方法來降低邏輯資源的消耗,如圖2所示。

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

2 FIR濾波器的網絡結構

N階FIR濾波器相對于輸入時間序列x(n)的輸出表達式為:

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

對于線性相位FIR濾波器,其單位取樣響應是對稱或反對稱的,即:

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

3 FIR濾波器的硬件電路設計

下面以一個32階FIR帶通濾波器為例說明硬件電路設計的方法和過程。

3.1 設計指標

采用頻率:200 Hz 類型:帶通

上限截止頻率:54.3 Hz 下限截止頻率:46 Hz

階數:32階 系數數據寬度:16位

輸入數據寬度:16位 輸出數據寬度:16位

3.2 濾波器的設計

使用MATLAB 7.1軟件中Filter Design&AnalysisTool,選取帶通濾波器,Kaiser窗設計方法,設計出符合設計指標的32階線性相位FIR濾波器,其幅頻特性和相頻特性如圖5所示。

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

濾波器的特征參數用16位二進制補碼表示如下:

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

3.3 硬件電路組成單元

FIR濾波器的硬件電路包括數據位擴展、并串轉換器、移位寄存器組、預相加單元、查找表單元、查表結果相加單元、移位累加單元、鎖存輸出單元、控制單元等,總的結構如圖6所示。

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

(1) 數據位擴展:由于輸入數據要進行預相加,為了防止溢出,保證電路正常工作,采用符號位擴展,使輸入數據由16位增加到17位。

(2) 并串轉換器:由于電路以串行方式工作,須將并行輸入的數據轉換為串行數據輸入,且順序是先輸入低位(LSB),后輸入高位(MSB)。

(3) 移位寄存器組:其主要功能是用寄存器組存儲輸入序列,實現輸入數據的延時輸出,存儲的級數等于FIR濾波器的階數減1,即31。移位寄存器組輸出的數據和并串轉換器輸出的數據一起形成如圖1中所示的輸入數據陣列形式。

(4) 預相加單元:利用FIR濾波器系數的對稱性,按照圖4所示的FIR濾波器線性網絡結構,將相同濾波器系數相乘兩個輸入數據預先相加,這樣相當于將濾波器的階數減半,減小了硬件規模。預相加單元采用在位串行電路中廣泛應用的串行加法器來實現。

(5) 查找表單元:如前所述,LUT的規模隨濾波器階數的增加呈指數增長,當濾波器的階數很大時,查找表的規模過于龐大。為了減小規模,可以將1個有16位地址總線的LUT分割,產生4個4位地址總線部分LUT,先分別對4個部分表查表,再將結果相加。為防止相加時產生溢出,將16位查表輸出經過1位符號擴展變為17位。

(6) 查表結果相加單元:加法器是影響FIR濾波器性能的主要部件,其工作速度決定了FIR濾波器的效率,因此采用具有超前進位功能的流水線加法器。

(7) 移位累加單元:得到的查表結果相當于一個部分積,移位累加單元將其與寄存器中的部分積相加,結果右移1位還放入寄存器中,直到所有的位數都查表結束。特別應注意,最高位查表得到的結果不是與上一個右移1位的部分積相加,而是相減。這里的加法器仍是采用具有超前進位功能的流水線加法器,作減法時,只需將被減數取補即可。

(8) 鎖存輸出單元:加法器的輸出不穩定,將其結果經過一鎖存器得到穩定的輸出。

(9) 控制單元:產生復位,時序等控制信號控制電路的總體運行。

3.4 電路仿真

ALTERA公司的MAX+PLUS2軟件環境下,用硬件描述語言VHDL對上述FIR濾波器的模塊進行編程描述,并仿真各模塊的波形,最后將各模塊綜合起來下載到器件FLEX10KE中形成FIR濾波器。

用MATLAB設計了一幅度為0.22的50 Hz的正弦波,用250 Hz的采樣器對其采樣,得到周期序列[0,0.209 2,0.129 3,—0.129 3,—0.209 2],用16位二進制補碼表示為:[0000H,1ACBH,108DH,EF73H,E538H],將其輸入到FIR濾波器的輸入端,濾波器的輸出如圖6所示,實驗結果與理論計算一致。并取32位以后的輸出結果,在MATLAB里繪制波形,如圖7所示,可見,FPGA仿真結果正確,50 Hz的正弦波通過了FIR濾波器。

基于FPGA器件采用分布式算法實現FIR濾波器及仿真研究分析

4 結 論

本文所介紹的基于FPGA、采用分布式算法實現FIR濾波器的方法,在提高系統運行速度和節省硬件資源方面具有很大的優勢。而且,通過改變階數和查找表中的系數,還可以將此設計靈活地運用于實現高通、低通和帶阻濾波器,可移植性較好。因此,這種方法在高速數字信號處理中將有很好的應用前景。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21667

    瀏覽量

    601858
  • cpld
    +關注

    關注

    32

    文章

    1247

    瀏覽量

    169217
  • 濾波器
    +關注

    關注

    160

    文章

    7728

    瀏覽量

    177685
收藏 人收藏

    評論

    相關推薦

    基于FPGAFIR濾波器設計與實現

    本帖最后由 eehome 于 2013-1-5 09:50 編輯 基于FPGAFIR濾波器設計與實現   文章研究基于
    發表于 08-11 15:32

    fpga實現濾波器

    本帖最后由 eehome 于 2013-1-5 10:03 編輯 fpga實現濾波器在利用FPGA實現數字信號處理方面,
    發表于 08-11 18:27

    fpga實現濾波器

    fpga實現濾波器fpga實現濾波器在利用FPGA
    發表于 08-12 11:50

    求一種基于FPGA分布式算法濾波器設計的實現方案

    分布式濾波器算法是什么?一種基于FPGA分布式算法濾波器
    發表于 04-29 07:13

    請問一下基于分布式算法FIR濾波器怎么實現

    FIR濾波器的原理及結構是什么基于分布式算法FIR濾波器
    發表于 04-30 06:03

    如何設計基于分布式算法FIR濾波器

    FIR濾波器的原理及結構是什么基于分布式算法FIR濾波器
    發表于 05-08 08:39

    FIR濾波器FPGA實現及其仿真研究

    本文提出了一種采用現場可編程門陣列器件 FPGA 實現FIR濾波器硬件電路的方案,該方案基于
    發表于 08-31 16:47 ?45次下載

    基于分布式算法FIR濾波器的設計與實現

    本文介紹了能高效實現固定常數乘法的分布式算法原理,給出了在FPGA 中用查找表實現FIR
    發表于 09-02 10:10 ?10次下載

    FIR數字濾波器分布式算法的原理及FPGA實現

    FIR數字濾波器分布式算法的原理及FPGA實現摘要:在利用F
    發表于 10-27 14:05 ?57次下載

    應用分布式算法FPGA平臺實現FIR低通濾波器

    應用分布式算法FPGA平臺實現FIR低通濾波器李明緯 黃世震(福州大學 福建省微電子集成電路重
    發表于 12-14 11:09 ?29次下載

    FIR數字濾波器分布式算法的原理及FPGA實現

    摘要: 在利用FPGA實現數字信號處理方面,分布式算法發揮著關鍵作用,與傳統的乘積-積結構相比,具有并行處理的高效性特點。詳細研究了基于
    發表于 06-20 14:03 ?5884次閱讀
    <b class='flag-5'>FIR</b>數字<b class='flag-5'>濾波器</b><b class='flag-5'>分布式</b><b class='flag-5'>算法</b>的原理及<b class='flag-5'>FPGA</b><b class='flag-5'>實現</b>

    基于FPGA流水線分布式算法FIR濾波器實現

    摘要: 提出了一種采用現場可編碼門陣列器件FPGA)并利用窗函數法實現線性FIR數字濾波器
    發表于 06-20 14:05 ?1283次閱讀
    基于<b class='flag-5'>FPGA</b>流水線<b class='flag-5'>分布式</b><b class='flag-5'>算法</b>的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的<b class='flag-5'>實現</b>

    一種基于分布式算法的低通FIR濾波器

    線性相位FIR濾波器的對稱性減小了硬件規模;利用分割查找表的方法減小了存儲空間;采用并行分布式算法結構和流水線技術提高了
    發表于 11-24 15:17 ?3252次閱讀

    如何使用FPGA分布式算法實現FIR低通濾波器的設計

    在利用FPGA實現數字信號處理方面,分布式算法發揮著關鍵作用,與傳統的乘加結構相比,具有并行處理的高效性特點。本文研究了一種16階
    發表于 09-14 17:49 ?9次下載
    如何使用<b class='flag-5'>FPGA</b>和<b class='flag-5'>分布式</b><b class='flag-5'>算法</b><b class='flag-5'>實現</b><b class='flag-5'>FIR</b>低通<b class='flag-5'>濾波器</b>的設計

    如何使用FPGA實現分布式算法的高階FIR濾波器

    提出一種新的高階FIR濾波器FPGA實現方法。該方法運用多相分解結構對高階FIR濾波器進行降階
    發表于 03-23 15:44 ?31次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現</b><b class='flag-5'>分布式</b><b class='flag-5'>算法</b>的高階<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>