林廣榮 林新榮 高時漢 褚慶昕



基于通用處理器的軟件無線電技術,使用高級程序語言實現無線電通信中的信號處理功能,這能夠更好地復用硬件平臺和提升開發效率。文章基于開源的軟件無線電平臺GNU Radio,給出了一種軟件無線電架構的窄帶衛星收發信機的工程實現方案,并通過實際上星測試驗證了方案的可行性,可為衛星通信產品的研發提供測試和驗證的途徑。
軟件無線電 GNU Radio 衛星通信
1 引言
衛星通信具有通信范圍廣、無需建設地面基站等優點,是重要的戰略通信手段。隨著通信技術的發展,衛星通信從簡單的點到點通信,逐步向復雜星狀/網狀組網、多波束移動通信等方向發展。但由于未能像地面移動通信一樣形成統一的空口標準,導致衛星通信的體制和設備種類繁多,終端廠商研發成本巨大。
軟件無線電(SDR)[1-2]的基本思想是以通用的硬件平臺為依托,通過軟件編程實現無線電臺的各種功能。因此,將軟件無線電技術應用到衛星通信領域,有助于降低衛星設備的硬件升級成本和研發周期。此外,軟件無線電的上述特性也可用于實現通用的衛星終端測試和驗證設備/平臺,支撐衛星通信終端產品的研制。
本文提出了一種軟件無線電架構的窄帶衛星收發信機實現方案。本文的第2節介紹了一種基于通用處理器的軟件無線電平臺GNU Radio,并與其它常用的軟件無線電架構/平臺進行了比較。第3節基于上述平臺,提出了一種窄帶衛星收發信機的工程實現方案,在第4節通過實際上星測試,驗證了方案的可行性。
2 GNU Radio與USRP平臺
2.1 GNU Radio軟件平臺
GNU Radio[3]是一個基于通用處理器(GPP)的軟件無線電開發平臺。得益于其開放源代碼和配套硬件外設價格低廉的特點,GNU Radio在無線電開發社區和教育機構得到了廣泛的應用[4-6]。與非GPP SDR的差異在于,GNU Radio在通用處理器上實現絕大部分的信號處理工作,使用高級程序語言進行開發,可以運行在通用PC上。
GNU Radio的軟件架構如圖1所示。平臺運行在Linux操作系統上,信號處理功能由底層的C++和上層的Python代碼共同實現[7]。其中,運行效率較高的C++代碼實現信號處理的功能,Python腳本則實現各子模塊的連接。平臺提供了常用的信號處理模塊庫以及圖形化的編輯和仿真界面。但受限于GPP串行執行的特點,GNU Radio更適合對處理速度要求較低的窄帶無線通信系統。
2.2 USRP通用硬件外設
USRP[8]的全稱是通用軟件無線電外設,是由Ettus公司開發,與GNU Radio軟件搭配使用的硬件平臺。USRP同樣為開源項目,可獲得其硬件電路圖和FPGA源代碼。
USRP的組成框圖如圖2所示,由主板和射頻子板組成,主板的核心是Cyclone系列FPGA芯片、多個通道的高速ADC、DAC和千兆以太網控制器(舊型號USRP為USB控制器)。其中,FPGA通過級聯積分梳狀濾波器實現數字下變頻,上變頻器DUC則集成在DAC芯片中。射頻子板模擬中頻和射頻的變換,不同型號的射頻子板對應不同的頻段。因此,通過USRP和PC組成的通用硬件系統,搭配不同的軟件代碼,就能夠實現不同頻段、不同體制和不同指標的無線電設備降低硬件成本,提高使用靈活性的功能。
2.3 與SCA等其它軟件無線電技術的比較
美軍提出的軟件通信體系框架(SCA)是軟件無線電領域最有名的規范之一。SCA在FPGA、DSP和GPP等器件上構建了可隔離硬件差異的軟件編程框架,使設計師可專注于通信組件的軟件實現,大大降低了硬件細節對開發過程的影響。GNU Radio則屬于GPP-SDR,用高性能的通用處理器取代了DSP和FPGA中的大部分工作(USRP中的FPGA僅用于實現對處理速度要求較高、通用性較強的高速濾波處理)。通用處理器的開發由于采用高級程序語言進行,開發效率和擴展性高于DSP和FPGA,在開發對性能要求不高的原理樣機或測試設備時具有優勢。
微軟開發的SORA[9]是另一款優秀的GPP-SDR平臺,運行于Windows系統和兼容Windows的硬件平臺,同樣提供配套的硬件板卡(RCB)和射頻模塊,微軟在該平臺上已實現了802.11a/g標準。但這一平臺并不開放源代碼,只提供軟件SDK。與之相比,GNU Radio和USRP均采用開源模式,便于開發者改進硬件,深入優化定制軟件。因此,本文選用GNU Radio和USRP作為窄帶衛星收發信機的實現平臺。
3 窄帶衛星收發信機設計
基于GNU Radio和USRP平臺,本文設計了一個窄帶衛星收發信機方案,用于驗證該平臺在衛星通信領域的可行性。目前,國內窄帶衛星通信系統體制以FDMA為主,寬帶衛星廣播以TDMA為主。由于GPP平臺使用普通PC機,運算能力有限,因此收發信機的方案選擇了窄帶系統中經典的單路單載波(SCPC)體制。根據USRP支持的采樣率,信道符號速率定為24.414ksps,與目前正在發展中的自主衛星移動通信系統相當。
3.1 發射機設計
發射機主要由信道編碼、信道組幀、數字調制、成形濾波等模塊組成,組成框圖如圖3所示。圖3中,最左側的鏈路幀發送模塊為接口模塊,用于與鏈路層對接;信道編碼采用碼長為140的RS系統碼,每個編碼塊可承載兩個鏈路幀;信道組幀模塊的主要功能是對編碼數據插入同步頭,便于接收機進行幀同步,同步頭為63比特的小m序列;為簡化接收機設計,數字調制采用差分二進制相移鍵控;成形濾波則采用8倍插值的平方根升余弦濾波器。
圖3中的數字上變頻、數模轉換和上變頻由USRP中的FPGA、DAC芯片和射頻子板完成,僅需在GNU Radio平臺提供的圖形化開發界面中插入USRP Sink模塊,設置正確的符號率和射頻中心頻點即可。
3.2 接收機設計
接收機主要由非相干解調、匹配濾波、幀同步和信道解碼等模塊組成,具體如圖4所示。整個接收過程是信號發射的逆過程。
圖4中的下變頻、模數轉換和數字下變頻同樣由USRP硬件完成。由于發射機采用了差分BPSK,接收機可使用延遲相乘的方法實現非相干解調;匹配濾波模塊采用與發射機同樣的平方根升余弦濾波器;幀同步模塊通過對同步頭進行相關操作,確定信道幀的準確起始位置;解碼模塊用于糾正因噪聲或頻偏等因素帶來的信道誤碼。
3.3 鏈路層接口設計
發射機設計中的鏈路層接口模塊用于在鏈路層和物理層間交互數據。在GNU Radio系統中,輸入模塊必須設為同步模塊的形式(否則難以進行速率控制),即按照系統的數據流節拍(可理解為采樣節拍)調度,而鏈路層屬于異步系統。因此,接口模塊采用了消息隊列加軟件二選一開關的方式實現,具體如圖5所示:
當鏈路層需要發送數據時,通過(Python腳本實現的)虛擬TUN接口向消息隊列中寫入數據幀。接口模塊根據系統的采樣節拍(在圖5中畫成了時鐘形式,以便于理解),定時檢查消息隊列是否為空。若存在鏈路幀,就將其輸出;若不存在鏈路幀,則輸出等長的全零數據。全零數據在進行差分調制后會形成“0101”序列,因此不會導致直流分量。
4 上星測試與分析
4.1 基帶自環測試
GNU Radio平臺支持用戶在計算機上進行軟件自環或連接USRP設備進行射頻環。軟件自環時,只需要在信號流圖中,將成形濾波模塊與非相干解調模塊直聯即可,等效于使用仿真軟件進行系統仿真。進行射頻環時,若不連接衛星模擬轉發器,USRP的發射和接收頻點應設為相同值。
進行兩種自環測試時,窄帶衛星發射機和接收機可成功通信。其中,軟件自環時,不加噪或用噪聲模塊疊加小幅高斯白噪聲(信號幅度比白噪聲幅度高約15dB),未檢測到誤碼。由于本文并未涉及通信算法研究,且USRP平臺自身的性能指標(包括載漏、頻偏、硬件底噪等)并不理想,本節中僅對通信功能進行了測試,未定量測試性能指標。
4.2 上星實測與分析
上星測試時,選用了L頻段的地球同步軌道GEO衛星進行中轉。由于通信距離極遠,需要在USRP設備外級聯功放(發射端)、低噪放(接收端)、雙工器和天線,均采用商用VSAT產品的標準設備。射頻中心頻點選取在1GHz附近,收發頻差250MHz。
收發信機軟件通過USRP和整個衛星鏈路后成功自發自收,未檢測到誤碼(共計收發400 000比特)。
在測試中,通過頻譜儀觀測衛星下行信號發現,USRP的射頻部分存在嚴重載漏(幅值已略大于用戶信號)。為減小載漏的影響,本文改用非零中頻方案,即在發射機端添加數字上變頻模塊,將用戶信號小幅度搬移,從而使得載漏處于信號帶外。圖6、圖7即為進行了信號搬移后的收發信號頻譜。為方便對比,發射機在調制信號頻帶的右側附加了一個等功率的單音信號,如圖6中的虛線圓圈處所示。對比收發信號的頻譜可以看出,載漏信號(如圖6的點劃線圓圈內)的幅度已大于該單音信號幅值。但此時載漏不在有用信號帶內,可通過濾波消除其影響。
同時,對比圖6、圖7可以看出,GNU Radio采樣信號計算得出的頻譜與實際頻譜基本一致。通過衛星鏈路后,用戶信號中疊加了比信號幅度小約15dB的白噪聲,但未對接收機的接收和解碼造成影響。
5 結束語
本文提出了一種軟件無線電架構的窄帶衛星收發信機方案,并基于GNU Radio和USRP平臺進行了實現。上星測試的結果表明,該方案能夠在實際的GEO衛星環境下實現通信功能。USRP設備通過更換射頻子板,其發射/接收頻段可以從1MHz一直延伸到3GHz,具備很強的硬件通用性;而GNU Radio通過高級語言編程,能夠高效地實現不同通信體制。因此,在衛星通信領域,這一技術很適合用于搭建物理層原型系統、驗證體制以及輔助測試上層網絡協議[10],或者是用于實現終端測試設備,支撐衛星終端產品的研發。
但在測試中,該平臺也暴露出性能方面的不足。如載漏過大、時鐘精度差等問題,難以用于對系統性能的評估。如何完善該平臺的射頻性能指標,也可作為后續研究的方向。
參考文獻:
[1] MITOLA J. Software radios: survey, critical evaluation and future directions[J]. Aerospace and Electronic Systems Magazine, IEEE, 1993,8(4): 25-36.
[2] 楊小牛,樓才義,徐建良. 軟件無線電原理與應用[M]. 北京: 電子工業出版社, 2010.
[3] 曹瀚文,王文博. GNU Radio:開放的軟件無線電平臺[J]. 電信快報, 2007(4): 31-34.
[4] 閆龍,王智海,祁兵. 基于GNU Radio的230MHz多通道主站電臺的設計[J]. 電力系統保護與控制, 2010,38(9): 100-104.
[5] 趙楠,武明虎,周先軍,等. 基于GNU Radio和USRP的寬頻帶并行感知平臺設計[J]. 計算機應用研究, 2015,32(12): 3779-3789.
[6] 楊宏,孔耀暉,茹晨光,等. 基于GNU Radio和USRP的無線通信系統建模仿真[J]. 現代電子技術, 2013,36(18): 73-77.
[7] Blossom E. How to Write a Signal Processing Block[EB/OL]. [2016-03-19]. http://www.gnu.org/software/gnuradio/doc/howto-write-a-block.html.
[8] ETTUS M. Universal software radio peripheral (USRP) [EB/OL]. [2016-03-19]. http://www.ettus.com.
[9] Kun Tan, Jiansong Zhang, Ji Fang, et al. Sora: High Performance Software Radio Using General Purpose Multi-core Processors[A]. NSDI 2009[C]. Boston, MA, USA: USENIX, 2009: 75-90.
[10] 雷杰,趙熠飛,黃敏,等. 基于GPP SDR的LTE系統RLC協議層實現研究[J]. 移動通信, 2011(2): 45-50.