久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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

作者: 時間:2012-06-18 來源:網絡 收藏

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

本文引用地址:http://cqxgywz.com/article/190237.htm

g.JPG


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



評論


相關推薦

技術專區

關閉