?

基于Android的頻譜處理顯示系統設計

2018-03-08 08:52秦少飛竺小松
計算機測量與控制 2018年2期
關鍵詞:控件幅度頻譜

秦少飛,竺小松

(解放軍電子工程學院 電子對抗學院,合肥 230037)

0 引言

第三次技術革命后,互聯網技術進入了一個飛速發展的時代,人類的生產生活方式都發生了質的飛躍。移動互聯網技術以及智能手機的普及應用,使得人們可以隨時隨地的獲取各類信息,為方便人類日常生活工作,各類電子產品都在不斷向智能化、小型化發展。谷歌在2007年建立了開放手持設備聯盟,此后,所有個人和廠商都能在Android 平臺上開發應用軟件[1-2]。 Android 系統自其推出以來 ,因為開源的系統和豐富的軟件資源,迅速得到了廣大愛好者以及許多廠商的支持[3-4],成為占有率最高的智能手機操作系統。隨著Android系統的不斷完善,Android系統逐漸拓展到更多的領域:平板電腦,電視,游戲機,數碼相機,機頂盒甚至遙控器。目前Android系統的設備數量已經超過10億臺。

在現代的信號分析的方法中,頻譜分析在各個學科的領域有著廣泛的應用,是從事各種電子產品的研發、生產、檢驗的重要依據[5]。目前國內外比較常見的頻譜儀系統是基于Xilinx Virtex系列的FPGA的數字信號處理系統[6],近年來,美國加州大學伯克利分校在研制類似的頻譜儀,其功能包括高速采樣量化信號、頻帶調制、濾波、傅里葉變換和對數字信號的高速傳輸,這一系列頻譜儀的主要特點是具有多個Z-DOK接口,可以接駁多種I/O板(包括雙路1GSa/s的采樣卡或者四路250 MSa/s的模數,數模轉換卡)[7],德國馬普研究所近來也在研發一種擴展帶寬快速傅里葉變換頻譜儀系統。但是以上設備體積大,價格昂貴,無法大量部署,不便于攜帶,在很多時候我們需要很方便的對某一塊區域進行信號檢測,比如在保密的會議現場,某科研工作室一些場所等等。開發出方便攜帶的頻譜儀,以便在特殊場合使用。如果結合Android手機的強大處理顯示功能,把Android手機作為頻譜儀顯示控制端,頻譜儀就可以減少很大一部分的設備量,而且不同的安卓手機只需要安裝上顯示控制軟件,就可以實現對頻譜儀的控制,這使得頻譜儀的顯示控制部分更易于維護和更換,同時也可降低生產成本。分布式、多節點、網絡化、常態化、實時性成為發展趨勢,這一切都對設備提出了小型化、簡約化的需求。

鑒于這樣的應用背景,設計了一種基于Android手機的頻譜處理顯示系統,利用它在手機上實時的顯示出信號的頻譜圖。本文首先介紹了軟件開發環境的構建,搭建了電腦與智能移動終端(手機)交互測試驗證平臺,利用PC或手機作為Service,對Client進行信息傳遞和控制操作,著重研究手機端Android環境下的信息傳遞與控制操作實現方法。通過對手機屏幕的觸摸式操作,完成頻譜數據的處理顯示,實現測量參數設置,最大值跡線跟蹤,最小值跡線跟蹤,Mark點標記,多Mark點標記,閾值基線,窗口閾值等功能。

1 軟件開發平臺的環境構建

1.1 無線網絡組建

本次設計采用固定的主控機作為Service,其他WiFi模塊和手機作為Client,進行組網,手機端或其他Client通過PC進行信息傳遞和控制操作。如圖1所示。

圖1 簡單組網示意圖

設計的所涉無線網絡節點采用海凌科電子出品的WiFi模塊HLK-RM04,其屬于基于通用串行接口嵌入式UART-WIFI(串口-無線網)模塊,成本低廉性能高,并且HLK-RM04增加了對以太網的支持。

HLK-RM04/RM30/35系列模塊是為串行接口的設備提供互聯網接入,實現串行數據在Internet網絡上的延伸傳輸,可進一步拓展串行接口設備的使用范圍,增強其在不同場合的適用性,擴大其數據傳輸距離。

模塊默認配置為工作在AP模式下,該模式下,WIFI 使能,工作在AP 模式下,HLK-RM04的ETH1、ETH2 功能使能,ETH1 作為WAN,ETH2作為LAN。通過適當的設置,COM1 的數據與網路數據相互轉換。如圖2所示。

圖2 模塊默認工作模式

