史姣姣 曹曉航 唐震



摘 要:為了實現對頻譜資源的科學、有效管理,提高頻率利用率,設計并實現了基于Android平臺的智能頻譜感知可視化系統。采用MVC軟件模式進行系統框架設計,以實現整體系統結構的高內聚、低耦合。系統架構設計包含監測設備端、服務器端、客戶端、百度地圖4部分,服務器端對采集到的頻譜數據進行FFT(快速傅里葉變換),并保存在MySQL數據庫中,以方便用戶對歷史頻譜數據的查詢與分析。服務端與客戶端采用安全性較高的C/S模式進行數據交互,以保障頻譜信息的安全性。客戶端采用成熟的SurfaceView和Opengl ES技術繪制二維、三維頻譜圖,以豐富應用程序的可視化功能,提升用戶體驗。實際應用結果表明,系統運行效果良好,對監測區域的頻譜使用情況能進行直觀的可視化呈現,可有效幫助監管部門了解監測范圍內的頻譜占用情況。
關鍵詞:可視化管理;智能頻譜感知;數據庫;百度地圖
DOI:10. 11907/rjdk. 182767 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP319文獻標識碼:A 文章編號:1672-7800(2019)007-0137-05
Design and Implementation of Intelligent Spectrum Sensing Visualization System
SHI Jiao-jiao, CAO Xiao-hang, TANG Zhen
( College of Communication Engineering, Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: In order to realize scientific and effective visual management of spectrum resources and improve frequency utilization, an intelligent spectrum sensing visualization system based on Android platform is designed and implemented. The system framework is designed by MVC software mode to achieve high cohesion and low coupling of the overall system structure. The system architecture design includes four parts: monitoring equipment, server, client and baidu map. The server will carry out FFT (fast Fourier transform) on the spectrum data collected, and keep it in MySQL to facilitate the user to query and analyze the historical spectrum data. The server and the client use the highly secure C/S mode for data interaction, which ensures the security of spectrum information. The client uses the mature SurfaceView and Opengl ES technology to draw 2D and 3D spectrograms, enriching the visualization function of the application and increasing the user experience. Results of the real application show that the system has good effects.
Key Words: visual management; intelligent spectrum sensing; database; baidu map
作者簡介:史姣姣(1992-),女,杭州電子科技大學通信工程學院碩士研究生,研究方向為電磁環境可視化;曹曉航(1994-),男,杭州電子科技大學通信工程學院碩士研究生,研究方向為軟件無線電;唐震(1995-),男,杭州電子科技大學通信工程學院碩士研究生,研究方向為移動通信。
0 引言
在無線通信技術快速發展的背景下,無線網絡、通信基站與個人移動通信的業務需求量不斷增加[1-2],無線通信對無線電頻譜也提出了更高要求。目前,靜態頻譜管理通常采用無線電頻譜管理方式,主要通過授權方式,固定用戶使用特定的頻譜資源,即使授權用戶不使用頻譜資源,其他用戶也不能占用該資源,從而導致頻譜資源分配不均勻、利用率低[3-5]。
為了實現移動通信系統的頻譜共享以及對無線電頻譜的智能可視化管理,靜態管理方式逐漸轉向動態管理方式,智能頻譜感知可視化成為重要的研究方向。目前,我國研究人員已在無線電頻譜感知可視化分析方面開展了大量研究,并取得了一定成果,如聶俊嵐等[6]實現了對電磁信號的多維度特性進行交互式分析;方斌[7]設計并實現了一個頻譜分析軟件,通過仿真得到能量分布圖、頻譜占用圖與時頻圖等。目前我國雖然已能夠搭建起中等規模的頻譜感知可視化網絡系統[8],但由于我國在無線電頻譜感知可視化方面起步較晚,與部分發達國家尚有很大差距。
近年來,Android系統由于具有開源特性,并有著良好的用戶體驗,受到了廣大移動設備廠商與軟件開發人員的重點關注[9-11]。隨著移動終端不斷向智能化方向發展,其提供的信息服務更加豐富,使用也更加便捷。本文目標是基于Android移動終端強大的顯示功能,結合頻譜感知的技術需求及智能可視化發展方向,設計并實現一個智能頻譜感知可視化系統,對監測區域的頻譜使用情況進行可視化呈現,從而幫助監管部門更加直觀地了解監測范圍內的頻譜占用情況。
1 系統介紹
1.1 系統概述
本文設計的基于Android平臺的智能頻譜感知可視化系統架構如圖1所示,共分為監測設備端、服務器端、客戶端與百度地圖4部分。服務端主要用于接收與處理監測設備傳輸的采集信息,并將其存儲于數據庫中進行管理;客戶端主要根據選擇的頻段與時間段查詢數據庫,并將返回的頻譜數據進行多元化顯示與分析;最后調用百度地圖API,以配合監測端進行地理位置及狀態展示。其中,使用JDBC技術作為服務器端與MySQL數據庫的交互技術,可實現對數據庫的快速查詢,并提供標準API接口,同時采用基于TCP/IP 協議的socket技術和JSON數據格式實現客戶端與服務端的數據通信。
圖1 智能頻譜感知可視化系統架構
該智能頻譜感知可視化系統采用MVC軟件開發模式進行應用程序開發,以幫助開發者在開發過程中實現高內聚、低耦合的軟件結構[12],便于后期開發。
1.2 相關概念與技術應用
(1)智能頻譜感知。智能頻譜感知原理是在頻譜感知過程中對周圍環境進行多方位探測與感知[13-15],采用智能、動態的頻譜感知技術采集監測區域的無線電磁頻譜信息,然后根據對區域的了解與認知分析,在不影響其他授權用戶的前提下動態使用閑置頻譜,從而提高頻譜資源利用率。
(2)漸進色算法改進與應用。漸進色算法主要用來描述顏色變化趨勢。本文采用一種簡化的漸進色算法,使其能夠高效、生動地應用于系統中,并在客戶端繪制瀑布圖與三維時頻圖過程中發揮重要作用。利用漸進色算法構建一個顏色值與頻譜幅值之間一一映射的連續函數,顏色值利用RGB三種顏色混合產生,而頻譜幅值是由時域信號經過FFT變換后產生的。改進的漸進色算法代替了之前利用條件語句判斷選擇的函數,從而營造了更加平滑、動態的頻譜可視化效果,同時也便于用戶觀察分析頻譜圖。
2 系統總體設計
2.1 系統模塊設計
智能頻譜感知可視化系統由頻譜信息采集模塊、頻譜數據交換模塊、頻譜可視化模塊、數據庫模塊以及百度地圖應用模塊共5個模塊構成,該系統模塊框架如圖2所示。其中,服務端作為客戶端與監測設備間的中樞紐帶,首先頻譜信息采集模塊負責頻譜數據的采集與網絡傳輸,在不同監測點設置相應監測設備進行穩定狀態下的信號監測,并將采集到的經緯度位置信息、時域頻譜等信息經數據交換模塊實時傳輸到服務端;然后服務端對采集的信息進行解析處理,將經過FFT變換后的頻譜數據存儲到MySQL數據庫中;最后,服務端與客戶端采用TCP/IP socket方式進行數據交互,并且結合百度地圖應用模塊,利用頻譜可視化模塊繪制頻譜圖表。本系統主要研究頻譜數據交互模塊與頻譜可視化模塊。
圖2 系統模塊框架
2.2 系統需求分析
對智能頻譜可視化系統進行需求分析,可通過百度地圖定位方法進一步明確需求。智能頻譜可視化系統的客戶端應具有四大功能,分別為:實時頻譜顯示、頻譜歷史數據查詢與分析、百度地圖定位資源、頻譜數據截屏與共享。
2.3 服務端與客戶端交互設計
本系統數據交互模塊采用C/S(Client/Server)方式,監測設備將采集到的頻譜信息傳輸到服務器端,服務器端將頻譜信息進行解析、處理后,再通過JDBC方式連接MySQL數據庫[16]進行分類存儲與管理,而客戶端主要完成部分頻譜信息的存儲與可視化繪制。兩者分工明確,既不會給服務器端造成過多壓力,也使客戶端具有一定操作權限,從而能在更大程度上發揮該應用程序的功能。因此,本系統交互模式適合采用用戶群體穩定、安全性較高的C/S方式[17]。
2.4 數據庫設計
在本文系統設計中,為了實現客戶端的頻譜數據歷史查詢與分析功能,需要對頻譜數據進行長期保存,因此需要設計合理的存取方式,以保證頻譜數據的完整性、安全性及準確性。在該模塊中主要采用以下兩種方式存取數據:
(1)當天頻譜數據存取。基于對當天頻譜數據分析與統計的業務需求,將該部分數據進行單獨存儲。該數據沒有很強的實時性傳輸需求,只需占用較小的存儲空間。在Android平臺上開發應用程序時,一般使用Android系統自帶的SQlite數據庫[18]。該開發機制使開發者能夠更方便地對數據進行存儲操作。
(2)歷史頻譜數據存取。基于大量數據存儲、備份及分析的功能需求,將規模較大的數據存儲在服務端MySQL數據庫中,在客戶端進行數據分析時,可以快速獲取該部分數據。
2.5 智能頻譜感知可視化平臺設計
本文采用C/S模式(客戶端/服務器)設計智能頻譜感知可視化平臺的應用程序架構[19],用戶與客戶端的界面交互是基于Android組件實現的。客戶端訪問服務器,再由服務器訪問MySQL數據庫獲得數據,最終將數據庫中的數據傳輸到Android界面進行顯示,從而實現對頻譜數據的二維與三維可視化展示。具體實現方式為將某一段時間內具體監測點特定頻段的頻譜數據以頻譜圖與對應數據表的形式顯示出來。因此,客戶端需要調用百度地圖SDK接口的地圖展示與定位等功能,在百度地圖模塊,用戶點擊監測點號,指示服務器端操作數據庫并返回該監測點范圍內的頻譜數據,從而將相關頻譜數據呈現在客戶端。
3 系統實現
3.1 服務端與客戶端交互實現
本系統中服務器端通過使用java.net.ServerSocket類的構造方法獲取一個端口[20],同時偵聽客戶端數據請求。客戶端創建TCPClient對象,根據IP地址與端口號連接服務器,連接成功后通過SendData方法向服務端發送頻譜數據請求。雙方成功建立連接后,使用I/O流進行數據交互,客戶端和服務端都有輸入流與輸出流,以實現數據請求與頻譜數據傳輸等功能。
本系統規定客戶端與服務端通信采用Json數據格式,其格式用例為:
第一個對象的含義是幅度值ampl=22.56。
第二個對象的含義是頻譜數據產生時間,精確到秒。
第三個對象的含義是監測設備的IP地址為192.168.1.7。
第四個對象的含義是當前頻率值。
服務端每次接收到客戶端的頻段請求命令后,連接并查詢數據庫,并返回相應結果數據。每次發送2 048個數據,并以“end”作為結束符。
當客戶端收到服務端的回復時,將接收的Json格式數據解封裝為String,對解封裝后的數據進行解析,分別得到監測點IP地址、頻率、頻率點對應幅值、頻譜產生時間,并在繪圖表程序中調用相關數據,以實現頻譜的可視化功能。
3.2 數據庫實現
不論在MySQL數據庫還是客戶端的SQlite數據庫,均需要對頻譜信息進行存儲,因此設計以下兩張數據表:
(1)監測設備信息表。該數據庫記錄了智能頻譜感知可視化系統監測設備的基本信息表,以便頻譜管理人員查閱。該表具體實現內容包含監測點ID號、經度、緯度、監測點IP地址與監測設備工作狀態。監測設備狀態分為忙碌、閑置兩種。1代表忙碌,說明監測設備正在運行中;0代表閑置,說明監測設備處于未檢測狀態。
(2)頻譜數據表。記錄監測設備的日常數據,包含實時頻譜數據與部分統計數據。存儲由監測設備收集到的時域數據經FFT(快速傅里葉變換)處理后獲得頻率值及對應幅值,存儲在頻譜數據表中。本系統中頻譜數據表具體內容包括頻率點、對應幅值、監測點IP地址和時間。
3.3 智能頻譜感知可視平臺實現
(1)主界面實現。本系統界面風格力求美觀、簡潔。客戶端主界面左側欄羅列出本可視化平臺實現的主要功能;界面右上方是搜索設置按鈕,可進行特定頻段與時間段設置以及頻譜數據查詢;界面正中為地圖控制臺,在百度地圖背景下,呈現用戶實時定位以及監測設備的地理位置與工作狀態。圖表顯示功能需點擊按鈕跳轉到下一界面,從而增大了頻譜顯示范圍,方便用戶進行操作控制。
(2)頻譜可視化功能實現。本應用程序主要功能是實現頻譜數據的二維、三維可視化展示,可將某一段時間具體監測點特定頻段的頻譜數據以頻譜圖與對應數據表的形式進行顯示。頻譜二維可視化顯示包含全景頻譜圖、單頻點頻譜圖、瀑布圖、數據表4部分內容,如圖3所示。
圖3 頻譜二維可視化界面
全景頻譜圖選取的頻段范圍均為0~300MHZ的圖例,平均劃分為4個頻段范圍,分別用紅黃藍綠4種顏色進行描述繪制,以增強視覺對比度,使用戶得到更好的體驗。
瀑布圖在本系統中的含義是指幅值在一定判別門限下,隨著時間推移,以瀑布上顏色變化的方式顯示出頻譜幅值分布形式,不同幅值對照漸進色算法賦予不同顏色。瀑布圖的呈現形式為橫坐標代表頻率,縱坐標代表時間,顏色代表幅值大小,并在界面右側設置滑動條,可以上下滑動。因此,瀑布圖具有時間記憶功能,方便用戶進行分析,并輕松了解頻譜隨時間變化的規律。
單頻頻譜圖是根據界面右上角設置窗口中頻率與頻段的參數選擇進行頻譜繪制的,用戶可根據實際需要自由選擇頻段范圍,查看并分析特定頻段的頻譜占用情況,從而避免全景頻譜圖顯示范圍的限制。
數據表中包含實時傳來的監測點IP、頻率、幅值、時間4部分內容,當前界面顯示兩行內容,表格右側設置滑動條,用戶可以上下滑動以查看頻譜數據,方便后期進行頻譜數據分析。
考慮到三維狀態下的頻譜圖更有利于用戶查看并分析頻譜占用情況,故在本應用程序中調用OpenGL ES庫繪制了三維頻譜圖。頻譜三維可視化顯示主要以單頻點時頻圖顯示功能為例,如圖4所示。單頻點時頻圖顯示重點在于實時獲取一段時間內特定頻域的信號幅值,將其動態變化過程使用三維直方圖方式動態展示出來。為了增強頻譜圖的三維立體體驗感,本系統中用戶可對三維時頻圖進行手勢360°旋轉、移動、縮放等操作,從而對頻譜信息進行多角度觀察分析。
圖4 三維時頻圖
4 系統測試
對系統需要實現的4個功能進行測試分析,由于系統實現部分已展示出應用程序的頻譜可視化功能,所以本部分主要進行頻譜歷史數據查詢與分析、百度地圖定位以及頻譜截屏與共享的功能測試。
4.1 頻譜歷史數據查詢與分析
頻譜歷史數據查詢與分析具體測試過程如圖5所示。在圖5(a)中,用戶通過點擊二維頻譜圖界面右上方的選擇窗口,選擇時間段與頻段范圍,TCP服務器端接收到客戶端的數據請求,即向客戶端發送2018-11-15 15:56~2018-11-15 16:26時間內,頻段范圍為[158,162]MHz的頻譜數據。圖5(b)為客戶端收到數據后的頻譜顯示界面。
(a) 頻段與時段設置
(b)客戶端界面
圖5 頻譜歷史查詢與分析
4.2 百度地圖定位
百度地圖定位測試用例如圖6所示,本應用程序首先用紅色標簽將頻譜資源監測設備的位置信息顯示在地圖上,其次用底部圓圈顏色區分監測設備當前狀態,紅色說明處于忙碌狀態,綠色說明處于閑置狀態,從而使用戶直觀、清晰地了解設備監測狀態,并且每次點擊監測點按鈕都會通過彈框提醒與用戶當前距離,讓用戶對地理位置具有明確認識。在界面右上角的設置窗口里,用戶可以自由切換地圖類型與定位模式,且界面較為美觀,方便用戶操作。
圖6 百度地圖定位資源
4.3 頻譜截屏與共享
頻譜數據截屏與共享功能是頻譜資源實現持久化保存,以及用戶間分享資源的重要方式。Android為每個圖表界面都提供了截屏與共享的功能控件,經過測試,該客戶端能有效實現頻譜數據的截屏與共享功能。
5 結語
本文以智能頻譜感知理論為基礎,根據對智能頻譜感知系統使用者需求的分析,建立智能頻譜感知系統架構,然后對系統進行整體設計,并對系統中的客戶端應用程序進行測試。測試結果表明,系統運行效果良好,可對監測區域的頻譜使用情況進行直觀的可視化呈現,從而實現對頻譜資源科學、有效的管理。本文是對智能頻譜感知可視化系統在移動終端環境下的創新嘗試,系統設計不同于傳統無線頻譜感知系統,因此可為后續研究提供一定參考,并有著廣闊的應用前景。
參考文獻:
[1] 唐朝京, 劉培國. 電磁頻譜安全問題探討[J]. 國防科技, 2011, 32(4): 18-20.
[2] PAWELCZAK P,NOLAN K,DOYLE L, et al. Cognitive radio: ten years of experimentation and development[J]. Communications Magazine, 2011, 49(3): 90-100.
[3] DAS D,DAS S. A survey on spectrum occupancy measurement for cognitive radio[J]. Wireless Personal Communications,2015,85(4): 2581-2598.
[4] 張玉崗. Android平臺實時頻譜監測軟件設計與實現[D]. 成都:電子科技大學, 2014.
[5] 季中原. 頻譜感知可視化系統的設計與實現[D].上海:上海師范大學,2016.
[6] 聶俊嵐,田茂春,郭棟梁,等. 交互式平行坐標多維電磁態勢可視分析[J]. 燕山大學學報,2013,37(6): 542-546.
[7] 方斌,馬杰,孫克宇. 電磁頻譜可視化系統的設計與實現[J]. 系統仿真學報,2015, 27(9): 33-38.
[8] 李鵬,俎云霄. 一種新的認知無線電頻譜感知方法[J]. 通信技術, 2009(12): 38-39.
[9] CAI W. Research on competitive advantage mechanism of the mobile Internet ecosystem[C].Iet International Conference on Communication Technology & Application. IET, 2012.
[10] ENCK W, OCTEAU D, MCDANIEL P D, et al. A study of android application security[C].USENIX security symposium,2011.
[11] 秦少飛, 竺小松. 基于 Android 的頻譜處理顯示系統設計[J]. 計算機測量與控制, 2018(2): 211-214,218.
[12] 徐春雨. MVC模式在Web管理信息系統中的應用[J]. 福建電腦, 2014, 30(4):175-176.
[13] 王軍,李少謙. 認知無線電:原理, 技術與發展趨勢[J]. 無線電技術與信息, 2007 (7): 27-31.
[14] 周賢偉,辛曉瑜,王麗娜,等. 認知無線電安全關鍵技術研究[J]. 電信科學, 2008(2):72-77.
[15] 李琳. 基于博弈論的認知無線電頻譜共享算法研究[D]. 北京:北京郵電大學, 2009.
[16] 高昂,魏惠茹,李曉東. JDBC數據庫訪問技術探究[J]. 信息與電腦:理論版,2015(13):93-94.
[17] 徐懷志,趙航. 基于安卓平臺的電磁頻譜監測應用程序的開發[J]. 電子測試, 2016(13):32-33.
[18] 林培杰,朱安南,程樹英. Android 數據庫 SQLite 性能優化[J]. 計算機系統應用,2014, 23(4): 193-196.
[19] 張勇. 基于Android的智能點餐系統設計[J]. 電子測試, 2017(22):73-74.
[20] 雍成明,張昊,程晨. 基于Socket的公安交通集成指揮平臺多線程通信協議測試技術研究與開發[C].中國智能交通年會,2016.
(責任編輯:黃 健)