譚平 撒衛(wèi)平 劉冠群 劉軍華
【摘要】GNU Radio是一個(gè)開源的無線電信號處理平臺,可以與配套硬件實(shí)現(xiàn)各種無線電通信實(shí)驗(yàn)內(nèi)容。本文針對現(xiàn)有通信原理實(shí)驗(yàn)教學(xué)內(nèi)容單一、創(chuàng)新性不夠的情況,將GNU Radio引入到通信原理實(shí)驗(yàn)教學(xué)中,使實(shí)驗(yàn)內(nèi)容與日常生活緊密相連,提高學(xué)生對通信原理實(shí)驗(yàn)課程的興趣,加深學(xué)生對抽象知識的理解,達(dá)到良好的教學(xué)效果。
【關(guān)鍵詞】無線電信號;通信原理;GNU Radio
一、引言
在電子信息工程、通信工程等專業(yè)中,《通信原理》是一門非常重要的主干課程。但是通信原理涉及的內(nèi)容很多,概念非常抽象,而且里面使用的數(shù)學(xué)公式多、公式復(fù)雜,是一門教學(xué)難度很大的課程?,F(xiàn)有的教學(xué)手段,主要利用通信原理實(shí)驗(yàn),輔助學(xué)生對書本上抽象的概念和原理有進(jìn)一步的感性認(rèn)識,加深他們對基本原理的理解。但是通信原理實(shí)驗(yàn)設(shè)備昂貴,實(shí)驗(yàn)內(nèi)容固定,實(shí)驗(yàn)過程千篇一律。此外,有些實(shí)驗(yàn)與實(shí)際生活聯(lián)系不夠緊密,對學(xué)生的吸引力不夠。而采用開源的GNU Radio無線電信號處理平臺,可以將通信原理實(shí)驗(yàn)內(nèi)容深入生活,不僅可以加深學(xué)生們對抽象知識的理解,而且提高學(xué)生對通信原理這門課程的興趣,達(dá)到非常好的教學(xué)效果。
二、GNU Radio簡介
GNU Radio是一個(gè)開源的、以通用軟件無線電硬件平臺為依托的無線電信號處理平臺。它可以通過軟件編程實(shí)現(xiàn)無線電通信的各種功能。得益于其源代碼開放和配套硬件外設(shè)價(jià)格低廉的特點(diǎn),GNU Radio給普通的軟件編程者提供了探索無線電波的機(jī)會(huì),激發(fā)他們的聰明才智,探索無線通信的各種技術(shù)。GNU Radio在無線電開發(fā)社區(qū)和教育機(jī)構(gòu)得到了廣泛的應(yīng)用。
GNU Radio的軟件架構(gòu)如圖1所示。GNU Radio是在Linux操作系統(tǒng)上開發(fā)的,一般運(yùn)行在Linux系統(tǒng)上,也有移植到Windows等其他操作系統(tǒng)的版本。它的開發(fā)語言包括C++和Python,其中C++主要用于開發(fā)底層的數(shù)字信號處理模塊,而Python則用于連接各功能子模塊,以及上層應(yīng)用代碼。GNU Radio提供了常用的信號處理模塊庫以及圖形化的編輯和仿真界面,可用于通信原理仿真,也可以連接到各種軟件無線電硬件設(shè)備實(shí)現(xiàn)實(shí)際通信系統(tǒng)的通信,這些硬件設(shè)備包括USRP、RTL-SDR、HACKRF等。GNU Radio非常適合通信原理初學(xué)者做通信原理實(shí)驗(yàn)。
三、GNU Radio各模塊與通信原理教學(xué)內(nèi)容的對應(yīng)關(guān)系
GNU Radio的信號處理模塊包括信號源、信號處理模塊以及一些常用的文件處理、網(wǎng)絡(luò)通信模塊和硬件平臺處理模塊。這里重點(diǎn)介紹與通信原理相關(guān)的一些模塊。通信原理教學(xué)內(nèi)容主要包括信源編碼與譯碼、信道、調(diào)制解調(diào)、差錯(cuò)控制、同步、新型數(shù)字調(diào)制解調(diào)等。這些內(nèi)容在GNU Radio中大部分都有對應(yīng)的信號處理模塊,即便沒有相應(yīng)的模塊,也非常容易利用其它模塊搭建出所需要的功能。表1中給出了通信原理教學(xué)內(nèi)容與GNU Radio相關(guān)模塊的對應(yīng)關(guān)系。利用這些模塊,就可以通過Python編程或采用GNU Radio的圖形化軟件仿真實(shí)現(xiàn)通信原理基本實(shí)驗(yàn)內(nèi)容。
四、GNU Radio在通信原理教學(xué)中的應(yīng)用舉例
GNU Radio的圖形化仿真軟件名稱是GNU Radio Companion (GRC),可以通過拖曳各種圖形化的信號處理模塊來實(shí)現(xiàn)通信系統(tǒng)的設(shè)計(jì)。這里簡單介紹兩個(gè)典型的通信仿真實(shí)驗(yàn),方便大家理解如何使用GRC。
4.1 ASK數(shù)字調(diào)制與解調(diào)舉例
ASK、PSK和FSK是經(jīng)典的數(shù)字調(diào)制方式,使用GRC非常容易就能實(shí)現(xiàn)數(shù)字調(diào)制與解調(diào)。如果有相應(yīng)的SDR硬件平臺,可以很快的配置出數(shù)字調(diào)制解調(diào)的收發(fā)系統(tǒng)。如果沒有SDR硬件平臺,也可以直接用音頻接口實(shí)現(xiàn)數(shù)字調(diào)制解調(diào)。
圖2是ASK的調(diào)制解調(diào)的GRC仿真框圖。該圖中有兩個(gè)信號源,一個(gè)是ASK的載波信號Signal Source,信號的采樣頻率是32kHz,這是設(shè)置輸出1kHz的余弦信號;另一個(gè)是Random Source產(chǎn)生隨機(jī)的0、1數(shù)字信號。為了保證數(shù)字信號的碼率低于載波信號頻率,這里采用了Repeat模塊降低數(shù)字信源的碼率。這里的頻率和幅度都可以雙擊模塊框,通過對話框修改設(shè)置。類型轉(zhuǎn)化模塊Char to Float是為了與后面的數(shù)字信號模塊的數(shù)據(jù)類型一致,將字節(jié)類型轉(zhuǎn)化為浮點(diǎn)類型。數(shù)字信源和載波信號通過Multiply乘法器實(shí)現(xiàn)ASK調(diào)制。調(diào)制之后的信號可以通過GRC的信宿模塊顯示結(jié)果。這里將輸出信號連接到虛擬示波器Scope Sink和虛擬頻譜儀FFT Sink這兩個(gè)信宿模塊,可以分別查看ASK調(diào)制波形和ASK的頻譜,如圖3所示。圖3上部分是示波器波形,其中紅色部分是數(shù)字基帶信號,藍(lán)色是ASK調(diào)制信號。圖3下面部分是頻譜分析,其中綠色線表示峰值頻譜,藍(lán)色線表示實(shí)時(shí)頻譜??梢钥吹紸SK主要頻率是在載波的頻率1kHz附近。
ASK的解調(diào)是從調(diào)制信號中解調(diào)出信源信息。按照包絡(luò)檢波方法,只需要對ASK進(jìn)行全波整流,再經(jīng)過低通濾波和采樣判別,即可恢復(fù)信源信息,因此解碼模塊中用到了取絕對值的模塊Abs、低通濾波器模塊Low Filter和閾值判斷模塊Threshold。完整的ASK調(diào)制與解調(diào)仿真如圖4所示。
4.2 FM調(diào)頻語音收發(fā)實(shí)驗(yàn)舉例
FM調(diào)頻語音的收發(fā)實(shí)驗(yàn)除了需要用到GNU Radio平臺外,還需要用到配套的硬件設(shè)備。這里選擇無線麥克風(fēng)作為FM調(diào)頻的發(fā)送端,而廉價(jià)的數(shù)字電視接收棒RTL-SDR作為無線電接收端。本實(shí)驗(yàn)也可選擇兩塊USRP硬件板分別作為收發(fā)器實(shí)現(xiàn)語音收發(fā)實(shí)驗(yàn)。
實(shí)驗(yàn)的原理圖如圖5所示。無線麥克風(fēng)采集聲音后調(diào)頻至92MHz發(fā)射出去,而RTL-SDR則通過GRC被設(shè)置在調(diào)頻92MHz處,并下變頻到2MHz。RTL-SDR內(nèi)部包含高速ADC,其采樣的數(shù)據(jù)通過USB傳輸?shù)紾NU Radio的圖形仿真軟件GRC中。這個(gè)過程由GRC調(diào)用信源模塊RTL-SDR Source實(shí)現(xiàn)。RTL-SDR接收的數(shù)據(jù)通過低通濾波和重采樣后變成44.1kHz的音頻數(shù)據(jù),并通過信宿模塊Audio Sink從電腦的音頻接口輸出。這樣就實(shí)現(xiàn)了語音的無線收發(fā)實(shí)驗(yàn)。圖6給出了GRC的各模塊連接圖和參數(shù)設(shè)置。
五、結(jié)論
本文對GNU Radio做了簡單介紹,并將GNU Radio應(yīng)用到《通信原理》課程的實(shí)驗(yàn)教學(xué)中。由于GNU Radio有豐富的信號處理模塊,可以設(shè)計(jì)各種驗(yàn)證通信原理的仿真實(shí)驗(yàn),而且可以跟實(shí)際生活中的廣播、電視、GPS定位以及移動(dòng)通信等場景緊密結(jié)合。大大地提高了學(xué)生對通信原理學(xué)習(xí)的熱情和興趣,達(dá)到了非常好的實(shí)驗(yàn)教學(xué)效果。
參考文獻(xiàn)
[1] GNU Radio Home Page. https://www.gnuradio.org/
[2] 金偉正,趙小月,肖云等. 基于GNU Radio的頻譜分析儀設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索, 2019, 38(01): 86-90.
[3] 蔣相. 基于GNU Radio和USRP X310的多帶Chirp信號檢測[J].電子科學(xué)技術(shù), 2016, 03(03): 243-248.
[4] 林廣榮,林新榮,高時(shí)漢等. 基于GNU Radio的窄帶衛(wèi)星收發(fā)信機(jī)研究與實(shí)現(xiàn)[J].移動(dòng)通信, 2016, 40(08): 70-74.