新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于FPGA的高速FIR數字濾波器的設計

        基于FPGA的高速FIR數字濾波器的設計

        ——
        作者: 時間:2007-12-04 來源: 收藏

          1 引 言

          目前的實現方法主要有3種:利用單片通用數字集成電路、DSP器件和可編程邏輯器件實現。單片通用數字使用方便,但由于字長和階數的規格較少,不能完全滿足實際需要。使用DSP器件實現雖然簡單,但由于程序順序執行,執行速度必然不快。

          有著規整的內部邏輯陣列和豐富的連線資源,特別適合于數字信號處理任務,相對于串行運算為主導的通用DSP芯片來說,其并行性和可擴展性更好。但長期以來,一直被用于系統邏輯或時序控制上,很少有信號處理方面的應用,其原因主要是因為在中缺乏實現乘法運算的有效結構。本文利用FPGA乘累加的快速算法,可以設計出高速的數字濾波器,使FPGA在數字信號處理方面有了長足的發展。

          2 Matlab設計濾波器參數

          以表1的濾波器參數為例,分析設計高速數字濾波器的方法。

          

          利用Matlab為設計FIR濾波器提供的工具箱,選擇濾波器類型為低通FIR,設計方法為窗口法,階數為16,窗口類型為Hamming,Beta為0.5,Fs為8.6 kHz,FC為3.4 kHz,導出的濾波器系數如下:

          

          3 快速FIR濾波器算法的基本原理

          (1) 分布式算法

          分布式算法在完成乘加功能時是通過將各輸入數據每一對應位產生的部分積預先相加形成相應的部分積,然后再對各部分積進行累加得到最終結果。

          對于一個N(N為偶數)階線性相位FIR數字濾波器,輸出可由式(1)表示:

          

          (2) 乘法器設計

          高性能乘法器是實現高性能的FIR運算的關鍵,分析乘法器的運算過程,可以分解為部分積的產生和部分積的相加兩個步驟。部分積的產生非常簡單,實現速度較快,而部分積相加的過程是多個二進制數相加的加法問題,實現速度通常較慢。解決乘法器速度問題,需要分別從這兩個方面入手,減小部分積的個數,提高部分積相加運算的速度。

          3.1 Booth算法

          Booth算法針對二進制補碼表示的符號數之間的相乘,即可以同時處理二進制正數/負數的乘法運算。Booth算法乘法器可以減少乘法運算部分積個數,提高乘法運算的速度。

          下面討論一個M b



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潼南县| 府谷县| 阿尔山市| 济宁市| 荔波县| 西充县| 获嘉县| 胶州市| 东山县| 叶城县| 紫金县| 吴江市| 区。| 宣恩县| 峡江县| 读书| 永福县| 桦南县| 通渭县| 盐亭县| 逊克县| 石渠县| 岫岩| 吉安市| 兴文县| 中阳县| 青田县| 岳阳县| 柳州市| 中卫市| 天水市| 北票市| 闽侯县| 通州市| 铁岭县| 买车| 西昌市| 惠东县| 陈巴尔虎旗| 禹州市| 安国市|