劉 偉,陳真佳,張永輝,劉一鳴
(海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 海口 570228)
隨著無線通信技術(shù)的快速發(fā)展,可用的電磁頻譜資源變得日益稀缺,但是一些頻譜測量報(bào)告的結(jié)果[1,2]卻表明某些授權(quán)頻譜的利用率很低。近年來,以軟件無線電為基礎(chǔ)的動(dòng)態(tài)頻譜接入技術(shù)已成為研究熱點(diǎn)[3,4],為提高頻譜利用率提供了一些新方法。其中,文獻(xiàn)[5]給出了海上白頻譜占用度測量與分析的實(shí)踐方法,其檢測設(shè)備是手持式頻譜分析儀,價(jià)格昂貴,實(shí)現(xiàn)了對白頻譜占用度的測量分析,功能比較單一。文獻(xiàn)[6]給出了針對陸地上的節(jié)點(diǎn),使用固定測量的方式測量頻段占用度的方法,但該方法無法滿足較大范圍內(nèi)檢測頻段占用度的需求,移動(dòng)環(huán)境下適應(yīng)性不強(qiáng)。文獻(xiàn)[7]將采集到的數(shù)據(jù)先保存在本地存儲(chǔ)設(shè)備中,等回到實(shí)驗(yàn)室再做分析處理,受限于本地存儲(chǔ)設(shè)備的容量,缺乏對大批量數(shù)據(jù)處理分析的能力。文獻(xiàn)[8,9]將數(shù)據(jù)庫系統(tǒng)應(yīng)用于電磁頻譜檢測中,其服務(wù)對象是陸地上的固定站點(diǎn),采用的是大型高精度的頻譜檢測設(shè)備,無法滿足海上及移動(dòng)環(huán)境下的頻譜檢測需求。因此,海上移動(dòng)頻譜檢測領(lǐng)域迫切需求構(gòu)建一個(gè)成本低廉、靈活性好、存儲(chǔ)性強(qiáng)而又功能完善的頻譜檢測解決方案。
基于此,本文提出一種使用軟件無線電和數(shù)據(jù)庫技術(shù)相結(jié)合,實(shí)現(xiàn)海上及移動(dòng)環(huán)境下頻譜數(shù)采集與分析的新方法。利用軟件無線電設(shè)備的靈活性和便捷性來完成對頻譜信號的數(shù)據(jù)采集,同時(shí)利用MySQL數(shù)據(jù)庫強(qiáng)大的數(shù)據(jù)存儲(chǔ)與管理能力來完成對頻譜數(shù)據(jù)的存儲(chǔ)和管理。實(shí)現(xiàn)頻譜信號從采集到傳輸再到存儲(chǔ)最后處理分析的全部流程。
系統(tǒng)綜合了頻譜數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、實(shí)時(shí)分析、歷史查詢等多種功能,使用跨平臺(tái)技術(shù)開發(fā)與實(shí)現(xiàn)。其中智能手機(jī)終端APP采用Google Android平臺(tái)開發(fā),PC端分析軟件基于Windows系統(tǒng)開發(fā),融合WIFI、3G/4G等移動(dòng)通信技術(shù),使用MySQL進(jìn)行服務(wù)器數(shù)據(jù)庫的管理[10]。同時(shí),使用HackRF設(shè)備作為頻譜信號采集終端,HackRF是一種常用的軟件無線電外部設(shè)備,支持Gnuradio并與其相互配合著使用。在本系統(tǒng)中,HackRF通過USB接口與智能手機(jī)終端相連,配用全向天線實(shí)現(xiàn)對頻譜信號的采集和發(fā)送,并對信號進(jìn)行放大、濾波、混頻、采樣等處理。頻譜信號的詳細(xì)處理流程請參見文獻(xiàn)[11]。
整個(gè)系統(tǒng)由HackRF信號采集終端、智能手機(jī)終端、PC端分析軟件及數(shù)據(jù)庫服務(wù)器4個(gè)部分組成(如圖1所示)[12]。其中數(shù)據(jù)庫服務(wù)器運(yùn)行的是核心的后臺(tái)管理程序,負(fù)責(zé)處理來自手機(jī)終端發(fā)送過來的連接請求以及頻譜信息和控制命令,同時(shí)還要處理來自PC端分析軟件的數(shù)據(jù)訪問請求和控制命令等。智能手機(jī)終端的主要功能有二個(gè):①通過USB連接到HackRF設(shè)備,向其發(fā)送對頻譜信號進(jìn)行采集的控制命令和技術(shù)參數(shù);②接收來自HackRF信號采集終端發(fā)來的原始頻譜數(shù)據(jù),在本地進(jìn)行初步的處理顯示后通過無線通信網(wǎng)絡(luò)將數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器中進(jìn)行存儲(chǔ)。PC端分析軟件的主要功能也有二個(gè):①通過網(wǎng)絡(luò)訪問數(shù)據(jù)庫服務(wù)器,按需獲取頻譜數(shù)據(jù),可以選擇將數(shù)據(jù)以一定的格式先存放到本地計(jì)算機(jī)中再進(jìn)行數(shù)據(jù)處理,也可以不經(jīng)過本地存儲(chǔ)直接對數(shù)據(jù)進(jìn)行處理分析;②對存儲(chǔ)在數(shù)據(jù)庫中的歷史頻譜數(shù)據(jù)執(zhí)行必要的更新、刪除和修改操作。

