《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 遙測(cè)文件截取器軟件設(shè)計(jì)與實(shí)現(xiàn)
遙測(cè)文件截取器軟件設(shè)計(jì)與實(shí)現(xiàn)
現(xiàn)代電子技術(shù)
賈丕軍
摘要: 為解決大容量遙測(cè)數(shù)據(jù)文件的快速分割,軟件針對(duì)遙測(cè)文件以幀為基本單位且每幀頭都含有時(shí)碼的特點(diǎn),,設(shè)計(jì)按特征參數(shù)截取,、按時(shí)間截取以及按幀序數(shù)截取等三種方法以滿足不同的截取要求,。遙測(cè)參數(shù)的解算調(diào)用已成熟的動(dòng)態(tài)鏈接庫(kù),對(duì)于一些耗時(shí)的運(yùn)算使用了二分搜索等優(yōu)化算法,。該軟件操作方便,、截取效率高,在型號(hào)應(yīng)用中發(fā)揮了重要作用,。
Abstract:
Key words :

O 引言
    隨著科技的進(jìn)步,,空空導(dǎo)彈的研制越來(lái)越復(fù)雜。相應(yīng)地就有越來(lái)越多的數(shù)據(jù)信息需要遙測(cè)傳輸,,這必然導(dǎo)致遙測(cè)接收的數(shù)據(jù)文件較大,。以3 Mb/s碼率計(jì),10 min的遙測(cè)數(shù)據(jù)就有214 MB之多,。數(shù)據(jù)處理軟件往往需要經(jīng)過(guò)異步幀提取,,有效位屏蔽,甚至經(jīng)過(guò)費(fèi)時(shí)的字符串處理才能得到最終結(jié)果,。所以當(dāng)用戶處理這種大文件時(shí)往往需要等待很長(zhǎng)的時(shí)間,。如果能夠把這樣大的文件分割成較小的幾個(gè)文件然后分別處理,,那么處理軟件的運(yùn)行時(shí)間就可以縮短到用戶可以忍受的程度。
    另一方面,,空空導(dǎo)彈的發(fā)射試驗(yàn)往往比較短暫,,從導(dǎo)彈離開(kāi)載機(jī)直到導(dǎo)彈爆炸只有不到1 min的時(shí)間。數(shù)據(jù)分析人員最關(guān)心的也正是這段時(shí)間的數(shù)據(jù),。而實(shí)際遙測(cè)中,,為了確保數(shù)據(jù)的可靠接收,會(huì)從發(fā)射前5 min開(kāi)始記錄直到遙測(cè)信號(hào)完全消失才停止記錄,。
    這種情況下,,如果能夠根據(jù)導(dǎo)彈發(fā)射的特征信號(hào)(比如導(dǎo)彈與發(fā)射架分離的信號(hào))來(lái)截取遙測(cè)數(shù)據(jù)文件也具有重要的實(shí)際意義。
    本文通過(guò)對(duì)實(shí)際需求的分析,,提出了按遙測(cè)幀數(shù),、時(shí)間和特征參數(shù)三種文件截取方法,并在VC 6.O平臺(tái)上予以實(shí)現(xiàn),。

1 軟件設(shè)計(jì)
1.1 功能設(shè)計(jì)

    在空空導(dǎo)彈遙測(cè)中,,待傳輸?shù)男盘?hào)都是先通過(guò)多路復(fù)用組裝成一個(gè)N字節(jié)長(zhǎng)的遙測(cè)幀然后調(diào)制傳輸。在接收端解調(diào)后先通過(guò)幀同步獲得該N字節(jié)長(zhǎng)的遙測(cè)幀,,然后在幀頭加入8 B的時(shí)碼(又稱為B碼)來(lái)表示接收到該幀的時(shí)刻,,如圖1所示。這樣存盤后的文件字節(jié)數(shù)是N+8的整數(shù)倍,。


    因?yàn)檫b測(cè)數(shù)據(jù)按幀存放,,所以有意義的最小分割單位是幀而不是字節(jié),對(duì)文件的截取最后都要?dú)w結(jié)到按幀來(lái)截取,。因此,,軟件的第一個(gè)功能同時(shí)也是最基本的功能就是按幀的起止序號(hào)進(jìn)行分割。
    由于文件中每一幀數(shù)據(jù)的幀頭都有B碼,,所以將該B碼換算成實(shí)際時(shí)間之后也可以根據(jù)時(shí)間進(jìn)行截取,。
    數(shù)據(jù)分析人員一般要求提取導(dǎo)彈發(fā)射后到爆炸這一時(shí)間段的數(shù)據(jù),,所以利用導(dǎo)彈發(fā)射電氣分離信號(hào)(ES)的跳變,,截取跳變時(shí)刻前5 s直到跳變時(shí)刻后50 s的數(shù)據(jù)能夠確保覆蓋所需數(shù)據(jù),同時(shí)盡量減小數(shù)據(jù)文件的大小,。
    典型的電氣分離信號(hào)圖形如圖2所示,。


    通過(guò)對(duì)圖2的分析可以得出以下結(jié)論:ES跳變點(diǎn)需要通過(guò)計(jì)算的來(lái)判決,比如當(dāng)前數(shù)據(jù)點(diǎn)與下一數(shù)據(jù)點(diǎn)之差超過(guò)信號(hào)范圍的2/3,,那么就認(rèn)為當(dāng)前點(diǎn)為跳變點(diǎn),。但是對(duì)于圖2(c)中有野點(diǎn)的情況這種判決方法就有可能導(dǎo)致誤判。所以最好的辦法是讓用戶參與跳變點(diǎn)的判決,。軟件自動(dòng)找到第一個(gè)跳變點(diǎn),,用戶可以通過(guò)快捷鍵找到下一個(gè)跳變點(diǎn),,直到正確的跳變點(diǎn)為止。
    這種設(shè)計(jì)方法杜絕了跳變點(diǎn)的誤判,,同時(shí)又能直觀快捷地輔助用戶找到跳變點(diǎn),,另外還簡(jiǎn)化了軟件的設(shè)計(jì)。