1.2 軟件開發環境構建

設計PC端的程序開發是基于Visual Studio環境進行, Visual Studio擁有一套完善的開發系統,包括編程開發,調試測評,性能評估等工具,編寫的代碼可用于Microsoft所支持的所有平臺,支持Visual C++、Visual Basic,Visual C#,Visual F# 等眾多語言開發。在本系統中主要使用C#語言在Visual Studio中開發TCP服務器端程序。程序設計分成3個模塊:搭建服務模塊、接收顯示模塊和發送模塊。

測試使用TCP&UDP測試工具,對于TCP_Service的測試,測試工具作為客戶端連入TCP_Service,為了模擬PC端的多點轉發控制,測試中測試工具模擬接入兩個測試客戶端。當連接成功時客戶端會首先發送一段可收到服務器發送的連接成功提示信息“ ok!Client connect successful!” 在客戶端1和客戶端2的發送框分別輸入“Test information from Client 1”和“Test information from Client 2”,點擊發送,便可在服務器端接收到來自兩個客戶端的測試信息。

1.3 Android開發環境的搭建

Android系統的開發環境搭建步驟如下:

1)安裝java SE Development(JDK) ;

2)配置環境變量;

3)安裝Eclipse ;

4)安裝Eclipse插件(ADT)與Android-SDK。

平臺環境架構如圖3所示。

圖3 開發環境關系圖及模擬器界面

2 手機端頻譜處理顯示app設計與功能實現

2.1 軟件設計

頻譜儀設計基于頻譜測量硬件模塊,本文設計編寫的手機客戶端APP,通過向模塊發送控制指令,控制模塊對頻譜信號的測量,收到測量數據后,手機屏幕觸摸操作可以對頻譜數據進行處理顯示,實現測量參數設置,最大值跡線跟蹤,最小值跡線跟蹤,Mark點標記,多Mark點標記,閾值基線,窗口閾值等功能。

本文編寫了頻譜分析處理數據的顯示和控制APP。設計編寫的Android客戶端采用了XML語言和Java語言。在Eclipse環境下,利用XML語言作為軟件界面布局設計和屬性定義的工具,并采用“id”的方式建立操作句柄。利用Java語言編寫底層操作的驅動程序。兩者通過“id”傳遞消息。該APP基于WIFI互聯的模式,使用WIFI傳遞SCPI協議,向頻譜模塊發送控制指令,控制調整頻譜儀參數,同時接收頻譜儀返回的頻譜數據,在后臺處理,并送至手機屏幕實時顯示刷新。

除具有常規頻譜儀的基本功能外,還結合安卓系統特點,融入了觸屏的操作方式。例如可以加入兩點滑動的方式來控制頻譜視圖的大小和位置,捕捉兩點坐標,算出坐標的差值,根據差值變化趨勢調整頻譜;可以單點觸摸,根據捕捉單點坐標變化來調整頻譜位置,實現放大后的頻譜的拖動;還可以通過雙擊來使視圖恢復默認大小,雙擊動作的判斷由兩次點擊時間差實現。根據不同設計需求,均可結合安卓系統各類控制來實現。

2.2 APP功能實現

2.2.1 頻率全景顯示

全景顯示如圖4所示。手機端APP向MSA830發送SCPI指令,MSA830返回由五百個幅度數據組成的頻譜數據組,APP通過一個定時器,定時向頻譜儀模塊發送SCPI,然后異步線程接收頻譜數據指令。

圖4 頻率全景顯示

在接收到數據以后,首先對數據進行拆分,把幅度數據組成的字符變量拆分為500個double型變量,為了方便存儲,把500個double型變量賦值給一個double型數組。在顯示時使用了GitHub上的開源庫AChartEngine,動態顯示頻譜曲線。曲線橫軸為序列1~500,縱軸為頻譜頻率點的幅度值。顯示過程中使用For循環把500個幅度加入到曲線的數據表中,然后在同時刷新屏幕,更新視圖上的顯示曲線。每秒接收一組數據,刷新一次曲線。APP中頻譜刷新涉及的部分例程包括:定時器流程、異步接收數據線程代碼和數據刷新。頻譜刷新程序流程圖如圖5所示。

圖5 APP頻譜刷新部分流程圖

2.2.2 分頻段顯示(1~100 MHz)

分頻段顯示如圖6所示。參數的SCPI指令如下:

:FREQ:STAR 1 MHz;

:FREQ:STOP 50 MHz;

:FREQ:CENT 100 MHz。

圖6 分頻段顯示(1~100 MHz)