圖1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)提出的頻譜數(shù)采與分析技術(shù)方案,與現(xiàn)階段常用的頻譜檢測方式相比,具有諸多優(yōu)勢。主要體現(xiàn)在以下3點(diǎn):①設(shè)備成本低,可隨身攜帶。現(xiàn)階段市場上用于頻譜檢測分析的設(shè)備主要分二種,一種是固定式高精度檢測接收機(jī),其體積大、質(zhì)量重,代價(jià)昂貴且無法用于移動(dòng)式海上頻譜檢測;另一種是手持式頻譜儀,其體積相對較小,適用于移動(dòng)式頻譜測量,但是其本地內(nèi)存空間有限,無法存儲(chǔ)海量測量數(shù)據(jù),費(fèi)用也要幾萬元。本系統(tǒng)使用的HackRF硬件平臺(tái)與智能手機(jī)終端成本不過幾千元,體積小質(zhì)量輕,可隨身攜帶,尤其適用于海上等復(fù)雜環(huán)境下的頻譜檢測。②實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ)。利用MySQL數(shù)據(jù)庫強(qiáng)大的數(shù)據(jù)存儲(chǔ)能力,搭建頻譜信息數(shù)據(jù)庫,實(shí)現(xiàn)非本地存儲(chǔ),節(jié)省終端設(shè)備本地存儲(chǔ)空間,提高頻譜數(shù)據(jù)資源的利用率。③設(shè)備兼容性強(qiáng),系統(tǒng)穩(wěn)定性好。基于安卓設(shè)備使用的普遍性和靈活性,開發(fā)的應(yīng)用能夠在不同機(jī)型間快速移植,同時(shí)基于.NET框架下開發(fā)的頻譜分析軟件,系統(tǒng)功能也比較穩(wěn)定。
Hack RF設(shè)備是軟件無線電領(lǐng)域中一款十分常見的前端射頻板卡,在實(shí)際應(yīng)用中可以根據(jù)實(shí)際需求選擇不同頻率范圍對應(yīng)的收發(fā)頻段,在許多場合均有著較為廣泛的應(yīng)用。但以往的Hack RF設(shè)備需要通過PC機(jī)控制才能工作,不便進(jìn)行海上頻譜檢測。為此,這里設(shè)計(jì)了一個(gè)基于嵌入式軟件無線電的通信平臺(tái),通過USB串口連接來實(shí)現(xiàn)對無線射頻模塊的驅(qū)動(dòng),實(shí)現(xiàn)對軟件無線電模塊的虛擬化功能,進(jìn)而完成對通信過程的調(diào)度控制,實(shí)現(xiàn)終端設(shè)備的小型化[13]。硬件設(shè)計(jì)主要包括:控制器選型、電源管理模塊、TF卡槽及電平轉(zhuǎn)換、USB接口、調(diào)試串口、PCB設(shè)計(jì)。
(1)控制器選型。根據(jù)對通信終端功能的需求分析,同時(shí)結(jié)合實(shí)際應(yīng)用環(huán)境的要求,選擇由英特爾公司生產(chǎn)的Edison開發(fā)平臺(tái),其更為詳細(xì)硬件結(jié)構(gòu)與配置等信息請參見文獻(xiàn)[13]。
(2)電源管理模塊。由于Edison核心模塊所使用的輸入電源電平位于3.3 V~4.5 V之間,但是常見的適配器電壓標(biāo)準(zhǔn)一般為5 V和12 V,二者之間無法完成直接的電壓輸入。此外,鑒于海上作業(yè)環(huán)境的特殊性,可能會(huì)遭遇外部電源無法持續(xù)供電的情況,因此應(yīng)預(yù)留鋰電池接口,使得設(shè)備在脫離外部電源后仍可正常使用。設(shè)備選用的電壓轉(zhuǎn)換芯片是TI公司生產(chǎn)的TPS62133,這是一種同步壓降型DC-DC轉(zhuǎn)換器,內(nèi)部開關(guān)頻率高達(dá)2.5 MHz,小容量電容即可配套使用。通過該電路,即可為系統(tǒng)提供穩(wěn)定的5 V電平,但5 V電平不能直接為外接鋰電池供電,也不能驅(qū)動(dòng)Edison核心模塊,因此需設(shè)計(jì)二級電平轉(zhuǎn)換。其電路設(shè)計(jì)原理圖如圖2所示。