1.2 模塊設(shè)計(jì)
    分割一個(gè)文件的流程,,如圖3所示,。


    分析圖3可以得出軟件必須的幾個(gè)模塊:
    (1)打開(kāi)待分割文件并自動(dòng)生成分割后文件;
    (2)分割方式選擇,;
    (3)特征參數(shù)數(shù)據(jù)繪制,;
    (4)起止幀序數(shù)選擇;
    (5)起止時(shí)間選擇,;
    (6)是否需要剔除無(wú)效幀,。
    最終確定的軟件界面如圖4所示。



2 軟件實(shí)現(xiàn)
2.1 按特征參數(shù)分割

    按特征參數(shù)分割涉及到遙測(cè)參數(shù)解算,。程序運(yùn)行時(shí)首先加載動(dòng)態(tài)鏈接庫(kù)dbreader.dll,,postpro.dll和eu.dll。在OnInitDialog中調(diào)用函數(shù)GetTMFrame FormatInfo來(lái)獲取遙測(cè)幀格式,,包括遙測(cè)幀的長(zhǎng)度,,碼率,同步碼位置等信息,。然后調(diào)用函數(shù)GetTM ParaAllReeord來(lái)獲取所有參數(shù)在遙測(cè)幀中的位置信息,,解算方法等。
    當(dāng)用戶從程序界面的參數(shù)下拉列表框中選擇一個(gè)參數(shù)時(shí),,觸發(fā)CBN_SELCHANGE事件并調(diào)用消息函數(shù),。在消息函數(shù)中根據(jù)參數(shù)是幀同步數(shù)據(jù)還是幀異步數(shù)據(jù)分別調(diào)用GetASyncParaValue函數(shù)或EUConvert函數(shù)解算出數(shù)據(jù),同時(shí)從數(shù)據(jù)中找出跳變點(diǎn),,然后在圖形控件上繪出曲線,。
2.2 按B碼時(shí)間分割
   
要想根據(jù)時(shí)間信息來(lái)查找對(duì)應(yīng)的遙測(cè)幀就需要將該時(shí)間和文件中各遙測(cè)幀頭的B碼代表的時(shí)間進(jìn)行比較。如果采用遍歷查找的方法,,對(duì)于總幀數(shù)為N的文件,,理論上需要比較(N+1)/2次,要找到起,、止兩個(gè)時(shí)間對(duì)應(yīng)的幀就要比較N+1次,。這對(duì)于較大的文件來(lái)說(shuō)消耗的時(shí)間會(huì)很長(zhǎng)。
    在遙測(cè)文件中,,每幀數(shù)據(jù)都是按接收到的先后順序從前往后依次存放,。也就是說(shuō),搜索的目的序列是有序的,。對(duì)于這種情況,,可以采用折半查找法進(jìn)行搜索,。理論證明,采用折半查找最多需要的比較次數(shù)為[log2(n+1)],,搜索起,、止兩個(gè)時(shí)間共需比較2*[log2(n+1)]次。
2.3 按幀序數(shù)分割
   
三種分割方式最后都?xì)w結(jié)到按幀分割,。按幀分割惟一復(fù)雜的地方就是剔除無(wú)效幀,。要剔除無(wú)效幀需要將每一幀數(shù)據(jù)的同步碼取出來(lái)和標(biāo)準(zhǔn)的同步碼進(jìn)行比較。如果差異位數(shù)超過(guò)容許值就丟棄該幀,,否則保留,。很多程序都采用依次右移一位,看二者最低位是否相同,,如果不同則計(jì)數(shù)加1,,循環(huán)直到兩個(gè)數(shù)都為零的方法。
    這種方法效率非常低,。本文采用了如圖5所示的計(jì)算方法,。


    這種算法的關(guān)鍵在兩處:首先對(duì)兩個(gè)被比較數(shù)a和b按位異或,結(jié)果c的二進(jìn)制數(shù)中為1的位置就是a和b不一致的位置,。然后c不停地與c-1按位與并將結(jié)果賦給c,,直到c為O。通過(guò)歸納法可以證明c與c-1按位與可以消掉c的從低位往高位數(shù)的第一個(gè)1,,所以c的二進(jìn)制值有幾個(gè)1就循環(huán)幾次,。

3 結(jié)語(yǔ)
   
本遙測(cè)軟件采用模塊化設(shè)計(jì),便于實(shí)現(xiàn)和測(cè)試,。同時(shí)結(jié)合遙測(cè)文件的結(jié)構(gòu),,實(shí)現(xiàn)了按幀序數(shù)、按時(shí)間和按特征參數(shù)三種分割方法,,較好地滿足了型號(hào)遙測(cè)數(shù)據(jù)處理的需求,。從軟件的設(shè)計(jì)可以看出,對(duì)于較復(fù)雜的軟件采用自頂向下,,逐漸細(xì)化的分析方法,,分模塊設(shè)計(jì);對(duì)于影響程序性能的處理過(guò)程有針對(duì)性地進(jìn)行優(yōu)化,,可以有效地提高程序的可靠性和性能并簡(jiǎn)化設(shè)計(jì)過(guò)程,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。