新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于GNU Radio 和USRP 的無線通信系統建模仿真

        基于GNU Radio 和USRP 的無線通信系統建模仿真

        作者: 時間:2018-09-06 來源:網絡 收藏

        0 引言

        本文引用地址:http://www.104case.com/article/201809/388600.htm

        無線通信技術正處在飛速發展的階段,并開始廣泛運用于個人、商業、軍事等多個領域。隨著無線通信系統復雜度的日益上升,使用傳統的分析方法來評估和設計無線通信系統已經變得十分困難;采用硬件原型測試的方法由于實現成本高、難度大,往往在系統開發的后期才能得以實現;以軟件為基礎的建模仿真方法則能夠使研究和開發人員在花費較少的人力和財力的情況下,獲得接近真實系統的評估能力,因此成為了通信系統開發前期主要的設計和驗證手段。目前,無線通信系統的建模仿真主要通過Matlab Simulink,SystemView,SPW等軟件實現。但對于特性變化快、易受干擾的無線傳輸環境來說,上述基于純軟件的建模仿真手段難以對系統實現快速和準確的測試、分析和評估。

        本文提出將軟件無線電開發平臺GNU Radio和通用軟件無線電外設USRP(Universal Software Radio Pe-ripheral)組成的軟件無線電系統用于無線通信系統的建模仿真,首先分析了該系統的軟件特性和硬件結構;隨后對MPSK 調制系統分別建立基于仿真信道和實際信道的通信鏈路模型,進行誤碼率測試的對比實驗,驗證該方法將實際無線信道納入系統仿真中的可行性;最后在采用實際信道的鏈路模型基礎上,進一步設計并實現了無線視頻流傳輸原型系統,能夠通過無線方式實現視頻流傳輸。分析和實驗結果表明相對于常用的軟件建模仿真手段,軟硬件結合的新方法能夠快速實現系統原型,將特性復雜、仿真困難的實際無線信道納入系統仿真模型中。

        1 GNU Radio 和USRP組成的軟件無線電系統

        1.1 軟件無線電

        軟件無線電的概念于1992 年由Joseph Mitola正式提出。這一概念的提出和發展是針對于無線通信領域出現的多種體系并存、標準間競爭激烈的局面。軟件無線電的架構體系突破了無線通信系統以專用硬件為核心的傳統設計模式,通過將寬帶的AD和DA器件盡可能地靠近射頻天線,盡早地將獲得的模擬信號轉換成數字信號,并以通用硬件作為基本平臺,盡可能多地由通用處理器上的軟件實現無線及通信功能,以實現無線通信系統的可升級和可重配置。將軟件無線電技術應用于無線通信系統的建模仿真,能夠發揮其架構靈活、開放、軟硬件結合、多層次協同的特性,解決傳統軟件工具存在的一些局限。

        軟件無線電發展至今,已有多套開源及商業系統可用于原型設計及通信系統研究,如微軟研究院推出的Sora 系統、弗吉尼亞理工大學的OSSIE(Open SourceSCA Implementation Embedded)項目等。其中,開源無線電軟件GNU Radio和通用軟件無線電外設USRP組成一套基于PC的軟件無線電系統,是適用于無線通信系統建模仿真的較好的解決方案。

        1.2 GNU Radio的軟件特性

        GNU Radio 是基于軟件無線電思想開發的開源平臺,運行在Linux 系統上,遵循GNU 的GPL(GeneralPublic License)條款分發。作為一個軟件無線電開發平臺,GNU Radio具有很強的可重構性。通過它所提供的多種實用的信號處理模塊和將這些信號處理模塊連接起來的流圖機制,可以建立起不同的通信鏈路模型,滿足不同類型通信系統的需要。GNU Radio 主要用于通信鏈路的建模和仿真,其標準庫十分豐富,覆蓋了調制解調、信源編/解碼、信道編/解碼、多址接入、均衡、同步、濾波器設計、小波分析等常用的信號處理模塊,且有類似于Matlab Simulink框圖式結構的圖形化建模環境,能夠方便、快速地建立起鏈路級系統的模型。同時,出于運行效率的考慮,GNU Radio采用了數據通道和控制通道分離的兩級設計,其中C++用于描述需要較高運行效率的信號處理模塊,Python則用于模塊之間的配置和連接。

        由于GNU Radio 采用了通用的編程語言Python 作為專門的控制通道,代替了單一的模塊連接機制,這樣除了能夠對信號處理模塊進行更方便地配置和管理之外,借助Python的靈活特性,還能實現在通信鏈路的上層建立網絡模型,進行整個通信協議的定制和設計,甚至與應用程序進行直接交互。這使得在GNU Radio中實現跨層次設計和聯合優化成為可能。

        以GNU Radio內建的測試程序為例具體分析,通過解析測試程序中的代碼可知,GNU Radio規定了如圖1所示的幀結構格式。最底層的幀結構提供了前導碼、同步碼用于接收端系統的頻率和時序同步;幀頭則提供幀長度、高斯白化偏置等信息;幀的上層結構提供了CRC(Cyclic Redundancy Check)校驗和發送包數目統計功能。此外,GNU Radio在MAC(Media Access Control)層還提供了載波監聽多路訪問/沖突檢測機制,用于檢測當前信道上的信號沖突。當USRP 接收到的信號幅度大于設定的門限值時,則認為該信道被占用,并采用二進制指數退避重傳算法等待重傳。通過USRP 數據的時間戳配合,亦可以在GNU Radio中實現分時隙傳輸的超幀結構。同時,通過導入Socket模塊,Python 能夠方便地進行網絡編程。而調用TUN/TAP提供的虛擬以太網通道可以讓基于TCP/IP 的應用層程序直接加載到GNU Radio上,并通過GNU Radio所提供的通信系統進行通信。另外,上層網絡模型中的數據為異步數據,不能夠直接被通信鏈路上的同步信號處理模塊處理,對此,GNU Radio在網絡模型和鏈路模型之間使用了一個FIFO(First In First Out)緩存,實現了信號從異步到同步、由信息比特到基帶波形的轉換,將通信鏈路和上層網絡緊密地結合起來。

        通過使用上述GNU Radio提供的功能和特性,研究和開發人員可以方便地構建起由通信鏈路和上層網絡模型組成的更為完整的通信系統,并從全局性能的角度考慮,對定制的通信系統進行跨層次聯合設計和優化。

        1.3 USRP的硬件結構

        在GNU Radio和USRP組成的軟件無線電系統中,GNU Radio 僅負責低速率基帶信號的處理,USRP 則充當了數字中頻和射頻前端的角色,對高通量信號進行處理。基于軟件無線電思想設計的USRP 的硬件結構具有靈活、通用的特性,能夠兼容當前無線通信的多種協議標準,為建立自定制協議和多標準融合的系統建模和測試提供了強大的支持。

        如圖2 所示,USRP 的結構中主要包括了負責數字中頻處理的FPGA(Field Programmable Gate Array)、負責模/數與數/模轉換的ADC 與DAC 器件和負責射頻信號處理的射頻子板。在具體的收發過程中,接收端的天線捕捉空中的射頻信號,由射頻子板進行模擬域的下變頻,將信號由射頻移至中頻,然后通過A/D器件的轉換,進入數字域;FPGA 作為數字下變頻器,將信號從數字中頻進一步移至基帶,并同時完成信號的抽取工作,使信號速率降至通用處理器能夠處理的范圍;最后,通過控制芯片將低速率的基帶信號送入PC.發送端則完成一個大致相反的信號處理流程。

        在USRP 的結構中,寬頻段、可更換的收發射頻子板和天線可以覆蓋多數無線協議標準所在的頻率范圍,ADC 和DAC 器件具有高采樣速率和較好的分辨率,基于FPGA的數字中頻處理和基于PC端軟件的基帶信號處理易于重構,靈活的總線結構的采用則降低了各硬件模塊之間的耦合性。當前的無線通信協議標準很多都工作在相近的頻段,在射頻端上亦有很大的相似性,協議標準的主要區別集中在基帶信號的處理上。USRP作為通用的射頻前端,基于軟件無線電思想設計,具有開放性、模塊化和高通用性的特點,因此能夠兼容絕大多數現有的通信協議標準,并且可以根據需要,在軟件層面自行定義通信系統的收發頻段和通信帶寬,進行無線通信系統的定制化設計。

        2 基于實際信道環境的通信系統模型實現

        無線信道穩定性較差,信道特性會隨著地形、地貌以及信號頻率和傳播方式的變化而變化,而且不可避免地會受到陰影效應和多徑衰落的影響。因此,在實際無線通信系統的鏈路級仿真中,通常需要建立準確的信道模型來預測系統的整體性能和評估信號處理算法的優劣。但由于真實的無線信道具有時變特性,建立高精度的仿真信道模型難度很大,且仿真模型也很難做到和實際信道完全匹配,結合硬件原型進行實際環境測試的做法在設計前期難以實現,這一直是無線通信系統仿真中的難以解決的問題。而GNU Radio與USRP軟硬件無縫連接的特性有效地改善了傳統硬件原型建立困難的局限,通過快速實現無線通信系統的硬件原型,將真實的無線信道環境納入仿真過程中,對信道特性進行評估。

        2.1 通信鏈路建模仿真對比

        相移鍵控PSK(Phase-Shift Keying)利用載波的多種不同相位狀態來進行數字信號的調制,相比幅移鍵控和頻移鍵控調制系統,在頻帶利用率和抗噪聲性能方面均有優勢,因此在中、高速數據傳輸中得到了廣泛的應用。本部分使用GNU Radio 和USRP 對具體的MPSK 調制系統進行建模,通過軟件仿真、實際環境測試和結果的對比分析,驗證由GNU Radio和USRP無縫連接特性所帶來的硬件原型快速實現的能力,并說明該系統相比傳統仿真軟件在評估實際信道環境方面的優勢。為了能夠最大程度地減小仿真模型和實際測試模型在基帶信號處理上的差別,實驗調用GNU Radio中的模塊建立仿真模型,然后去除仿真信道,其他部分采用相同的模塊配合USRP實現硬件原型。為此,需要在仿真模型中加入加擾、解擾、載波頻偏恢復和信號時序恢復等實際信號傳輸中所需的模塊。仿真系統的構建如圖3所示。在該系統的發送端,矢量信號源負責產生信號;信號被送入加擾模塊進行信道編碼,做偽隨機化處理;編碼后,信號進入MPSK 模塊進行調制。系統的接收端調用MPSK解調模塊進行信號解調,在該模塊中已經插入了載波頻偏恢復和信號時序恢復的子模塊;最后對信號進行相應的解包和解擾操作,并與預設信號對比,獲得誤碼率數據。在解調模塊中還調用了信號強度探針,用來獲得當前信號的信噪比大小。發送端與接收端之間則通過加性高斯白噪聲信道模塊連接,以仿真整個鏈路級的通信過程。

        對上述仿真系統只需進行收發部分的分離和簡單修改,即可配合USRP設備實現該系統的硬件原型。見圖4,發送端經MPSK調制后的信號被送入USRP模塊,該模塊對射頻信號的發射參數進行配置,然后由USRP設備進行上變頻等處理并發送到實際環境中;經過室內實際信道傳輸,接收端的USRP捕捉到環境中的射頻信號,并進行射頻和數字中頻的相應處理,最后輸出數字基帶信號到GNU Radio中的MPSK解調模塊,做后續的基帶信號處理。這樣,使用兩臺USRP設備就能夠建立起通過實際信道進行信號收發的系統硬件原型。

        對上面建立的仿真模型和硬件原型,分別調用BPSK,QPSK,8PSK,16PSK 四種調制方式,進行加性高斯白噪聲信道的仿真和實際環境下的測試。測試在約15 m2大小的室內環境中進行,每個測試點對30 min內采集到的信噪比和誤碼率數據進行平均化處理,對比仿真結果,獲得如圖5所示的誤碼率曲線。

        從測試結果生成的曲線可以得知,低信噪比情況下,室內環境測試所得的數據與仿真信道下測得的數據符合較好;在高信噪比情況下,尤其在高階調制模式下,實際測試數據與仿真信道下測得的數據產生了較大偏離,在同樣誤碼率情況下,偏離可能達到2~3 dB.由MPSK調制系統的理論分析可知,高階調制模式相比低階調制對噪聲更為敏感,受載波頻率和相位恢復模塊引入的相位噪聲影響也更大,容易對誤碼率數據產生影響。從實際的測試過程來看,室內環境由于人、物移動引起的信號遮擋和散射造成信號傳播路徑的變化,會使信號的信噪比產生5~10 dB左右大范圍變動的現象,這也是測試數據與仿真曲線偏離的原因之一。由此看來,在低誤碼率的情況和高階調制模式下,理想的加性高斯白噪聲的仿真信道不足以精確描述實際的室內信道特性。

        2.2 無線視頻流傳輸系統原型

        通過GNU Radio 靈活的軟件特性和Python 的編程能力,可以進一步在上述鏈路級模型的基礎上,建立基于實際無線信道傳輸的無線通信系統原型。以無線視頻流傳輸系統為例,本文設計了如圖6 所示的系統結構,并據此實現了相應的原型系統。

        在系統發送端,視頻采集設備從真實環境中實時采集視頻流數據,經過PC上的視頻編碼程序編碼后送到設定好的TCP或UDP網絡端口;通過Socket網絡編程方法,可以方便地綁定網絡端口,將視頻流數據送入GNU Radio中的程序進行處理;GNU Radio中的程序對網絡端口的數據流做進一步的MAC 層成幀和同步處理,然后進行基帶信號的調制和編碼工作,最后送入USRP發射。接收端系統則進行大致相反的處理流程,經過解碼后的視頻流數據可以在相應的顯示器上顯示。

        在實際測試過程中,該原型系統能夠正確顯示視頻采集端采集到的視頻信號,達到了預想的效果,如圖7所示。其架構具有很強的靈活性和可擴展性,包括視頻格式、視頻編/解碼方式、分組幀結構、信道編/解碼、信號調制方式、傳輸頻段和傳輸帶寬在內的各個部分均易于調整和修改,這便于研究和開發人員根據視頻信號在實際信道中的傳輸效果進行整體系統的定制性設計和優化。

        2.3 實驗結果分析

        上述實驗表明,GNU Radio建立的鏈路模型能夠幾乎不經修改地通過USRP進行實際信號的發射和接收,實現無線通信系統原型,并進一步用于室內外等常見真實環境下的系統測試。相比純軟件仿真結果,結合硬件原型進行測試將實際信道納入仿真過程,使研究和開發人員在早期階段就能夠對目標傳輸頻率和傳輸環境下的信道進行研究,對傳輸過程中的路徑損耗、頻段上其他系統的干擾、信道特性的變化等因素進行合理評估。

        實際信道測試的結果對于系統后期開發也有更強的指導意義。借助該方法進行原型測試,能夠使無線通信系統開發中的問題在早期迅速浮現,并在系統規劃和設計階段就被解決,有助于減少后期設計迭代過程的產生,縮短整個系統的設計流程。

        3 結語

        本文提出將軟件無線電開發平臺GNU Radio和通用軟件無線電外設USRP 組成的軟件無線電系統用于無線通信系統的建模仿真。首先介紹并分析了GNURadio的軟件特性和USRP的硬件架構;隨后以MPSK系統在仿真信道和實際信道下的通信鏈路建模仿真對比實驗為例,驗證了該方法將實際的無線信道納入鏈路層仿真中的可行性;最后在前述鏈路級模型的基礎上,設計并實現了一套基于實際無線信道收發的無線視頻流傳輸原型系統。分析和實驗結果表明,本文所提出的具有軟硬件結合特性新方法具有快速系統原型實現的能力,而且通過引入實際信道進行仿真,能夠避免復雜的信道建模過程,直接建立更精確的通信系統模型,提高對系統分析的速度和準確性,并可以基于仿真分析結果進行系統各部分的聯合設計和優化。

        該方法適用于對通信協議標準及整體系統有定制化需求、針對的傳輸環境較復雜的無線通信系統的研究開發,有助于減少系統開發后期的迭代過程,縮短系統的研發周期。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鄂伦春自治旗| 永兴县| 壤塘县| 潜江市| 道孚县| 朝阳县| 通河县| 武冈市| 龙游县| 阿瓦提县| 韶关市| 彩票| 法库县| 桦甸市| 登封市| 吉安县| 夏邑县| 蚌埠市| 肥城市| 湖州市| 闸北区| 周至县| 泌阳县| 灵丘县| 孟村| 华蓥市| 连平县| 桓台县| 乌鲁木齐县| 区。| 耒阳市| 张掖市| 海林市| 贵港市| 象山县| 景德镇市| 海丰县| 永顺县| 遂溪县| 剑阁县| 屯门区|