圖2 BQ24074電源轉(zhuǎn)換電路
(3)TF卡槽及電平轉(zhuǎn)換。Edison系統(tǒng)默認(rèn)保存在板載eMMC閃存上,但其4 GB的存儲(chǔ)空間無法滿足嵌入式Linux系統(tǒng)。由于Edison核心板提供了SD卡信號接口,在擴(kuò)展板上設(shè)計(jì)了TF卡接口,將Linux文件系統(tǒng)保存在TF卡上,解決了存儲(chǔ)空間問題,也使系統(tǒng)批量制作以及數(shù)據(jù)備份變得簡單。電路設(shè)計(jì)原理圖如圖3所示。
(4)USB接口。因?yàn)镠ackRF需要通過USB與安卓設(shè)備連接,Edison擴(kuò)展板也需要添加USB接口。Edison核心板本身具有高速USB收發(fā)器,支持一路USB OTG,通過添加硬件接口實(shí)現(xiàn)USB HOST功能。電路設(shè)計(jì)原理圖如圖4所示。
(5)調(diào)試串口。終端開發(fā)和使用過程中,為了方便直接操作系統(tǒng)及獲取數(shù)據(jù),需要能以命令行的形式進(jìn)入Edison內(nèi)的操作系統(tǒng),Edison核心板信號接口中包括了一路UART串口信號,由于大多主機(jī)使用串口不方便,擴(kuò)展板上設(shè)計(jì)了串口轉(zhuǎn)USB模塊,并配套了Micro-USB接口。限于篇幅這里不再給出具體的電路設(shè)計(jì)原理圖。
(6)PCB設(shè)計(jì)。利用Altium designer軟件進(jìn)行PCB設(shè)計(jì),采用雙層板設(shè)計(jì),將USB、TF卡槽、電源接口以及調(diào)試串口放置在擴(kuò)展板外圍,方便外設(shè)連接,電容、電阻等元器件選擇0603封裝,實(shí)現(xiàn)板子小型化、輕型化。限于篇幅這里不再給出具體的PCB設(shè)計(jì)原理圖。
2.2.1 HackRF驅(qū)動(dòng)移植
在系統(tǒng)安裝完成后,需要將HackRF的設(shè)備驅(qū)動(dòng)程序及GNU Radio開發(fā)環(huán)境移植到目標(biāo)板,程序源碼可在Github得到。需要使用Intel提供的GCC交叉編譯器i586-poky-linux-gcc在PC機(jī)上先進(jìn)行交叉編譯無誤后再到Edison系統(tǒng)安裝。以Hack RF驅(qū)動(dòng)程序編譯過程為例,在獲得源碼文件后新建host/build目錄,用來保存編譯過程中產(chǎn)生的中間文件和編譯產(chǎn)生的結(jié)果。在編譯前需要源碼進(jìn)行cmake操作,編譯器配置為相應(yīng)的交叉編譯器。配置完成后選擇編譯的目標(biāo)文件并配置所需組件,執(zhí)行cmake操作開始編譯配置,待編譯完成后在build目錄生成用于最終編譯的Makefile腳本。此時(shí)編譯產(chǎn)生的文件已經(jīng)保存到了build目錄下,通過開發(fā)板將編譯完成的整個(gè)驅(qū)動(dòng)程序文件導(dǎo)入Edison系統(tǒng)的/root目錄,再到build目錄下執(zhí)行make install命令將編譯好的程序安裝到系統(tǒng)相應(yīng)的位置,完成驅(qū)動(dòng)程序的安裝部署。