分別設置起始頻率,終止頻率,中心頻率各為1 MHz,100 MHz,50 MHz。為了控制線程的數量,設置頻率的指令放和刷新頻譜數據的指令放到同一線程發送。程序中通過一個文本框EditText輸入參數,然后加入控制指令的格式字符,組成SCPI控制指令,而后通過Socket發送給頻譜模塊,實現控制。

2.2.3 頻譜的放大及縮小

通過兩點的滑動控制頻譜圖的放大和縮小,便于觀察波形等場合。放大縮小通過觸摸監聽OnTouchListener來控制,其包含手指接觸屏幕、在屏幕上滑動、離開屏幕3個動作,每次動作觸發中斷,讀取接觸點坐標的X和Y值,便可實現對屏幕的動作響應。如圖7所示。

圖7 頻譜的放大極其縮小

2.2.4 多Mark點同時標記

Mark點是頻譜參數測量的基礎,頻譜儀從本質上講就是對Mark點的操作,雙Mark點的X軸差值,Y軸差值,最大值跡線,最小值跡線等,都必須基于Mark點實現。如圖8所示。Mark點用菱形標注,加上不同的顏色表示不同的Mark,Mark點的含義是記錄標記點的幅度和頻率,一般會標記最大值,但是隨著數據的刷新,最大值點不是每次都是最大值,頻譜儀中對最大值得追蹤采用PeakSearch來實現,Peak可以是最大值最小值左峰值右峰值。

圖8 多Mark點標記

首先是Mark和Peak最大值的實現,在接收數據拆分完成后,把值傳遞給頻譜線的表的時候,首先給出一個比所有幅度值小的值max,然后把max逐一同500個幅度值進行比較,當幅度值比max大時把幅度值傳遞給max,同時記錄下該幅度值在500個數據中的序列位置index,當500個都比較完后,遍找出了一組數據中的最大值和所在位置,完成一次Paek最大值操作。然后把Mark點值加入Mark曲線,Max為Mark點的Y值,index為Mark點X值。Mark曲線與頻譜曲線為兩條不同的曲線,一般情況下Mark曲線只有一個標記點。第一次peak操作完成后得到的序列位置index直到下一次Peak之前都保持不變,在每一幀數據刷新時,在頻譜曲線加入全部五百個數據,在Mark曲線只加入序列位置為index的點的幅度值,實現對頻率點的標記。

在實際頻譜儀中,需要對Mark點具有顯示和不顯示兩種模式狀態,在程序中使用布爾型變量對Mark點是否顯示來控制,用按鍵控件作為控制接口,當按鍵第一次被點擊時,設置控制變量為True,再次點擊時設置控制變量的值為false,在刷新對時控制變量進行判斷,值為true則刷新Mark曲線的數據,值為false則不更新。另外還有Peak最小值,與Peak最大值類似,Peak時比較,將一個比所有幅度值大的值min跟幅度值比較,幅度值比min值小時,把幅度值賦值給min,得到序列位置index,刷新時加入index位置處的幅度值,實現標記。

2.2.5 側邊欄SlideMenu

為了使用更多的屏幕來顯示頻譜圖形,APP采用3種方式來隱藏暫時不用的控件,第一種是上拉或下拉控件欄。把控件群放在一個SCROllVIEW之中,使用時向上或者向下拉動;如圖9所示。

圖9 scrollview

第二種是通過控件點擊,交替顯示或隱藏下一級控件欄。在使用時將控件的Visibility 屬性設置為GONE,在使用之前設置將控件的Visibility 屬性為VISIBLE;使用效果如圖10所示。

圖10 交替顯示或隱藏控件欄視圖

第三種是使用側邊欄的方式,把控制接口放在左邊的側邊欄,需要使用時在屏幕左邊緣向右滑動,便可拉出側邊欄。如圖11所示。側邊欄的添加相對比較復雜,需要使用SlideMenu開源庫。

圖11 側邊欄視圖

側邊欄控制拉出的控制接口是觸摸點的位置,當觸摸點在左邊設定的較小區域內時,控制側邊欄向右滑出,就能實現對向右滑動動作的判斷。

2.2.6 可實時拖動的閾值窗口線

