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

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 快速實現(xiàn)基于FPGA的脈動FIR濾波器

          快速實現(xiàn)基于FPGA的脈動FIR濾波器

          ——
          作者:鄧路寬,程 翥,皇甫堪 時間:2007-07-18 來源:電子工程師 收藏

          引言

            目前,用(現(xiàn)場可編程門陣列)實現(xiàn)FIR(有限沖擊響應(yīng))濾波器的方法大多利用中LUT(查找表)的特點采用DA(分布式算法)或CSD碼等方法,將乘加運算操作轉(zhuǎn)化為位與、加減和移位操作。這些結(jié)構(gòu)需要占用器件較多的LE(邏輯元件)資源,設(shè)計周期長,工作頻率低,實時性差。本文提出一種基于Stratix系列器件的新的實時高速的快速實現(xiàn)方法。利 用FGPA集成的DSP(數(shù)字信號處理器)乘加模塊定制卷積運算單元,利用VHDL(甚高速集成電路硬件描述語言)元件例化語句快速生成脈動陣列結(jié)構(gòu)的FIR濾波器,設(shè)計周期短、可移植性強,設(shè)計采用全流水結(jié)構(gòu),能高速、無滯后地實現(xiàn)實時信號處理。

          1 設(shè)計指標及參數(shù)量化

          1.1 濾波器技術(shù)指標

            本文依據(jù)以下技術(shù)指標設(shè)計一個64階等波紋濾波器:Fs=4.092 MHz;Fpass=1.4 MHz,fstop=1.6 MHz;Wpass<1 dB,Wstop<-50 dB。使用MATLAB中FDA-Tool工具獲得濾波器系數(shù)。

          1.2 參數(shù)量化

            從FDATool中得到的濾波器系數(shù)值是一組浮點小數(shù),必須量化為定點數(shù)才能在FPGA器件中實現(xiàn)。本文采用移位舍入的量化方法對濾波器系數(shù)進行量化,MATLAB描述為:

           

            得到64階系數(shù)。濾波器系數(shù)預先存入器件內(nèi)部ROM中,通過修改coet.mif文件中的參數(shù)可以改變?yōu)V波器的類型或參數(shù)。使用altera_mf庫中altsyncram元件可以直接調(diào)用ROM中保存的數(shù)據(jù)。其調(diào)用語句描述如下:

           

          2 FIR設(shè)計

          2.1 器件簡介

            Stratix系列FPGA內(nèi)部提供了豐富的硬功能模塊,如片內(nèi)RAM、PLL(鎖相環(huán))、DSP模塊等,充分理解這些模塊的結(jié)構(gòu)特點和工作原理,掌握其使用方法,可以充分利用器件資源,最大程度地發(fā)揮器件在整個系統(tǒng)設(shè)計中的作用,使系統(tǒng)設(shè)計最優(yōu)化。提供的DSP模塊集成了乘、加/減/累加、求和這幾種算術(shù)操作,支持符號數(shù)、無符號數(shù)和混合運算,并且在這些計算路徑中集成了可選的寄存器級和全局/局部時鐘控制。一個DSP塊最多可以配置成8個9

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(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); })();