国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android的頻譜處理顯示系統(tǒng)設(shè)計(jì)

2018-03-08 08:52秦少飛竺小松
計(jì)算機(jī)測量與控制 2018年2期
關(guān)鍵詞:控件幅度頻譜

秦少飛,竺小松

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

0 引言

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

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

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

1 軟件開發(fā)平臺的環(huán)境構(gòu)建

1.1 無線網(wǎng)絡(luò)組建

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

圖1 簡單組網(wǎng)示意圖

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

HLK-RM04/RM30/35系列模塊是為串行接口的設(shè)備提供互聯(lián)網(wǎng)接入,實(shí)現(xiàn)串行數(shù)據(jù)在Internet網(wǎng)絡(luò)上的延伸傳輸,可進(jìn)一步拓展串行接口設(shè)備的使用范圍,增強(qiáng)其在不同場合的適用性,擴(kuò)大其數(shù)據(jù)傳輸距離。

模塊默認(rèn)配置為工作在AP模式下,該模式下,WIFI 使能,工作在AP 模式下,HLK-RM04的ETH1、ETH2 功能使能,ETH1 作為WAN,ETH2作為LAN。通過適當(dāng)?shù)脑O(shè)置,COM1 的數(shù)據(jù)與網(wǎng)路數(shù)據(jù)相互轉(zhuǎn)換。如圖2所示。

圖2 模塊默認(rèn)工作模式

1.2 軟件開發(fā)環(huán)境構(gòu)建

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

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

1.3 Android開發(fā)環(huán)境的搭建

Android系統(tǒng)的開發(fā)環(huán)境搭建步驟如下:

1)安裝java SE Development(JDK) ;

2)配置環(huán)境變量;

3)安裝Eclipse ;

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

平臺環(huán)境架構(gòu)如圖3所示。

圖3 開發(fā)環(huán)境關(guān)系圖及模擬器界面

2 手機(jī)端頻譜處理顯示app設(shè)計(jì)與功能實(shí)現(xiàn)

2.1 軟件設(shè)計(jì)

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

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

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

2.2 APP功能實(shí)現(xiàn)

2.2.1 頻率全景顯示

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

圖4 頻率全景顯示

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

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

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

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

:FREQ:STAR 1 MHz;

:FREQ:STOP 50 MHz;

:FREQ:CENT 100 MHz。

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

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

2.2.3 頻譜的放大及縮小

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

圖7 頻譜的放大極其縮小

2.2.4 多Mark點(diǎn)同時標(biāo)記

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

圖8 多Mark點(diǎn)標(biāo)記

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

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

2.2.5 側(cè)邊欄SlideMenu

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

圖9 scrollview

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

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

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

圖11 側(cè)邊欄視圖

側(cè)邊欄控制拉出的控制接口是觸摸點(diǎn)的位置,當(dāng)觸摸點(diǎn)在左邊設(shè)定的較小區(qū)域內(nèi)時,控制側(cè)邊欄向右滑出,就能實(shí)現(xiàn)對向右滑動動作的判斷。

2.2.6 可實(shí)時拖動的閾值窗口線

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

3 系統(tǒng)聯(lián)調(diào)

3.1 聯(lián)合調(diào)試方法

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

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

2)設(shè)置手機(jī)WiFi網(wǎng)關(guān),ip,port等參數(shù);

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

4)啟動APP;

5) APP連接到頻譜模塊;

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

3.2 聯(lián)合調(diào)試結(jié)果

聯(lián)合調(diào)試中,通過手機(jī)端APP處理的數(shù)據(jù)和頻譜模塊MSA830 電腦端原廠程序測得的數(shù)據(jù)進(jìn)行對比,另外再跟HP公司的E4405B頻譜儀測量結(jié)果對比,對比情況圖12和圖13所示。

圖12 全景對比測試顯示結(jié)果

圖13 50~150 MHz對比測試顯示結(jié)果

通過對比可知,手機(jī)端APP和儀器及電腦端的顯示基本是一致的,說明移動終端完全能夠?qū)崿F(xiàn)頻譜數(shù)據(jù)處理,并準(zhǔn)確地顯示出信號頻譜。

4 結(jié)束語

本文基于Android系統(tǒng)和智能移動終端的應(yīng)用設(shè)備控制和聯(lián)網(wǎng)的APP技術(shù),設(shè)計(jì)出一款可以實(shí)現(xiàn)頻譜儀手機(jī)客戶端顯控操作的app。在Eclipse環(huán)境下,利用XML語言作為軟件界面布局設(shè)計(jì)和屬性定義的工具,并采用“id”的方式建立操作句柄,利用java語言編寫底層操作的驅(qū)動程序。該軟件具有良

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

在后續(xù)工作中,將嘗試?yán)肬DP打洞,或WiFi路由器,實(shí)現(xiàn)遠(yuǎn)端信息傳遞或顯示測控,對其功能進(jìn)一步完善。通過在PC端增加SQL數(shù)據(jù)庫模塊,對接收數(shù)據(jù)進(jìn)行存儲。增加WIFI模塊端的傳感器的種類與數(shù)量與位置分布,組網(wǎng)擴(kuò)展聯(lián)接成巨大的信息網(wǎng)絡(luò),使APP的功能性更加強(qiáng)大。

[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] 丁永明,紀(jì)方明.基于Android平臺移動學(xué)習(xí)軟件的研究與實(shí)現(xiàn)[J].數(shù)字通信世界,2011,1:66-68.

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

[4] 李 楊,馮 剛,李 亮,等.基于Android的多媒體應(yīng)用開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2011(4):149-152.

[5] 陸玲霞,彭勇剛.基于安卓頻譜分析儀的探究性實(shí)驗(yàn)設(shè)計(jì)[J]. 實(shí)驗(yàn)科學(xué)與技術(shù),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變換頻譜分析儀設(shè)計(jì)與實(shí)現(xiàn)
基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析
微波超寬帶高速數(shù)控幅度調(diào)節(jié)器研制
關(guān)于.net控件數(shù)組的探討
FCC啟動 首次高頻段5G頻譜拍賣
動態(tài)頻譜共享簡述
2014年中期預(yù)增(降)幅度最大的50家上市公司
基于嵌入式MINIGUI控件子類化技術(shù)的深入研究與應(yīng)用
認(rèn)知無線電中一種新的頻譜接入方法
阿图什市| 福安市| 太康县| 平遥县| 江阴市| 青田县| 平定县| 改则县| 太康县| 区。| 全州县| 岱山县| 元朗区| 西华县| 民丰县| 庆元县| 宣恩县| 西畴县| 广宗县| 安国市| 健康| 朔州市| 静乐县| 盐城市| 禹州市| 西华县| 汝城县| 蕲春县| 青州市| 五大连池市| 余江县| 桐乡市| 长阳| 鹤山市| 宿州市| 海兴县| 昭通市| 阳曲县| 松原市| 龙口市| 威海市|