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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字下變頻的研究與實現(xiàn)

          基于FPGA的數(shù)字下變頻的研究與實現(xiàn)

          作者: 時間:2009-06-25 來源:網(wǎng)絡(luò) 收藏
          以第一級濾波器為例,具體方式如下:
          (1)由于系數(shù)的對稱性,可將有相同濾波系數(shù)的輸入數(shù)據(jù)先進行相加,只用其中4個系數(shù),簡化結(jié)構(gòu),節(jié)約資源。輸人數(shù)據(jù)為12 b,相加后位寬擴展一位為13 b。
          (2)采用全并行的DA結(jié)構(gòu),每一位數(shù)據(jù)都有一個深度為24的查找表,將數(shù)據(jù)每3位分為一組,最后一組為4位,每組查表結(jié)果移位相對應(yīng)位數(shù)后相加,結(jié)果輸入兩級流水線加法器陣,最后得到濾波輸出值。
          (3)設(shè)計中應(yīng)注意的三個問題:
          ①濾波器系數(shù)的量化,把系數(shù)擴大2L倍,最后輸出右移L位即可。
          ②查找表的建立。由于只有4個系數(shù),不用對系數(shù)進行分組分別查表以節(jié)省查找表資源。
          ③運算中數(shù)據(jù)位數(shù)的處理,不要溢出。
          第二級濾波器的跟第一級濾波器類似。

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


          4 仿真及結(jié)果分析
          芯片采用Altera公司的StratixⅡEP2S15F484C3,在QuartusⅡ7.2中布局布線后,資源消耗情況如表2所示。

          電路最大運行頻率為176.15 MHz,滿足要求。產(chǎn)生一個頻譜帶寬為5 MHz的掃頻信號,將該信號用頻率為70 MHz的余弦信號混頻到中頻處,將其采樣后的值導(dǎo)入ModelSim 6.0中進行仿真,時序仿真結(jié)果如圖2所示。

          圖2中上方為輸入中頻信號,下方為輸出I路信號。由圖可見,I路得到了原掃頻信號,驗證了設(shè)計的正確性。
          下面考慮另一種下方案進行比較。如果對相同的信號以60 MHz的速率進行采樣,則NCO的頻率為10 MHz,正余弦樣本值的周期為6,需要用到兩個乘法器進行混頻,設(shè)計出的濾波器階數(shù)也增加了。布局布線后消耗的資源超過了前面的設(shè)計。

          5 結(jié) 語
          由以上討論可知,選擇合適的采樣率的好處如下:
          (1)可以減少NCO的樣本值數(shù),從而減少混頻時的資源消耗;
          (2)可以簡化抽取濾波器的設(shè)計。
          同時,使用并行DA算法的濾波器,則可以用較小的硬件資源高速率的濾波功能。正是以上優(yōu)點,本文設(shè)計的方案以較少的資源完成了信號的,有重要的實用價值。


          上一頁 1 2 下一頁

          評論


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