基于FPGA的無線信道模擬器設(shè)計
摘要:為了縮短研發(fā)周期,需要在實(shí)驗(yàn)室模擬出無線信道的各種傳播特性,無線信道模擬器設(shè)計必不可少。采用基于頻率選擇性信道Jakes仿真器模型,使用Xilinx公司的VIrtex-2p模擬實(shí)現(xiàn)了頻率選擇性衰落信道,最后將數(shù)據(jù)通過串口上傳到Matlab分析信道的統(tǒng)計特性。
關(guān)鍵詞:無線信道;FPGA;Matlab;信道模擬器
0 引言
隨著人們對無線通信需求和質(zhì)量的要求越來越高,無線通信設(shè)備的研發(fā)也變得越來越復(fù)雜,系統(tǒng)測試在整個設(shè)備研發(fā)過程中所占的比重也越來越大。為了更加方便地對所設(shè)計的系統(tǒng)進(jìn)行調(diào)試和測試,無線信道模擬器是進(jìn)行無線通信系統(tǒng)硬件測試不可或缺的儀器之一。目前,關(guān)于無線信道的模型研究比較多,而基于理論模型的硬件實(shí)現(xiàn)并不是很廣泛,同時成品十分昂貴,所以利用FPGA實(shí)現(xiàn)無線信道模擬器變得很有意義,節(jié)約了成本,而且也便于實(shí)現(xiàn)。FPGA是在PLD的基礎(chǔ)上發(fā)展起來的高性能可編程邏輯器件,使用FPGA進(jìn)行數(shù)字邏輯設(shè)計,開發(fā)過程的投資較少,研制和開發(fā)的時間較短,并且因?yàn)橐_的可分配性電路一般比較簡單,修改和優(yōu)化比較方便,并且在實(shí)際中易于使用。同時由于FPGA并行運(yùn)算的特點(diǎn),在大規(guī)模的數(shù)字運(yùn)算中很有優(yōu)勢,延時很小。
1 頻率選擇性衰落信道模型
多徑傳播信道的信道脈沖響應(yīng)模式是模擬一個離散的廣義平穩(wěn)非相關(guān)散射模型(WSSUS)。這樣的頻率選擇性衰落信道應(yīng)該滿足兩個假設(shè)條件:
(1)在時間t(可能是幾個碼元長度)內(nèi),衰落的統(tǒng)計特性是平穩(wěn)的;
(2)電波到達(dá)角和傳播時延是統(tǒng)計獨(dú)立變量。
時變頻率選擇性衰落信道的確定仿真模型如圖1所示。
Jakes在參考文獻(xiàn)中介紹了一種單徑衰落信道的仿真,且在此基礎(chǔ)上提出了一種對頻率選擇性衰落信道的仿真方法。在原來第l徑中的多普勒相移bnl的基礎(chǔ)上,加上一個附加相移rnl,成為新的多普勒相移bnl+rnl,且保持其他參數(shù)不變。為了保證各個可分辨多徑之間相互獨(dú)立,所以必須選擇合適的bnl和rnl,其中比較簡單的一種方法是:
所以在參數(shù)bnl和rnl分別滿足式(1)和式(2)的情況下:
2 信道模擬器的FPGA設(shè)計
FPGA采用Xilinx公司的Virtex-2p,其中芯片工作時鐘為100MHz。本文設(shè)置N0=8,fm=200 Hz,
為了計算方便,將所得的值擴(kuò)大32倍,也就是左移5位之后四舍五入成整數(shù)值,存入寄存器調(diào)用。所以信道模擬器的實(shí)現(xiàn)過程主要為各個正弦波的FPGA實(shí)現(xiàn),與對應(yīng)的系數(shù)相乘疊加成單徑衰落,輸入信號經(jīng)過l個路徑時延之后疊加成為輸出信號。
2.1 正弦波的FPGA實(shí)現(xiàn)
FPGA產(chǎn)生正弦波一般可以采用直接產(chǎn)生和Xilinx或者Altera利用自帶DDS的IP核例化實(shí)現(xiàn)。FPGA直接產(chǎn)生是將三角函數(shù)值存入ROM中循環(huán)調(diào)用來產(chǎn)生正弦波,這樣占用的邏輯資源比較少,缺點(diǎn)就是過程很麻煩而且不夠靈活,模型需要8種頻率的正弦波和余弦波,而且fm也可能根據(jù)需要而變化,每一次變化就需要在ROM中重新賦初值,十分麻煩。因此本文選擇調(diào)用Xilinx自帶DDS的IP核,通過邏輯資源換取效率。DDS的模塊圖如圖2所示。
這樣,通過控制DATA的值得到所需頻率的正弦波。,其中fclk為開發(fā)工作時鐘,DATA為輸入的頻率控制字,B為DATA的位寬,fout為所得的頻率。
2.2 時延模塊的FPGA實(shí)現(xiàn)
輸入通過時延后與各路徑的衰落系數(shù)相乘,然后各個路徑疊加成輸出信號。本文中時延采用計數(shù)分頻來實(shí)現(xiàn),如延遲1μs,工作時鐘為100MHz,所以計算100個時鐘周期后,將輸入的值存入寄存器1,再計算100個時鐘周期后將輸入值存入寄存器2,依次類推,本為路徑l設(shè)置為5,所以最終有5個寄存器存放輸入值。
2.3 測試模塊的FPGA實(shí)現(xiàn)
最后需要將算得的數(shù)據(jù)上傳到Matlab進(jìn)行統(tǒng)計分析,所以還需要FPGA串口驅(qū)動,以及Matlab打開驅(qū)動讀取FPGA算完的數(shù)據(jù)。根據(jù)異步串行通信的數(shù)據(jù)傳送格式,每一幀數(shù)據(jù)由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成,本文只選取了數(shù)據(jù)位,一共8位。通過串/并轉(zhuǎn)換接收數(shù)據(jù),算完后存入RAM,然后調(diào)用數(shù)據(jù),通過并/串轉(zhuǎn)換傳輸數(shù)據(jù)。
正弦波的輸出有10位,其中l(wèi)位是符號位,另外9位是小數(shù)位,而系數(shù)左移5位后化成整數(shù),在所得的整數(shù)中也有5位小數(shù)位,所以最終數(shù)據(jù)一共有19位,其中5位整數(shù)位,14位小數(shù)位。因?yàn)榇谑?位一幀數(shù)據(jù),為了運(yùn)算簡便,選取了5位整數(shù)位,11位小數(shù)位,舍去最后3位小數(shù),每個數(shù)分兩次傳輸。因?yàn)樽詈蟮臄?shù)據(jù)分為實(shí)部和虛部,所以每個復(fù)數(shù)需要4幀數(shù)據(jù)傳輸。Matlab接收數(shù)據(jù)重新組合,還原成FPGA的計算結(jié)果。
3 模擬器的性能測試與分析
開發(fā)板的工作時鐘為100 MHz,DDS IP核延遲2個時鐘周期有輸出值,乘法器延遲1個時鐘周期有輸出值,所以系統(tǒng)總共有3個時鐘周期的延遲。串口傳輸數(shù)據(jù)比較慢,而且數(shù)據(jù)量太大容易出錯,所以將工作時鐘分別進(jìn)行100倍分頻上傳衰落信道第一徑的25 000個數(shù)據(jù)進(jìn)行觀察,工作時鐘變成1 MHz,將所得的幅度譜轉(zhuǎn)化成功率形式后如圖3所示,fclk=1 MHz的Matlab仿真如圖4所示。
圖3和圖4中橫軸單位均為s,縱軸單位均為dB。通過比較圖3和圖4發(fā)現(xiàn)實(shí)際產(chǎn)生的結(jié)果與仿真結(jié)果大致相同,也因?yàn)橄禂?shù)的取整和最后上傳數(shù)據(jù)的截斷有少許誤差,基本滿足要求。
4 結(jié)語
本文采用Jakes改進(jìn)模型,基于FPGA模擬了無線信道的傳輸特性,最終經(jīng)過驗(yàn)證基本滿足要求。為了簡化實(shí)現(xiàn)過程,將系數(shù)取整以及傳輸數(shù)據(jù)進(jìn)行截斷,產(chǎn)生一些誤差,在這方面可以采用浮點(diǎn)數(shù)表示系數(shù)得到更精確的值。