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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA分布式算法的濾波器設(shè)計(jì)

          基于FPGA分布式算法的濾波器設(shè)計(jì)

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


          2 分布式的濾波器的軟件實(shí)現(xiàn)
          從式(5)和式(7)可以看出,利用實(shí)現(xiàn)一個(gè)N項(xiàng)乘積和,關(guān)鍵是如何實(shí)現(xiàn)式(4)中乘積項(xiàng)及各乘積項(xiàng)之和。
          中可以預(yù)先設(shè)定一個(gè)N位輸入的查找表來實(shí)現(xiàn)部分乘積項(xiàng),即預(yù)先設(shè)定N階濾波系統(tǒng)查找表,實(shí)現(xiàn)向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一個(gè)映射。由于查找表的地址空間與階數(shù)成指數(shù)關(guān)系(2N),完全用查找表來實(shí)現(xiàn)部分乘積項(xiàng)需要容量很大的存儲(chǔ)器,這就需要占用巨大的資源,而且功耗增加、速度降低。因此為了減小設(shè)計(jì)規(guī)模,可以將一個(gè)大的查找表分為幾個(gè)較小的查找表來實(shí)現(xiàn)。例如,本系統(tǒng)采用的8階FIR濾波器,則用一個(gè)查找表來實(shí)現(xiàn)需要256(28)位地址空間的ROM,將8階FIR濾波器分成兩個(gè)4階FIR濾波器實(shí)現(xiàn),只需要2個(gè)16(24)位地址空間的ROM,這樣大大地降低了設(shè)計(jì)規(guī)模和資源使用量。把輸入x(i)作為地址,分為高四位和低四位地址進(jìn)行查找。表1給出了8階濾波系統(tǒng)的低四位地址x(i)與p(i)的映射關(guān)系。

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


          本系統(tǒng)中濾波器系統(tǒng)函數(shù)采用Matlab中的fdatool工具,并根據(jù)設(shè)計(jì)要求采用了kaiser窗設(shè)計(jì)出濾波器的系統(tǒng)函數(shù)h(n),其采樣頻率為500 kHz,通頻帶帶寬為100 Hz。設(shè)計(jì)的低通濾波器如圖1所示。若需實(shí)現(xiàn)高通或帶通濾波器,只需在設(shè)計(jì)時(shí)利用高通或帶通濾波器代替低通濾波器即可。


          利用Verilog硬件描述語言設(shè)計(jì)本系統(tǒng)軟件,系統(tǒng)主要分為以下4個(gè)部分。包括頂層文件、A/D采樣、算法實(shí)現(xiàn)和D/A轉(zhuǎn)換。系統(tǒng)總體結(jié)構(gòu)如圖2所示。


          由于頻率為100 MHz,采用的ADC0809轉(zhuǎn)換頻率必須小于1 MHz,所以在頂層文件對(duì)系統(tǒng)時(shí)鐘進(jìn)行200分頻,提供外圍所需時(shí)鐘。然后對(duì)各模塊進(jìn)行例化,使之成為完整的系統(tǒng)。

          分頻器相關(guān)文章:分頻器原理


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