可拖動的閾值線窗口是常規頻譜儀不具有的功能,這是頻譜儀跟安卓系統結合的一次嘗試,靈感來源于Mark和閾值線,閾值線具有一定的帶寬,可以通過拖動來測量峰值的幅度值??赏蟿娱撝稻€以觸摸屏作為控制接口,通過捕獲劃動動作時觸摸點的坐標,然后將坐標轉換為頻譜圖形顯示模塊的坐標,再將轉換后的坐標同幅度值比較,從而算出觸摸點所對應的的幅度值,并將觸摸點對應的幅度值轉換成字符串,在屏幕上利用TextView顯示出來,向使用者反饋控制信息,實現人機交互閾值線的拖動的觸發與頻譜視圖的拖動觸發相同,二者在控制接口上相沖突,為了區分二者,分開控制,程序中采用長按來判斷拖動對象。長按的實現是在觸摸屏幕時觸發計時器,如果觸摸點離開屏幕則清除計時器事件,如果觸摸點在屏幕上觸摸的持續時間較長,使得計時器的值大于設定時間時,計時器綁定的事件被觸發,使得拖動對象轉換為閾值線。

3 系統聯調

3.1 聯合調試方法

聯合調試中使用APP測量70~100 MHz的環境中的短波收音機信號,信號輸入使用87 MHz 50歐姆天線。同時利用還可以測量到部分2 G,3 G,4 G和Wifi信號。

1)啟動TP-link路由器,搭建WiFi環境;

2)設置手機WiFi網關,ip,port等參數;

3)啟動MSA830 頻譜模塊,并用網線連接至路由器;

4)啟動APP;

5) APP連接到頻譜模塊;

6)測量信號,開啟最大值跡線跟蹤功能,記錄信號脈沖。

3.2 聯合調試結果

聯合調試中,通過手機端APP處理的數據和頻譜模塊MSA830 電腦端原廠程序測得的數據進行對比,另外再跟HP公司的E4405B頻譜儀測量結果對比,對比情況圖12和圖13所示。

圖12 全景對比測試顯示結果

圖13 50~150 MHz對比測試顯示結果

通過對比可知,手機端APP和儀器及電腦端的顯示基本是一致的,說明移動終端完全能夠實現頻譜數據處理,并準確地顯示出信號頻譜。

4 結束語

本文基于Android系統和智能移動終端的應用設備控制和聯網的APP技術,設計出一款可以實現頻譜儀手機客戶端顯控操作的app。在Eclipse環境下,利用XML語言作為軟件界面布局設計和屬性定義的工具,并采用“id”的方式建立操作句柄,利用java語言編寫底層操作的驅動程序。該軟件具有良

好的人機操作界面,與傳統頻譜儀相比,其使用更加方便,操作簡單。利用它工程技術人員可以輕松地完成對信號的采集、處理及頻譜分析。

在后續工作中,將嘗試利用UDP打洞,或WiFi路由器,實現遠端信息傳遞或顯示測控,對其功能進一步完善。通過在PC端增加SQL數據庫模塊,對接收數據進行存儲。增加WIFI模塊端的傳感器的種類與數量與位置分布,組網擴展聯接成巨大的信息網絡,使APP的功能性更加強大。

[1] Matos V, Grasser R. Building applications for the Android OS mobile platform: a primer and course materials[J]. Journal of Computing Sciences in Colleges, 2010, 26(1): 23-29

[2] 丁永明,紀方明.基于Android平臺移動學習軟件的研究與實現[J].數字通信世界,2011,1:66-68.

[3] 朱婷婷, 李 惠. 基于Android的應用軟件的綜述[J]. 電腦與電信,2011(1):42-43.

[4] 李 楊,馮 剛,李 亮,等.基于Android的多媒體應用開發與研究[J].計算機與現代化,2011(4):149-152.

[5] 陸玲霞,彭勇剛.基于安卓頻譜分析儀的探究性實驗設計[J]. 實驗科學與技術,2016,14(4):44-47.

[6] Parsons A, et al.A Scalable correlator architecture based on Modular FPGA Hardware and data Packetization [J].PASP,2008,120(873):1207-1221.

[7] Parsons A, Backer D, Chang C, et al. PetaOp/Second FPGA Signal Processing for SETI and Radio Astronomy[A]. Proc.10th Asilomar Conference on Signals, Systems and Computers, Paci_c Grove[C]. CA, 2006.

猜你喜歡
控件幅度頻譜
單次止損幅度對組合盈虧的影響
一種用于深空探測的Chirp變換頻譜分析儀設計與實現
基于.net的用戶定義驗證控件的應用分析
微波超寬帶高速數控幅度調節器研制
關于.net控件數組的探討
FCC啟動 首次高頻段5G頻譜拍賣
動態頻譜共享簡述
2014年中期預增(降)幅度最大的50家上市公司
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
認知無線電中一種新的頻譜接入方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合