王 輝, 張 晨, 于立君, 胡羽坤
(哈爾濱工程大學 自動化學院, 黑龍江 哈爾濱 150001)
軟件無線電(sofware defined radio, SDR)是一種使用軟件實現物理層連接的無線通信設計,能夠在不改變硬件的情況下實現不同通信功能。軟件無線電技術有巨大的研究和實用空間[1-4]。筆者為實驗課程設計了基于HackRF的無線通信收發系統創新性實驗[5-6]。該實驗可以使學生中深入學習無線通信收發過程以及數字調制/解調方法,提高對無線通信收發系統的使用能力。在分析計算與實際編程調試的過程中,學生能夠深入理解課程的理論知識,實現從理論知識到實踐能力的全面提高[5]。
軟件無線電系統可以分為3類:基于FPGA的SDR系統、基于DSP平臺的SDR系統和基于通用處理器的SDR系統。為了實驗室調試方便,選擇基于通用處理器的SDR系統,搭建的基于HackRF的SDR系統模型框架如圖1所示。
由圖1可以看出,無線通信收發系統由硬件外設HackRF和主機2部分組成。主機配置了GNU Radio編程環境,作為實現各種通信功能的軟件平臺。

圖1 系統模型框架圖
HackRF是一款軟件無線電通用平臺,由于其硬件設計可以與各種通信方式進行匹配[6-7],因此選用HackRF作為實驗的硬件平臺。HackRF的硬件架構如圖2所示,采用正交低通采樣方式進行采樣量化,通過USB2.0與主機通信。

圖2 HackRF硬件架構圖
(1) 接收信號。當天線收到無線信號后,編程控制是否放大該信號,然后將信號利用RFFC5072和MAX2837進行2次下變頻,得到模擬基帶信號,量化并抽取,最后得到基帶數字信號,然后送入主機進行處理。
(2) 發送過程。與接收過程類似,是一個與接收信號大致相反的過程。HackRF是一個半雙工器件,收發過程不能同時完成,需要軟件切換。
GNU Radio是一個開源軟件平臺,但它不是必要的,控制HackRF的程序可以由學生自行編寫。軟件無線電的核心理念就是通用化,硬件平臺使用了通用的硬件外設,為避免重復的信號處理以及與外設通信過程,GNU Radio集成了方便調用的模塊。此外,GNU Radio還包含一種圖形編程工具(GNU radio company),可以將模塊以流圖的形式連接并自動生成Python代碼,配合GRC和代碼編程,就可以在主機上實現所需的通信過程[8-10]。
FM是一種模擬體制的無線通信,工作頻段在80~108 MHz,至今仍然有廣泛的應用。傳統的FM接收機大多指調頻收音機,所需硬件固定、功能固定,而且調試復雜[11-12];而配合通用硬件外設HackRF與軟件GNU Radio實現FM通信更具優勢。
首先,搭建FM接收機模型。系統模型的接收機部分,利用HackRF接收指定頻段的FM信號,下變頻并數字化得到基帶未解調FM信號,送入主機進行信息處理,得到解調后的原始音頻信息并送入聲卡播放,配合其他功能模塊實現調頻、調音量等功能。將此過程通過GRC搭建流圖并自動生成實際運行的Python代碼。FM接收機的軟件架構如圖3所示。

圖3 FM接收機軟件架構圖
根據該架構圖,調用相應的模塊搭建流圖(見圖4),實現FM接收。由于FM發送需實現立體聲調制,多數學生會遇到困難,因此不作為本實驗的必做部分,可以作為課外拓展實驗。

圖4 FM接收機GRC流圖
無線通信收發系統實驗的軟件架構如圖5所示。接收機是在FM接收機的基礎上,根據GMSK解調理論修改而成;發送機根據調制理論搭建。

圖5 GMSK無線通信系統軟件架構圖
根據該架構圖,調用相關模塊搭建收發系統,實現文本信息的無線收發。繪制無線通信收發系統的完整工作流程如圖6所示。
無線通信收發系統的工作流程如下:

圖6 工作流程示意圖
(1) 利用File Source模塊從指定位置讀取文本文件,利用Packet Encoder模塊對信息進行編碼處理,加入默認的header code、access code和preamble code,將編碼后的數據流送入下一個模塊處理;
(2) 進行數據流的GMSK調制:經過高階模塊GMSK Mod中的底層模塊“packed_to_unpacked_bb”將數據流拆分成二進制序列,然后經“chunks_to_symbols_bf”底層模塊變為雙極性非歸零碼元序列送入下一個模塊;
(3) 將雙極性非歸零碼元序列送入高斯濾波器進行預調制,并將預調制后的碼元序列送入頻率調制底層模塊,完成頻率調制,獲得兩路同相、正交信號,也就是所謂的基帶復信號;
(4) 通過Osmocom Sink模塊與HackRF One通信,將基帶已調制信號經USB2.0送入HackRF One板卡,并且上變頻到指定頻帶,送入無線通信信道,完成GMSK調制過程;
(5) 通過Osmocom Source模塊與HackRF One通信,接收機驅動板卡接收指定頻帶的信號,經過下變頻、低通采樣、量化、抽取等一系列操作,獲取基帶正交同相兩路信號,經USB2.0送入PC進行處理;
(6) 信號流送入GMSK Demod高階模塊,首先通過其中的正交解調底層模塊,計算出相應的相位差值(頻率值),經過增益調整變為正負數字序列,經過時鐘同步底層模塊恢復時序,再經過抽樣判決模塊“binary_slicer_fb”對信號流按判決值0進行判決,獲得二進制數字序列,送入下一個模塊;
(7) 將已解調的二進制數字序列碼元流送入解碼模塊Packet Decoder,去除數據中添加的內容,還原出原本的數據流;將原本的數據送入File Sink模塊,將數據流寫進指定位置文檔并存儲。
通過Osmocom Source與HackRF通信,將基帶未解調信號送入流圖,Signal Source和Multiply模塊組合,利用余弦信號頻譜以及時域相乘頻域卷積的特性,移動信號頻譜,實現信號的軟件調頻過程。通過Low Pass Filter選擇頻道,并利用Rational Resampler平整波形和調整采樣率。利用WBFM Receive高級模塊進行FM解調,得到原始音頻信號,并利用Multiply Const調整音頻信號音量,最后送入聲卡播放。
該過程的核心模塊WBFM Receive使用的是正交解調,也是一種通用頻率解調方式。其他模塊則旨在設置參數以及構建圖形界面,方便觀看頻譜、調整頻道和音量。
能實現文本信息無線收發的通信系統包含發送機和接收機兩部分。系統模型包含一個發送機和一個接收機。需要注意的是,搭建FM接收機時選擇的是FM解調方式,傳輸文本信息是數字通信,故對數字調制/解調方法進行對比和選擇。利用Matlab對數字頻率調制/解調進行仿真研究和對比,最終選定了GMSK調制/解調為實現技術,仿真結果對比如圖7所示。

圖7 MSK和GMSK頻譜對比圖
至此,可以實現文本信息收發的無線通信收發系統實驗成功實現。
基于HackRF的無線通信收發系統實驗項目,能夠利用同一套硬件系統搭載不同的軟件,分別實現FM接收和文本信息收發。學生可以對實驗項目進行創新和拓展。此實驗所需硬件簡單,可以節約實驗室資源,增添實驗課程的趣味性,同時能夠加深學生對無線通信收發過程的理解,提高學生對無線通信收發系統實驗的興趣和實踐能力,激發學生在無線通信方面的創造性,提升學生的科研能力和綜合素質。