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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的無線信道模擬器設計

          基于FPGA的無線信道模擬器設計

          作者: 時間:2012-06-18 來源:網(wǎng)絡 收藏

          2 設計
          采用Xilinx公司的Virtex-2p,其中芯片工作時鐘為100MHz。本文設置N0=8,fm=200 Hz,
          f.JPG
          為了計算方便,將所得的值擴大32倍,也就是左移5位之后四舍五入成整數(shù)值,存入寄存器調用。所以的實現(xiàn)過程主要為各個正弦波的實現(xiàn),與對應的系數(shù)相乘疊加成單徑衰落,輸入信號經(jīng)過l個路徑時延之后疊加成為輸出信號。
          2.1 正弦波的FPGA實現(xiàn)
          FPGA產(chǎn)生正弦波一般可以采用直接產(chǎn)生和Xilinx或者Altera利用自帶DDS的IP核例化實現(xiàn)。FPGA直接產(chǎn)生是將三角函數(shù)值存入ROM中循環(huán)調用來產(chǎn)生正弦波,這樣占用的邏輯資源比較少,缺點就是過程很麻煩而且不夠靈活,模型需要8種頻率的正弦波和余弦波,而且fm也可能根據(jù)需要而變化,每一次變化就需要在ROM中重新賦初值,十分麻煩。因此本文選擇調用Xilinx自帶DDS的IP核,通過邏輯資源換取效率。DDS的模塊圖如圖2所示。

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

          g.JPG


          這樣,通過控制DATA的值得到所需頻率的正弦波。h.JPG,其中fclk為開發(fā)工作時鐘,DATA為輸入的頻率控制字,B為DATA的位寬,fout為所得的頻率。
          2.2 時延模塊的FPGA實現(xiàn)
          輸入通過時延后與各路徑的衰落系數(shù)相乘,然后各個路徑疊加成輸出信號。本文中時延采用計數(shù)分頻來實現(xiàn),如延遲1μs,工作時鐘為100MHz,所以計算100個時鐘周期后,將輸入的值存入寄存器1,再計算100個時鐘周期后將輸入值存入寄存器2,依次類推,本為路徑l設置為5,所以最終有5個寄存器存放輸入值。
          2.3 測試模塊的FPGA實現(xiàn)
          最后需要將算得的數(shù)據(jù)上傳到Matlab進行統(tǒng)計分析,所以還需要FPGA串口驅動,以及Matlab打開驅動讀取FPGA算完的數(shù)據(jù)。根據(jù)異步串行通信的數(shù)據(jù)傳送格式,每一幀數(shù)據(jù)由起始位、數(shù)據(jù)位、奇偶校驗位和停止位組成,本文只選取了數(shù)據(jù)位,一共8位。通過串/并轉換接收數(shù)據(jù),算完后存入RAM,然后調用數(shù)據(jù),通過并/串轉換傳輸數(shù)據(jù)。
          正弦波的輸出有10位,其中l(wèi)位是符號位,另外9位是小數(shù)位,而系數(shù)左移5位后化成整數(shù),在所得的整數(shù)中也有5位小數(shù)位,所以最終數(shù)據(jù)一共有19位,其中5位整數(shù)位,14位小數(shù)位。因為串口是8位一幀數(shù)據(jù),為了運算簡便,選取了5位整數(shù)位,11位小數(shù)位,舍去最后3位小數(shù),每個數(shù)分兩次傳輸。因為最后的數(shù)據(jù)分為實部和虛部,所以每個復數(shù)需要4幀數(shù)據(jù)傳輸。Matlab接收數(shù)據(jù)重新組合,還原成FPGA的計算結果。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();