圖3 卡電平轉(zhuǎn)換電路

圖4 USB接口電路
2.2.2 服務(wù)器端軟件
NET服務(wù)器管理軟件采用微軟ASP.NET4.0和WPF4.0作為底層開發(fā)框架,充分利用Framework4.0提供的各種特性來保證整個(gè)架構(gòu)的穩(wěn)定性,同時(shí)也保證了系統(tǒng)架構(gòu)未來的可擴(kuò)展性。NET服務(wù)器管理軟件由二部分構(gòu)成:數(shù)據(jù)采集軟件和終端接口軟件,其中數(shù)據(jù)采集軟件通過Socket套接字建立TCP Server監(jiān)聽來自TCP Client(即安卓智能終端)的請求命令,進(jìn)行通信過程的控制和頻譜信息的傳輸。終端接口軟件通過Service接口讓PC端分析軟件調(diào)用相應(yīng)的接口實(shí)現(xiàn)對所需頻譜信息的獲取和分析處理。服務(wù)器端軟件的工作流程如圖5所示。

圖5 服務(wù)器端軟件工作流程
2.2.3 Android客戶端軟件
Android客戶端軟件開發(fā)采用Java語言在Eclipse開發(fā)平臺(tái)下開發(fā)。Android客戶端軟件允許用戶查看、控制及進(jìn)行個(gè)性化設(shè)置等操作[14]。Android客戶端軟件設(shè)計(jì)主要包括以下3個(gè)部分:①客戶端與HackRF數(shù)采終端之間的串口通信、參數(shù)配置;②客戶端與數(shù)據(jù)庫服務(wù)器之間基于Socket協(xié)議的通信;③界面交互的設(shè)計(jì)。在功能實(shí)現(xiàn)上將串口通信和數(shù)據(jù)傳輸分別放在二個(gè)線程中運(yùn)行,避免線程阻塞,降低資源的消耗,提升效率。這里實(shí)現(xiàn)頻譜檢測的過程大致為:首先天線將接收到的原始信號傳輸給射頻模塊,經(jīng)過處理后得到基帶信號,繼而將該基帶信號通過USB傳輸給主控設(shè)備,主控設(shè)備再處理接收到的信號。這里是在GNU Radio中將數(shù)據(jù)進(jìn)行處理后傳輸?shù)竭h(yuǎn)程數(shù)據(jù)庫服務(wù)器中進(jìn)行存儲(chǔ)。安卓終端在確定檢測的頻段范圍后,開始對頻段進(jìn)行掃描感知,同時(shí)對當(dāng)前條件下頻譜的使用情況進(jìn)行初步的分析,以實(shí)時(shí)獲取各頻點(diǎn)的能量值并顯示在屏幕上。核心代碼的實(shí)現(xiàn)如下所示:
center_freq=m.center_freq
freq=bin_freq(center_freq)
noise_db=10*math.log10(min(data)/rate)
power_db=10*math.log10(min(data)/rate)-noise_db
鑒于軟件無線電掃頻帶寬的限制,檢測時(shí)會(huì)有中頻的影響,會(huì)導(dǎo)致采集到的頻譜數(shù)據(jù)不是非常的準(zhǔn)確。因此需要對中頻附近的數(shù)據(jù)重新進(jìn)行采樣,同時(shí)將原有的中頻數(shù)據(jù)覆蓋,以盡可能保障采集數(shù)據(jù)的準(zhǔn)確率。
2.2.4 PC端分析軟件
這里PC端分析軟件開發(fā)使用C#語言在VS2015開發(fā)平臺(tái)下開發(fā)。PC端分析軟件是整個(gè)系統(tǒng)中最主要的部分,負(fù)責(zé)完成對海量頻譜數(shù)據(jù)按需進(jìn)行處理分析,進(jìn)而以一種直觀易懂的方式顯示給檢測用戶。該模塊的軟件設(shè)計(jì)主要實(shí)現(xiàn)以下4個(gè)功能:①連接數(shù)據(jù)庫服務(wù)器,根據(jù)所選取的檢測頻段范圍,設(shè)置步進(jìn)帶寬長度,進(jìn)而動(dòng)態(tài)地顯示所選頻段各頻點(diǎn)信號的實(shí)時(shí)能量值分布情況;②根據(jù)各頻點(diǎn)信號能量值的大小,設(shè)置合理的閾值以篩選掉噪聲信號,進(jìn)而實(shí)時(shí)計(jì)算出各頻點(diǎn)信號的占用度情況;③鑒于頻域上的占用度統(tǒng)計(jì)情況能給出的結(jié)論有限,無法立體直觀的觀測頻譜信號在時(shí)域上的實(shí)時(shí)狀態(tài),故設(shè)計(jì)了由時(shí)間、頻率、信號能量值構(gòu)成的三維瀑布圖,以一種三維立體的方式動(dòng)態(tài)直觀的向需求用戶進(jìn)行展示,豐富檢測功能;④根據(jù)各頻點(diǎn)的占用度情況,選擇優(yōu)化的數(shù)據(jù)處理算法,得出所測頻段的整體占用度情況,進(jìn)而以一種全局性的方式指導(dǎo)認(rèn)知用戶選擇合適的通信頻段盡可能實(shí)現(xiàn)無干擾通信。本模塊中閾值的設(shè)置存在人為主觀因素,實(shí)際檢測中的閾值設(shè)置要根據(jù)測量環(huán)境做綜合性考量,這里不在此做具體的闡述。
2.2.5 數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫是整個(gè)系統(tǒng)設(shè)計(jì)中的關(guān)鍵部分,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞,將會(huì)直接影響到系統(tǒng)功能的實(shí)現(xiàn)程度以及后期海量數(shù)據(jù)維護(hù)的難度。由于頻譜數(shù)據(jù)結(jié)構(gòu)復(fù)雜,數(shù)據(jù)量大,因此需要建立關(guān)系型數(shù)據(jù)庫來減少冗余,提高系統(tǒng)運(yùn)行時(shí)的效率[15]。根據(jù)監(jiān)測數(shù)據(jù)庫的特點(diǎn)和功能需求,將數(shù)據(jù)庫系統(tǒng)分為3個(gè)子模塊,包括數(shù)據(jù)管理、數(shù)據(jù)分析、數(shù)據(jù)回放。其功能模塊和各模塊的功能如圖6所示。根據(jù)數(shù)據(jù)庫系統(tǒng)的功能模塊和實(shí)際需求,設(shè)計(jì)了不同的數(shù)據(jù)表結(jié)構(gòu),限于篇幅這里僅列出核心的數(shù)據(jù)表(如表1~表3所示)。

