劉 偉,陳真佳,張永輝,劉一鳴
(海南大學 信息科學技術學院,海南 ???570228)
隨著無線通信技術的快速發(fā)展,可用的電磁頻譜資源變得日益稀缺,但是一些頻譜測量報告的結果[1,2]卻表明某些授權頻譜的利用率很低。近年來,以軟件無線電為基礎的動態(tài)頻譜接入技術已成為研究熱點[3,4],為提高頻譜利用率提供了一些新方法。其中,文獻[5]給出了海上白頻譜占用度測量與分析的實踐方法,其檢測設備是手持式頻譜分析儀,價格昂貴,實現(xiàn)了對白頻譜占用度的測量分析,功能比較單一。文獻[6]給出了針對陸地上的節(jié)點,使用固定測量的方式測量頻段占用度的方法,但該方法無法滿足較大范圍內(nèi)檢測頻段占用度的需求,移動環(huán)境下適應性不強。文獻[7]將采集到的數(shù)據(jù)先保存在本地存儲設備中,等回到實驗室再做分析處理,受限于本地存儲設備的容量,缺乏對大批量數(shù)據(jù)處理分析的能力。文獻[8,9]將數(shù)據(jù)庫系統(tǒng)應用于電磁頻譜檢測中,其服務對象是陸地上的固定站點,采用的是大型高精度的頻譜檢測設備,無法滿足海上及移動環(huán)境下的頻譜檢測需求。因此,海上移動頻譜檢測領域迫切需求構建一個成本低廉、靈活性好、存儲性強而又功能完善的頻譜檢測解決方案。
基于此,本文提出一種使用軟件無線電和數(shù)據(jù)庫技術相結合,實現(xiàn)海上及移動環(huán)境下頻譜數(shù)采集與分析的新方法。利用軟件無線電設備的靈活性和便捷性來完成對頻譜信號的數(shù)據(jù)采集,同時利用MySQL數(shù)據(jù)庫強大的數(shù)據(jù)存儲與管理能力來完成對頻譜數(shù)據(jù)的存儲和管理。實現(xiàn)頻譜信號從采集到傳輸再到存儲最后處理分析的全部流程。
系統(tǒng)綜合了頻譜數(shù)據(jù)采集、數(shù)據(jù)存儲、實時分析、歷史查詢等多種功能,使用跨平臺技術開發(fā)與實現(xiàn)。其中智能手機終端APP采用Google Android平臺開發(fā),PC端分析軟件基于Windows系統(tǒng)開發(fā),融合WIFI、3G/4G等移動通信技術,使用MySQL進行服務器數(shù)據(jù)庫的管理[10]。同時,使用HackRF設備作為頻譜信號采集終端,HackRF是一種常用的軟件無線電外部設備,支持Gnuradio并與其相互配合著使用。在本系統(tǒng)中,HackRF通過USB接口與智能手機終端相連,配用全向天線實現(xiàn)對頻譜信號的采集和發(fā)送,并對信號進行放大、濾波、混頻、采樣等處理。頻譜信號的詳細處理流程請參見文獻[11]。
整個系統(tǒng)由HackRF信號采集終端、智能手機終端、PC端分析軟件及數(shù)據(jù)庫服務器4個部分組成(如圖1所示)[12]。其中數(shù)據(jù)庫服務器運行的是核心的后臺管理程序,負責處理來自手機終端發(fā)送過來的連接請求以及頻譜信息和控制命令,同時還要處理來自PC端分析軟件的數(shù)據(jù)訪問請求和控制命令等。智能手機終端的主要功能有二個:①通過USB連接到HackRF設備,向其發(fā)送對頻譜信號進行采集的控制命令和技術參數(shù);②接收來自HackRF信號采集終端發(fā)來的原始頻譜數(shù)據(jù),在本地進行初步的處理顯示后通過無線通信網(wǎng)絡將數(shù)據(jù)上傳到數(shù)據(jù)庫服務器中進行存儲。PC端分析軟件的主要功能也有二個:①通過網(wǎng)絡訪問數(shù)據(jù)庫服務器,按需獲取頻譜數(shù)據(jù),可以選擇將數(shù)據(jù)以一定的格式先存放到本地計算機中再進行數(shù)據(jù)處理,也可以不經(jīng)過本地存儲直接對數(shù)據(jù)進行處理分析;②對存儲在數(shù)據(jù)庫中的歷史頻譜數(shù)據(jù)執(zhí)行必要的更新、刪除和修改操作。
圖1 系統(tǒng)結構
本系統(tǒng)提出的頻譜數(shù)采與分析技術方案,與現(xiàn)階段常用的頻譜檢測方式相比,具有諸多優(yōu)勢。主要體現(xiàn)在以下3點:①設備成本低,可隨身攜帶?,F(xiàn)階段市場上用于頻譜檢測分析的設備主要分二種,一種是固定式高精度檢測接收機,其體積大、質(zhì)量重,代價昂貴且無法用于移動式海上頻譜檢測;另一種是手持式頻譜儀,其體積相對較小,適用于移動式頻譜測量,但是其本地內(nèi)存空間有限,無法存儲海量測量數(shù)據(jù),費用也要幾萬元。本系統(tǒng)使用的HackRF硬件平臺與智能手機終端成本不過幾千元,體積小質(zhì)量輕,可隨身攜帶,尤其適用于海上等復雜環(huán)境下的頻譜檢測。②實現(xiàn)海量數(shù)據(jù)存儲。利用MySQL數(shù)據(jù)庫強大的數(shù)據(jù)存儲能力,搭建頻譜信息數(shù)據(jù)庫,實現(xiàn)非本地存儲,節(jié)省終端設備本地存儲空間,提高頻譜數(shù)據(jù)資源的利用率。③設備兼容性強,系統(tǒng)穩(wěn)定性好。基于安卓設備使用的普遍性和靈活性,開發(fā)的應用能夠在不同機型間快速移植,同時基于.NET框架下開發(fā)的頻譜分析軟件,系統(tǒng)功能也比較穩(wěn)定。
Hack RF設備是軟件無線電領域中一款十分常見的前端射頻板卡,在實際應用中可以根據(jù)實際需求選擇不同頻率范圍對應的收發(fā)頻段,在許多場合均有著較為廣泛的應用。但以往的Hack RF設備需要通過PC機控制才能工作,不便進行海上頻譜檢測。為此,這里設計了一個基于嵌入式軟件無線電的通信平臺,通過USB串口連接來實現(xiàn)對無線射頻模塊的驅(qū)動,實現(xiàn)對軟件無線電模塊的虛擬化功能,進而完成對通信過程的調(diào)度控制,實現(xiàn)終端設備的小型化[13]。硬件設計主要包括:控制器選型、電源管理模塊、TF卡槽及電平轉(zhuǎn)換、USB接口、調(diào)試串口、PCB設計。
(1)控制器選型。根據(jù)對通信終端功能的需求分析,同時結合實際應用環(huán)境的要求,選擇由英特爾公司生產(chǎn)的Edison開發(fā)平臺,其更為詳細硬件結構與配置等信息請參見文獻[13]。
(2)電源管理模塊。由于Edison核心模塊所使用的輸入電源電平位于3.3 V~4.5 V之間,但是常見的適配器電壓標準一般為5 V和12 V,二者之間無法完成直接的電壓輸入。此外,鑒于海上作業(yè)環(huán)境的特殊性,可能會遭遇外部電源無法持續(xù)供電的情況,因此應預留鋰電池接口,使得設備在脫離外部電源后仍可正常使用。設備選用的電壓轉(zhuǎn)換芯片是TI公司生產(chǎn)的TPS62133,這是一種同步壓降型DC-DC轉(zhuǎn)換器,內(nèi)部開關頻率高達2.5 MHz,小容量電容即可配套使用。通過該電路,即可為系統(tǒng)提供穩(wěn)定的5 V電平,但5 V電平不能直接為外接鋰電池供電,也不能驅(qū)動Edison核心模塊,因此需設計二級電平轉(zhuǎn)換。其電路設計原理圖如圖2所示。
圖2 BQ24074電源轉(zhuǎn)換電路
(3)TF卡槽及電平轉(zhuǎn)換。Edison系統(tǒng)默認保存在板載eMMC閃存上,但其4 GB的存儲空間無法滿足嵌入式Linux系統(tǒng)。由于Edison核心板提供了SD卡信號接口,在擴展板上設計了TF卡接口,將Linux文件系統(tǒng)保存在TF卡上,解決了存儲空間問題,也使系統(tǒng)批量制作以及數(shù)據(jù)備份變得簡單。電路設計原理圖如圖3所示。
(4)USB接口。因為HackRF需要通過USB與安卓設備連接,Edison擴展板也需要添加USB接口。Edison核心板本身具有高速USB收發(fā)器,支持一路USB OTG,通過添加硬件接口實現(xiàn)USB HOST功能。電路設計原理圖如圖4所示。
(5)調(diào)試串口。終端開發(fā)和使用過程中,為了方便直接操作系統(tǒng)及獲取數(shù)據(jù),需要能以命令行的形式進入Edison內(nèi)的操作系統(tǒng),Edison核心板信號接口中包括了一路UART串口信號,由于大多主機使用串口不方便,擴展板上設計了串口轉(zhuǎn)USB模塊,并配套了Micro-USB接口。限于篇幅這里不再給出具體的電路設計原理圖。
(6)PCB設計。利用Altium designer軟件進行PCB設計,采用雙層板設計,將USB、TF卡槽、電源接口以及調(diào)試串口放置在擴展板外圍,方便外設連接,電容、電阻等元器件選擇0603封裝,實現(xiàn)板子小型化、輕型化。限于篇幅這里不再給出具體的PCB設計原理圖。
2.2.1 HackRF驅(qū)動移植
在系統(tǒng)安裝完成后,需要將HackRF的設備驅(qū)動程序及GNU Radio開發(fā)環(huán)境移植到目標板,程序源碼可在Github得到。需要使用Intel提供的GCC交叉編譯器i586-poky-linux-gcc在PC機上先進行交叉編譯無誤后再到Edison系統(tǒng)安裝。以Hack RF驅(qū)動程序編譯過程為例,在獲得源碼文件后新建host/build目錄,用來保存編譯過程中產(chǎn)生的中間文件和編譯產(chǎn)生的結果。在編譯前需要源碼進行cmake操作,編譯器配置為相應的交叉編譯器。配置完成后選擇編譯的目標文件并配置所需組件,執(zhí)行cmake操作開始編譯配置,待編譯完成后在build目錄生成用于最終編譯的Makefile腳本。此時編譯產(chǎn)生的文件已經(jīng)保存到了build目錄下,通過開發(fā)板將編譯完成的整個驅(qū)動程序文件導入Edison系統(tǒng)的/root目錄,再到build目錄下執(zhí)行make install命令將編譯好的程序安裝到系統(tǒng)相應的位置,完成驅(qū)動程序的安裝部署。
圖3 卡電平轉(zhuǎn)換電路
圖4 USB接口電路
2.2.2 服務器端軟件
NET服務器管理軟件采用微軟ASP.NET4.0和WPF4.0作為底層開發(fā)框架,充分利用Framework4.0提供的各種特性來保證整個架構的穩(wěn)定性,同時也保證了系統(tǒng)架構未來的可擴展性。NET服務器管理軟件由二部分構成:數(shù)據(jù)采集軟件和終端接口軟件,其中數(shù)據(jù)采集軟件通過Socket套接字建立TCP Server監(jiān)聽來自TCP Client(即安卓智能終端)的請求命令,進行通信過程的控制和頻譜信息的傳輸。終端接口軟件通過Service接口讓PC端分析軟件調(diào)用相應的接口實現(xiàn)對所需頻譜信息的獲取和分析處理。服務器端軟件的工作流程如圖5所示。
圖5 服務器端軟件工作流程
2.2.3 Android客戶端軟件
Android客戶端軟件開發(fā)采用Java語言在Eclipse開發(fā)平臺下開發(fā)。Android客戶端軟件允許用戶查看、控制及進行個性化設置等操作[14]。Android客戶端軟件設計主要包括以下3個部分:①客戶端與HackRF數(shù)采終端之間的串口通信、參數(shù)配置;②客戶端與數(shù)據(jù)庫服務器之間基于Socket協(xié)議的通信;③界面交互的設計。在功能實現(xiàn)上將串口通信和數(shù)據(jù)傳輸分別放在二個線程中運行,避免線程阻塞,降低資源的消耗,提升效率。這里實現(xiàn)頻譜檢測的過程大致為:首先天線將接收到的原始信號傳輸給射頻模塊,經(jīng)過處理后得到基帶信號,繼而將該基帶信號通過USB傳輸給主控設備,主控設備再處理接收到的信號。這里是在GNU Radio中將數(shù)據(jù)進行處理后傳輸?shù)竭h程數(shù)據(jù)庫服務器中進行存儲。安卓終端在確定檢測的頻段范圍后,開始對頻段進行掃描感知,同時對當前條件下頻譜的使用情況進行初步的分析,以實時獲取各頻點的能量值并顯示在屏幕上。核心代碼的實現(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ù)據(jù)不是非常的準確。因此需要對中頻附近的數(shù)據(jù)重新進行采樣,同時將原有的中頻數(shù)據(jù)覆蓋,以盡可能保障采集數(shù)據(jù)的準確率。
2.2.4 PC端分析軟件
這里PC端分析軟件開發(fā)使用C#語言在VS2015開發(fā)平臺下開發(fā)。PC端分析軟件是整個系統(tǒng)中最主要的部分,負責完成對海量頻譜數(shù)據(jù)按需進行處理分析,進而以一種直觀易懂的方式顯示給檢測用戶。該模塊的軟件設計主要實現(xiàn)以下4個功能:①連接數(shù)據(jù)庫服務器,根據(jù)所選取的檢測頻段范圍,設置步進帶寬長度,進而動態(tài)地顯示所選頻段各頻點信號的實時能量值分布情況;②根據(jù)各頻點信號能量值的大小,設置合理的閾值以篩選掉噪聲信號,進而實時計算出各頻點信號的占用度情況;③鑒于頻域上的占用度統(tǒng)計情況能給出的結論有限,無法立體直觀的觀測頻譜信號在時域上的實時狀態(tài),故設計了由時間、頻率、信號能量值構成的三維瀑布圖,以一種三維立體的方式動態(tài)直觀的向需求用戶進行展示,豐富檢測功能;④根據(jù)各頻點的占用度情況,選擇優(yōu)化的數(shù)據(jù)處理算法,得出所測頻段的整體占用度情況,進而以一種全局性的方式指導認知用戶選擇合適的通信頻段盡可能實現(xiàn)無干擾通信。本模塊中閾值的設置存在人為主觀因素,實際檢測中的閾值設置要根據(jù)測量環(huán)境做綜合性考量,這里不在此做具體的闡述。
2.2.5 數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫是整個系統(tǒng)設計中的關鍵部分,數(shù)據(jù)庫結構設計的好壞,將會直接影響到系統(tǒng)功能的實現(xiàn)程度以及后期海量數(shù)據(jù)維護的難度。由于頻譜數(shù)據(jù)結構復雜,數(shù)據(jù)量大,因此需要建立關系型數(shù)據(jù)庫來減少冗余,提高系統(tǒng)運行時的效率[15]。根據(jù)監(jiān)測數(shù)據(jù)庫的特點和功能需求,將數(shù)據(jù)庫系統(tǒng)分為3個子模塊,包括數(shù)據(jù)管理、數(shù)據(jù)分析、數(shù)據(jù)回放。其功能模塊和各模塊的功能如圖6所示。根據(jù)數(shù)據(jù)庫系統(tǒng)的功能模塊和實際需求,設計了不同的數(shù)據(jù)表結構,限于篇幅這里僅列出核心的數(shù)據(jù)表(如表1~表3所示)。
圖6 數(shù)據(jù)庫系統(tǒng)功能模塊
序號字段名稱描述字段類型說明1terminal_id唯一編號varchar主鍵2hack_idHackRF編號varchar3aerial_id天線編號varchar4transmit_power發(fā)射功率float5gain天線增益float6hight天線高度float7cover_area覆蓋范圍float8ipaddress設備IP地址char9port設備端口號int
表2 頻率信息
表3 占用度統(tǒng)計
在搭建好HackRF數(shù)采終端并成功連接電源和智能手機終端后,對系統(tǒng)進行綜合測試,主要測試以下二方面:智能手機終端能否實現(xiàn)對HackRF數(shù)采終端采集到的原始頻譜數(shù)據(jù)進行初步處理后,發(fā)送到遠程數(shù)據(jù)庫服務器中;PC端分析軟件能否成功訪問數(shù)據(jù)庫并實現(xiàn)前面所述的頻譜分析功能。
待系統(tǒng)正常運行后,在手機終端APP中通過USB與HackRF數(shù)采終端取得連接,設置所需采樣參數(shù),開啟手機GPS定位模式,開始對原始的頻譜信號進行采集,信號的具體處理過程前面已有講述,這里不再贅述。終端對采集來的原始信號進行初步的處理并在本地緩存部分數(shù)據(jù),手機APP上實時顯示所測頻段中頻率對應的信號強度,同時通過無線通信網(wǎng)絡將數(shù)據(jù)上傳到數(shù)據(jù)庫服務器中。這里對100 Mhz~900 Mhz進行全頻段掃頻,處理結果如圖7所示,同時給出專業(yè)頻譜儀所測同頻段的檢測結果如圖8所示。對比圖7和圖8可以發(fā)現(xiàn)本系統(tǒng)所測數(shù)據(jù)和專業(yè)頻譜儀所測數(shù)據(jù)基本一致,都在信號較強的頻段較為明顯,驗證了所述技術方案的可行性和優(yōu)越性。
圖7 終端所測頻段結果
圖8 專業(yè)頻譜儀檢測結果
PC端數(shù)據(jù)分析軟件通過IP地址和端口號連接數(shù)據(jù)庫服務器,通過設置起始頻率、終止頻率獲取所要分析頻段的頻譜數(shù)據(jù),通過設置閾值過濾噪聲信號篩選出有效信號,這里閾值設置為30 dbuv。經(jīng)處理后,客戶端可以顯示頻率對應的信號強度,由時間、頻率、信號強度構成的三維瀑布圖,頻率占用度,最后由頻率占用度計算出所測頻段的占用度。處理結果如圖9所示,可以看到所測FM通信頻段頻段的局部占用度為36%,界面清晰簡潔,功能完善。
圖9 PC端分析軟件處理效果
基于軟件無線電與數(shù)據(jù)庫的頻譜檢測與分析系統(tǒng),針對海上及移動過程中,頻譜檢測環(huán)境復雜,大型高精度檢測儀器不便攜帶,數(shù)據(jù)量大難以保存與管理的問題,使用HackRF板卡搭載全向天線作為信息采集終端實現(xiàn)移動式信號采集,利用安卓設備的通用性及應用的可移植性實現(xiàn)初步的信息處理、顯示和傳輸,構建關系型數(shù)據(jù)結構來減少海量頻譜數(shù)據(jù)間的冗余,同時基于.NET框架開發(fā)頻譜分析軟件,保證系統(tǒng)運行的穩(wěn)定性及未來的可擴展性。真正實現(xiàn)了便攜式、可移動、多功能的頻譜分析,具有低成本、低功耗、操作簡便、靈活性強的優(yōu)點。作者后續(xù)工作將致力于實現(xiàn)分布式數(shù)據(jù)庫下的數(shù)據(jù)存儲,搭建頻譜感知信息數(shù)據(jù)庫,為實現(xiàn)區(qū)域動態(tài)頻譜接入與管理提供新思路。