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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于多速率DA的根升余弦濾波器的FPGA實(shí)現(xiàn)

          基于多速率DA的根升余弦濾波器的FPGA實(shí)現(xiàn)

          作者: 時(shí)間:2009-11-11 來源:網(wǎng)絡(luò) 收藏

          2.2 FIR的多相表示
          設(shè)FIR轉(zhuǎn)移函數(shù)為:

          本文引用地址:http://www.ex-cimer.com/article/191894.htm


          式中:N為長度。假設(shè)滿足條件N=DQ(其中D,Q為整數(shù)),則H(z1)可以寫成:


          根據(jù)文獻(xiàn)[7],傳統(tǒng)的濾波后再抽取的系統(tǒng)如圖3所示。

          圖3中,T2=DT1??梢钥闯觯矸e運(yùn)算在下采樣之前進(jìn)行。通過對(duì)進(jìn)行多相分解,得到多相分解表示如圖4所示。

          Ek(z1D)相當(dāng)于一組濾波器,利用多采樣率系統(tǒng)中結(jié)構(gòu)的互易性對(duì)濾波器位置進(jìn)行等效變換,將抽取操作前置,這樣卷積運(yùn)算已經(jīng)變換到在低抽樣率下進(jìn)行,濾波運(yùn)算量減少到原來的1/D,大大減少運(yùn)算量,如圖5所示。

          由圖5可知,每相仍然相當(dāng)于低階的FIR濾波器,下節(jié)對(duì)其采用DA算法,可以看到運(yùn)算速度將進(jìn)一步提高,運(yùn)算量也將大幅減少。


          3 DA根升余弦濾波器的結(jié)構(gòu)及其實(shí)現(xiàn)
          按查找表的方式,DA算法可以分為串行實(shí)現(xiàn)方式和位并行實(shí)現(xiàn)方式兩種。本文采用位并行方式實(shí)現(xiàn)。因?yàn)楸疚尼槍?duì)的是一個(gè)48階平方根升余弦濾波器,從表1可以看到結(jié)構(gòu)是對(duì)稱的,LUT的規(guī)模隨地址空間,也就是輸入系數(shù)N的增加而呈指數(shù)增加。這里系數(shù)N=48,用單個(gè)LUT不能夠執(zhí)行全字(輸入LUT位寬等于系數(shù)的數(shù)量)。為了減小LUT的規(guī)模,根據(jù)文獻(xiàn)[8]可以利用部分表計(jì)算,并將結(jié)果相加,即用m個(gè)濾波系數(shù)為k的濾波單元構(gòu)成系數(shù)為N(N=m×k)的濾波單元。如果再加上流水線寄存器,這一改進(jìn)并沒有降低速度,卻可以極大地減少設(shè)計(jì)規(guī)模,這里采用4輸入LUT,如圖6所示。考慮濾波器的對(duì)稱性,需要6種LUT,對(duì)于每個(gè)4輸入LUT:
          b0~b3為x[n]~x[n-3]的第0位,構(gòu)成了一組查找表的查找地址。
          LUT表中存儲(chǔ)的是所有可能使用到的數(shù)值,是濾波器系數(shù)的16種組合形式。



          關(guān)鍵詞: FPGA 多速率 濾波器

          評(píng)論


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