<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于FPGA的高速FIR數(shù)字濾波器的設(shè)計

          基于FPGA的高速FIR數(shù)字濾波器的設(shè)計

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

            1 引 言

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

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

            2 Matlab設(shè)計濾波器參數(shù)

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

            

            利用Matlab為設(shè)計FIR濾波器提供的工具箱,選擇濾波器類型為低通FIR,設(shè)計方法為窗口法,階數(shù)為16,窗口類型為Hamming,Beta為0.5,F(xiàn)s為8.6 kHz,F(xiàn)C為3.4 kHz,導(dǎo)出的濾波器系數(shù)如下:

            

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

            (1) 分布式算法

            分布式算法在完成乘加功能時是通過將各輸入數(shù)據(jù)每一對應(yīng)位產(chǎn)生的部分積預(yù)先相加形成相應(yīng)的部分積,然后再對各部分積進行累加得到最終結(jié)果。

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

            

            (2) 乘法器設(shè)計

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

            3.1 Booth算法

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

            下面討論一個M b



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();