基于GNU Radio 和USRP 的無線通信系統(tǒng)建模仿真
0 引言
本文引用地址:http://www.ex-cimer.com/article/201809/388600.htm無線通信技術正處在飛速發(fā)展的階段,并開始廣泛運用于個人、商業(yè)、軍事等多個領域。隨著無線通信系統(tǒng)復雜度的日益上升,使用傳統(tǒng)的分析方法來評估和設計無線通信系統(tǒng)已經變得十分困難;采用硬件原型測試的方法由于實現(xiàn)成本高、難度大,往往在系統(tǒng)開發(fā)的后期才能得以實現(xiàn);以軟件為基礎的建模仿真方法則能夠使研究和開發(fā)人員在花費較少的人力和財力的情況下,獲得接近真實系統(tǒng)的評估能力,因此成為了通信系統(tǒng)開發(fā)前期主要的設計和驗證手段。目前,無線通信系統(tǒng)的建模仿真主要通過Matlab Simulink,SystemView,SPW等軟件實現(xiàn)。但對于特性變化快、易受干擾的無線傳輸環(huán)境來說,上述基于純軟件的建模仿真手段難以對系統(tǒng)實現(xiàn)快速和準確的測試、分析和評估。
本文提出將軟件無線電開發(fā)平臺GNU Radio和通用軟件無線電外設USRP(Universal Software Radio Pe-ripheral)組成的軟件無線電系統(tǒng)用于無線通信系統(tǒng)的建模仿真,首先分析了該系統(tǒng)的軟件特性和硬件結構;隨后對MPSK 調制系統(tǒng)分別建立基于仿真信道和實際信道的通信鏈路模型,進行誤碼率測試的對比實驗,驗證該方法將實際無線信道納入系統(tǒng)仿真中的可行性;最后在采用實際信道的鏈路模型基礎上,進一步設計并實現(xiàn)了無線視頻流傳輸原型系統(tǒng),能夠通過無線方式實現(xiàn)視頻流傳輸。分析和實驗結果表明相對于常用的軟件建模仿真手段,軟硬件結合的新方法能夠快速實現(xiàn)系統(tǒng)原型,將特性復雜、仿真困難的實際無線信道納入系統(tǒng)仿真模型中。
1 GNU Radio 和USRP組成的軟件無線電系統(tǒng)
1.1 軟件無線電
軟件無線電的概念于1992 年由Joseph Mitola正式提出。這一概念的提出和發(fā)展是針對于無線通信領域出現(xiàn)的多種體系并存、標準間競爭激烈的局面。軟件無線電的架構體系突破了無線通信系統(tǒng)以專用硬件為核心的傳統(tǒng)設計模式,通過將寬帶的AD和DA器件盡可能地靠近射頻天線,盡早地將獲得的模擬信號轉換成數(shù)字信號,并以通用硬件作為基本平臺,盡可能多地由通用處理器上的軟件實現(xiàn)無線及通信功能,以實現(xiàn)無線通信系統(tǒng)的可升級和可重配置。將軟件無線電技術應用于無線通信系統(tǒng)的建模仿真,能夠發(fā)揮其架構靈活、開放、軟硬件結合、多層次協(xié)同的特性,解決傳統(tǒng)軟件工具存在的一些局限。
軟件無線電發(fā)展至今,已有多套開源及商業(yè)系統(tǒng)可用于原型設計及通信系統(tǒng)研究,如微軟研究院推出的Sora 系統(tǒng)、弗吉尼亞理工大學的OSSIE(Open SourceSCA Implementation Embedded)項目等。其中,開源無線電軟件GNU Radio和通用軟件無線電外設USRP組成一套基于PC的軟件無線電系統(tǒng),是適用于無線通信系統(tǒng)建模仿真的較好的解決方案。
1.2 GNU Radio的軟件特性
GNU Radio 是基于軟件無線電思想開發(fā)的開源平臺,運行在Linux 系統(tǒng)上,遵循GNU 的GPL(GeneralPublic License)條款分發(fā)。作為一個軟件無線電開發(fā)平臺,GNU Radio具有很強的可重構性。通過它所提供的多種實用的信號處理模塊和將這些信號處理模塊連接起來的流圖機制,可以建立起不同的通信鏈路模型,滿足不同類型通信系統(tǒng)的需要。GNU Radio 主要用于通信鏈路的建模和仿真,其標準庫十分豐富,覆蓋了調制解調、信源編/解碼、信道編/解碼、多址接入、均衡、同步、濾波器設計、小波分析等常用的信號處理模塊,且有類似于Matlab Simulink框圖式結構的圖形化建模環(huán)境,能夠方便、快速地建立起鏈路級系統(tǒng)的模型。同時,出于運行效率的考慮,GNU Radio采用了數(shù)據通道和控制通道分離的兩級設計,其中C++用于描述需要較高運行效率的信號處理模塊,Python則用于模塊之間的配置和連接。
由于GNU Radio 采用了通用的編程語言Python 作為專門的控制通道,代替了單一的模塊連接機制,這樣除了能夠對信號處理模塊進行更方便地配置和管理之外,借助Python的靈活特性,還能實現(xiàn)在通信鏈路的上層建立網絡模型,進行整個通信協(xié)議的定制和設計,甚至與應用程序進行直接交互。這使得在GNU Radio中實現(xiàn)跨層次設計和聯(lián)合優(yōu)化成為可能。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_0.jpg)
以GNU Radio內建的測試程序為例具體分析,通過解析測試程序中的代碼可知,GNU Radio規(guī)定了如圖1所示的幀結構格式。最底層的幀結構提供了前導碼、同步碼用于接收端系統(tǒng)的頻率和時序同步;幀頭則提供幀長度、高斯白化偏置等信息;幀的上層結構提供了CRC(Cyclic Redundancy Check)校驗和發(fā)送包數(shù)目統(tǒng)計功能。此外,GNU Radio在MAC(Media Access Control)層還提供了載波監(jiān)聽多路訪問/沖突檢測機制,用于檢測當前信道上的信號沖突。當USRP 接收到的信號幅度大于設定的門限值時,則認為該信道被占用,并采用二進制指數(shù)退避重傳算法等待重傳。通過USRP 數(shù)據的時間戳配合,亦可以在GNU Radio中實現(xiàn)分時隙傳輸?shù)某瑤Y構。同時,通過導入Socket模塊,Python 能夠方便地進行網絡編程。而調用TUN/TAP提供的虛擬以太網通道可以讓基于TCP/IP 的應用層程序直接加載到GNU Radio上,并通過GNU Radio所提供的通信系統(tǒng)進行通信。另外,上層網絡模型中的數(shù)據為異步數(shù)據,不能夠直接被通信鏈路上的同步信號處理模塊處理,對此,GNU Radio在網絡模型和鏈路模型之間使用了一個FIFO(First In First Out)緩存,實現(xiàn)了信號從異步到同步、由信息比特到基帶波形的轉換,將通信鏈路和上層網絡緊密地結合起來。
通過使用上述GNU Radio提供的功能和特性,研究和開發(fā)人員可以方便地構建起由通信鏈路和上層網絡模型組成的更為完整的通信系統(tǒng),并從全局性能的角度考慮,對定制的通信系統(tǒng)進行跨層次聯(lián)合設計和優(yōu)化。
1.3 USRP的硬件結構
在GNU Radio和USRP組成的軟件無線電系統(tǒng)中,GNU Radio 僅負責低速率基帶信號的處理,USRP 則充當了數(shù)字中頻和射頻前端的角色,對高通量信號進行處理?;谲浖o線電思想設計的USRP 的硬件結構具有靈活、通用的特性,能夠兼容當前無線通信的多種協(xié)議標準,為建立自定制協(xié)議和多標準融合的系統(tǒng)建模和測試提供了強大的支持。
如圖2 所示,USRP 的結構中主要包括了負責數(shù)字中頻處理的FPGA(Field Programmable Gate Array)、負責模/數(shù)與數(shù)/模轉換的ADC 與DAC 器件和負責射頻信號處理的射頻子板。在具體的收發(fā)過程中,接收端的天線捕捉空中的射頻信號,由射頻子板進行模擬域的下變頻,將信號由射頻移至中頻,然后通過A/D器件的轉換,進入數(shù)字域;FPGA 作為數(shù)字下變頻器,將信號從數(shù)字中頻進一步移至基帶,并同時完成信號的抽取工作,使信號速率降至通用處理器能夠處理的范圍;最后,通過控制芯片將低速率的基帶信號送入PC.發(fā)送端則完成一個大致相反的信號處理流程。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_1.jpg)
在USRP 的結構中,寬頻段、可更換的收發(fā)射頻子板和天線可以覆蓋多數(shù)無線協(xié)議標準所在的頻率范圍,ADC 和DAC 器件具有高采樣速率和較好的分辨率,基于FPGA的數(shù)字中頻處理和基于PC端軟件的基帶信號處理易于重構,靈活的總線結構的采用則降低了各硬件模塊之間的耦合性。當前的無線通信協(xié)議標準很多都工作在相近的頻段,在射頻端上亦有很大的相似性,協(xié)議標準的主要區(qū)別集中在基帶信號的處理上。USRP作為通用的射頻前端,基于軟件無線電思想設計,具有開放性、模塊化和高通用性的特點,因此能夠兼容絕大多數(shù)現(xiàn)有的通信協(xié)議標準,并且可以根據需要,在軟件層面自行定義通信系統(tǒng)的收發(fā)頻段和通信帶寬,進行無線通信系統(tǒng)的定制化設計。
2 基于實際信道環(huán)境的通信系統(tǒng)模型實現(xiàn)
無線信道穩(wěn)定性較差,信道特性會隨著地形、地貌以及信號頻率和傳播方式的變化而變化,而且不可避免地會受到陰影效應和多徑衰落的影響。因此,在實際無線通信系統(tǒng)的鏈路級仿真中,通常需要建立準確的信道模型來預測系統(tǒng)的整體性能和評估信號處理算法的優(yōu)劣。但由于真實的無線信道具有時變特性,建立高精度的仿真信道模型難度很大,且仿真模型也很難做到和實際信道完全匹配,結合硬件原型進行實際環(huán)境測試的做法在設計前期難以實現(xiàn),這一直是無線通信系統(tǒng)仿真中的難以解決的問題。而GNU Radio與USRP軟硬件無縫連接的特性有效地改善了傳統(tǒng)硬件原型建立困難的局限,通過快速實現(xiàn)無線通信系統(tǒng)的硬件原型,將真實的無線信道環(huán)境納入仿真過程中,對信道特性進行評估。
2.1 通信鏈路建模仿真對比
相移鍵控PSK(Phase-Shift Keying)利用載波的多種不同相位狀態(tài)來進行數(shù)字信號的調制,相比幅移鍵控和頻移鍵控調制系統(tǒng),在頻帶利用率和抗噪聲性能方面均有優(yōu)勢,因此在中、高速數(shù)據傳輸中得到了廣泛的應用。本部分使用GNU Radio 和USRP 對具體的MPSK 調制系統(tǒng)進行建模,通過軟件仿真、實際環(huán)境測試和結果的對比分析,驗證由GNU Radio和USRP無縫連接特性所帶來的硬件原型快速實現(xiàn)的能力,并說明該系統(tǒng)相比傳統(tǒng)仿真軟件在評估實際信道環(huán)境方面的優(yōu)勢。為了能夠最大程度地減小仿真模型和實際測試模型在基帶信號處理上的差別,實驗調用GNU Radio中的模塊建立仿真模型,然后去除仿真信道,其他部分采用相同的模塊配合USRP實現(xiàn)硬件原型。為此,需要在仿真模型中加入加擾、解擾、載波頻偏恢復和信號時序恢復等實際信號傳輸中所需的模塊。仿真系統(tǒng)的構建如圖3所示。在該系統(tǒng)的發(fā)送端,矢量信號源負責產生信號;信號被送入加擾模塊進行信道編碼,做偽隨機化處理;編碼后,信號進入MPSK 模塊進行調制。系統(tǒng)的接收端調用MPSK解調模塊進行信號解調,在該模塊中已經插入了載波頻偏恢復和信號時序恢復的子模塊;最后對信號進行相應的解包和解擾操作,并與預設信號對比,獲得誤碼率數(shù)據。在解調模塊中還調用了信號強度探針,用來獲得當前信號的信噪比大小。發(fā)送端與接收端之間則通過加性高斯白噪聲信道模塊連接,以仿真整個鏈路級的通信過程。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_2.jpg)
對上述仿真系統(tǒng)只需進行收發(fā)部分的分離和簡單修改,即可配合USRP設備實現(xiàn)該系統(tǒng)的硬件原型。見圖4,發(fā)送端經MPSK調制后的信號被送入USRP模塊,該模塊對射頻信號的發(fā)射參數(shù)進行配置,然后由USRP設備進行上變頻等處理并發(fā)送到實際環(huán)境中;經過室內實際信道傳輸,接收端的USRP捕捉到環(huán)境中的射頻信號,并進行射頻和數(shù)字中頻的相應處理,最后輸出數(shù)字基帶信號到GNU Radio中的MPSK解調模塊,做后續(xù)的基帶信號處理。這樣,使用兩臺USRP設備就能夠建立起通過實際信道進行信號收發(fā)的系統(tǒng)硬件原型。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_3.jpg)
對上面建立的仿真模型和硬件原型,分別調用BPSK,QPSK,8PSK,16PSK 四種調制方式,進行加性高斯白噪聲信道的仿真和實際環(huán)境下的測試。測試在約15 m2大小的室內環(huán)境中進行,每個測試點對30 min內采集到的信噪比和誤碼率數(shù)據進行平均化處理,對比仿真結果,獲得如圖5所示的誤碼率曲線。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_4.jpg)
從測試結果生成的曲線可以得知,低信噪比情況下,室內環(huán)境測試所得的數(shù)據與仿真信道下測得的數(shù)據符合較好;在高信噪比情況下,尤其在高階調制模式下,實際測試數(shù)據與仿真信道下測得的數(shù)據產生了較大偏離,在同樣誤碼率情況下,偏離可能達到2~3 dB.由MPSK調制系統(tǒng)的理論分析可知,高階調制模式相比低階調制對噪聲更為敏感,受載波頻率和相位恢復模塊引入的相位噪聲影響也更大,容易對誤碼率數(shù)據產生影響。從實際的測試過程來看,室內環(huán)境由于人、物移動引起的信號遮擋和散射造成信號傳播路徑的變化,會使信號的信噪比產生5~10 dB左右大范圍變動的現(xiàn)象,這也是測試數(shù)據與仿真曲線偏離的原因之一。由此看來,在低誤碼率的情況和高階調制模式下,理想的加性高斯白噪聲的仿真信道不足以精確描述實際的室內信道特性。
2.2 無線視頻流傳輸系統(tǒng)原型
通過GNU Radio 靈活的軟件特性和Python 的編程能力,可以進一步在上述鏈路級模型的基礎上,建立基于實際無線信道傳輸?shù)臒o線通信系統(tǒng)原型。以無線視頻流傳輸系統(tǒng)為例,本文設計了如圖6 所示的系統(tǒng)結構,并據此實現(xiàn)了相應的原型系統(tǒng)。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_5.jpg)
在系統(tǒng)發(fā)送端,視頻采集設備從真實環(huán)境中實時采集視頻流數(shù)據,經過PC上的視頻編碼程序編碼后送到設定好的TCP或UDP網絡端口;通過Socket網絡編程方法,可以方便地綁定網絡端口,將視頻流數(shù)據送入GNU Radio中的程序進行處理;GNU Radio中的程序對網絡端口的數(shù)據流做進一步的MAC 層成幀和同步處理,然后進行基帶信號的調制和編碼工作,最后送入USRP發(fā)射。接收端系統(tǒng)則進行大致相反的處理流程,經過解碼后的視頻流數(shù)據可以在相應的顯示器上顯示。
在實際測試過程中,該原型系統(tǒng)能夠正確顯示視頻采集端采集到的視頻信號,達到了預想的效果,如圖7所示。其架構具有很強的靈活性和可擴展性,包括視頻格式、視頻編/解碼方式、分組幀結構、信道編/解碼、信號調制方式、傳輸頻段和傳輸帶寬在內的各個部分均易于調整和修改,這便于研究和開發(fā)人員根據視頻信號在實際信道中的傳輸效果進行整體系統(tǒng)的定制性設計和優(yōu)化。
![](http://uphotos.eepw.com.cn/fetch/20180719/388600_1_6.jpg)
2.3 實驗結果分析
上述實驗表明,GNU Radio建立的鏈路模型能夠幾乎不經修改地通過USRP進行實際信號的發(fā)射和接收,實現(xiàn)無線通信系統(tǒng)原型,并進一步用于室內外等常見真實環(huán)境下的系統(tǒng)測試。相比純軟件仿真結果,結合硬件原型進行測試將實際信道納入仿真過程,使研究和開發(fā)人員在早期階段就能夠對目標傳輸頻率和傳輸環(huán)境下的信道進行研究,對傳輸過程中的路徑損耗、頻段上其他系統(tǒng)的干擾、信道特性的變化等因素進行合理評估。
實際信道測試的結果對于系統(tǒng)后期開發(fā)也有更強的指導意義。借助該方法進行原型測試,能夠使無線通信系統(tǒng)開發(fā)中的問題在早期迅速浮現(xiàn),并在系統(tǒng)規(guī)劃和設計階段就被解決,有助于減少后期設計迭代過程的產生,縮短整個系統(tǒng)的設計流程。
3 結語
本文提出將軟件無線電開發(fā)平臺GNU Radio和通用軟件無線電外設USRP 組成的軟件無線電系統(tǒng)用于無線通信系統(tǒng)的建模仿真。首先介紹并分析了GNURadio的軟件特性和USRP的硬件架構;隨后以MPSK系統(tǒng)在仿真信道和實際信道下的通信鏈路建模仿真對比實驗為例,驗證了該方法將實際的無線信道納入鏈路層仿真中的可行性;最后在前述鏈路級模型的基礎上,設計并實現(xiàn)了一套基于實際無線信道收發(fā)的無線視頻流傳輸原型系統(tǒng)。分析和實驗結果表明,本文所提出的具有軟硬件結合特性新方法具有快速系統(tǒng)原型實現(xiàn)的能力,而且通過引入實際信道進行仿真,能夠避免復雜的信道建模過程,直接建立更精確的通信系統(tǒng)模型,提高對系統(tǒng)分析的速度和準確性,并可以基于仿真分析結果進行系統(tǒng)各部分的聯(lián)合設計和優(yōu)化。
該方法適用于對通信協(xié)議標準及整體系統(tǒng)有定制化需求、針對的傳輸環(huán)境較復雜的無線通信系統(tǒng)的研究開發(fā),有助于減少系統(tǒng)開發(fā)后期的迭代過程,縮短系統(tǒng)的研發(fā)周期。
評論