圖6 數(shù)據(jù)庫系統(tǒng)功能模塊

序號字段名稱描述字段類型說明1terminal_id唯一編號varchar主鍵2hack_idHackRF編號varchar3aerial_id天線編號varchar4transmit_power發(fā)射功率float5gain天線增益float6hight天線高度float7cover_area覆蓋范圍float8ipaddress設(shè)備IP地址char9port設(shè)備端口號int

表2 頻率信息

表3 占用度統(tǒng)計(jì)
在搭建好HackRF數(shù)采終端并成功連接電源和智能手機(jī)終端后,對系統(tǒng)進(jìn)行綜合測試,主要測試以下二方面:智能手機(jī)終端能否實(shí)現(xiàn)對HackRF數(shù)采終端采集到的原始頻譜數(shù)據(jù)進(jìn)行初步處理后,發(fā)送到遠(yuǎn)程數(shù)據(jù)庫服務(wù)器中;PC端分析軟件能否成功訪問數(shù)據(jù)庫并實(shí)現(xiàn)前面所述的頻譜分析功能。
待系統(tǒng)正常運(yùn)行后,在手機(jī)終端APP中通過USB與HackRF數(shù)采終端取得連接,設(shè)置所需采樣參數(shù),開啟手機(jī)GPS定位模式,開始對原始的頻譜信號進(jìn)行采集,信號的具體處理過程前面已有講述,這里不再贅述。終端對采集來的原始信號進(jìn)行初步的處理并在本地緩存部分?jǐn)?shù)據(jù),手機(jī)APP上實(shí)時(shí)顯示所測頻段中頻率對應(yīng)的信號強(qiáng)度,同時(shí)通過無線通信網(wǎng)絡(luò)將數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器中。這里對100 Mhz~900 Mhz進(jìn)行全頻段掃頻,處理結(jié)果如圖7所示,同時(shí)給出專業(yè)頻譜儀所測同頻段的檢測結(jié)果如圖8所示。對比圖7和圖8可以發(fā)現(xiàn)本系統(tǒng)所測數(shù)據(jù)和專業(yè)頻譜儀所測數(shù)據(jù)基本一致,都在信號較強(qiáng)的頻段較為明顯,驗(yàn)證了所述技術(shù)方案的可行性和優(yōu)越性。

圖7 終端所測頻段結(jié)果

圖8 專業(yè)頻譜儀檢測結(jié)果
PC端數(shù)據(jù)分析軟件通過IP地址和端口號連接數(shù)據(jù)庫服務(wù)器,通過設(shè)置起始頻率、終止頻率獲取所要分析頻段的頻譜數(shù)據(jù),通過設(shè)置閾值過濾噪聲信號篩選出有效信號,這里閾值設(shè)置為30 dbuv。經(jīng)處理后,客戶端可以顯示頻率對應(yīng)的信號強(qiáng)度,由時(shí)間、頻率、信號強(qiáng)度構(gòu)成的三維瀑布圖,頻率占用度,最后由頻率占用度計(jì)算出所測頻段的占用度。處理結(jié)果如圖9所示,可以看到所測FM通信頻段頻段的局部占用度為36%,界面清晰簡潔,功能完善。

圖9 PC端分析軟件處理效果
基于軟件無線電與數(shù)據(jù)庫的頻譜檢測與分析系統(tǒng),針對海上及移動(dòng)過程中,頻譜檢測環(huán)境復(fù)雜,大型高精度檢測儀器不便攜帶,數(shù)據(jù)量大難以保存與管理的問題,使用HackRF板卡搭載全向天線作為信息采集終端實(shí)現(xiàn)移動(dòng)式信號采集,利用安卓設(shè)備的通用性及應(yīng)用的可移植性實(shí)現(xiàn)初步的信息處理、顯示和傳輸,構(gòu)建關(guān)系型數(shù)據(jù)結(jié)構(gòu)來減少海量頻譜數(shù)據(jù)間的冗余,同時(shí)基于.NET框架開發(fā)頻譜分析軟件,保證系統(tǒng)運(yùn)行的穩(wěn)定性及未來的可擴(kuò)展性。真正實(shí)現(xiàn)了便攜式、可移動(dòng)、多功能的頻譜分析,具有低成本、低功耗、操作簡便、靈活性強(qiáng)的優(yōu)點(diǎn)。作者后續(xù)工作將致力于實(shí)現(xiàn)分布式數(shù)據(jù)庫下的數(shù)據(jù)存儲(chǔ),搭建頻譜感知信息數(shù)據(jù)庫,為實(shí)現(xiàn)區(qū)域動(dòng)態(tài)頻譜接入與管理提供新思路。