呂騰達(dá),劉 成
(1.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心,北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100190)
探空火箭振動(dòng)遙測(cè)數(shù)據(jù)壓縮算法設(shè)計(jì)
呂騰達(dá)1,2,劉 成1
(1.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心,北京100190;2.中國(guó)科學(xué)院大學(xué) 北京100190)
目前探空火箭遙測(cè)數(shù)據(jù)下傳鏈路帶寬資源有限,振動(dòng)采樣數(shù)據(jù)量大、信源冗余度高。分析振動(dòng)數(shù)據(jù)得知其分布特點(diǎn)為:整體相對(duì)穩(wěn)定、局部波動(dòng)較大。為減少探空火箭振動(dòng)采樣下傳數(shù)據(jù)量,設(shè)計(jì)了基于動(dòng)態(tài)哈夫曼編碼的振動(dòng)數(shù)據(jù)壓縮方法,實(shí)現(xiàn)了對(duì)振動(dòng)數(shù)據(jù)的無(wú)損壓縮,壓縮率達(dá)到20%左右,各數(shù)據(jù)包編解碼樹(shù)相互獨(dú)立,丟包不破壞后續(xù)數(shù)據(jù)包解壓。通過(guò)對(duì)比實(shí)驗(yàn)表明該方法壓縮效率優(yōu)于基于字典的LZW編碼算法。
探空火箭;振動(dòng)數(shù)據(jù);數(shù)據(jù)壓縮;動(dòng)態(tài)哈夫曼編碼
目前探空火箭的遙測(cè)數(shù)據(jù)鏈路帶寬資源有限,振動(dòng)采樣遙測(cè)數(shù)據(jù)未經(jīng)壓縮直接下傳地面,導(dǎo)致帶寬資源得不到充分利用。用于實(shí)時(shí)監(jiān)測(cè)火箭飛行狀態(tài)的振動(dòng)采樣數(shù)據(jù)具有采樣頻率高,單位時(shí)間下傳數(shù)據(jù)量大,信息冗余大等問(wèn)題。為保持振動(dòng)采樣的頻率和精度不變,減少下傳數(shù)據(jù)量,分析了探空火箭的振動(dòng)數(shù)據(jù)概率分布不均勻的統(tǒng)計(jì)特性和采樣數(shù)據(jù)序列有大量重復(fù)的特點(diǎn),結(jié)合CCSDS協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)包大小固定的特點(diǎn),提出了基于動(dòng)態(tài)哈夫曼編碼的數(shù)據(jù)包獨(dú)立編/解碼的方法,該方法適用于數(shù)據(jù)波動(dòng)特點(diǎn)為:整體相對(duì)穩(wěn)定,局部波動(dòng)較大的采樣數(shù)據(jù)的壓縮。通過(guò)對(duì)比基于動(dòng)態(tài)哈夫曼編碼的壓縮算法和基于字典的LZW編碼壓縮算法,實(shí)驗(yàn)表明該方法具有較高的壓縮效率,發(fā)生丟包后不破壞后續(xù)數(shù)據(jù)包解壓等特點(diǎn)。
在探空火箭飛行過(guò)程中,振動(dòng)情況整體相對(duì)穩(wěn)定,采樣值波動(dòng)在幾個(gè)固定的振動(dòng)量之間。當(dāng)探空火箭進(jìn)行如伸桿展開(kāi)、頭體分離等動(dòng)作時(shí),振動(dòng)量會(huì)出現(xiàn)較大波動(dòng),但波動(dòng)時(shí)間較短。振動(dòng)數(shù)據(jù)整體分布情況具有“長(zhǎng)期穩(wěn)定,短期波動(dòng)”的特點(diǎn)。以下針對(duì)探空火箭的振動(dòng)數(shù)據(jù)分布特點(diǎn),分析了探空火箭振動(dòng)采樣數(shù)據(jù)的概率分布特性和采樣序列排列特性。
1.1振動(dòng)數(shù)據(jù)概率分布特性
通過(guò)分析探空火箭飛行過(guò)程中的振動(dòng)量波動(dòng)情況,其飛行過(guò)程可分平穩(wěn)段和波動(dòng)段。波動(dòng)段主要包括探空火箭發(fā)生動(dòng)作的時(shí)間段如頭體分離、伸桿展開(kāi)、頭罩分離等動(dòng)作期間,在波動(dòng)段時(shí)間內(nèi)振動(dòng)量波動(dòng)范圍較大,但持續(xù)時(shí)間短。在平穩(wěn)段時(shí)間內(nèi)振動(dòng)波動(dòng)范圍較小,但占據(jù)了飛行過(guò)程的絕大多數(shù)時(shí)間。通過(guò)分析以往探空火箭飛行過(guò)程的振動(dòng)數(shù)據(jù)記錄,得到結(jié)論如下:在探空火箭飛行過(guò)程中95%以上的時(shí)間,振動(dòng)量相對(duì)穩(wěn)定在幾個(gè)固定的振動(dòng)量?jī)?nèi),具有短時(shí)間內(nèi)穩(wěn)定的特點(diǎn);在飛行過(guò)程中小于5%的時(shí)間內(nèi),振動(dòng)量波動(dòng)范圍較大。所以探空火箭振動(dòng)量有明顯的概率分布不均勻現(xiàn)象,概率分布如圖1,具有較高的信源冗余度。計(jì)算探空火箭振動(dòng)數(shù)據(jù)的信源冗余度為:
其中M為信源中符號(hào)個(gè)數(shù),1b x=log2x,P(x)為信源中符號(hào)x的概率值。因此探空火箭振動(dòng)數(shù)據(jù)信源冗余度在平穩(wěn)段為R=86.76%,在波動(dòng)段冗為R=42.90%。在平穩(wěn)段壓縮空間大,在波動(dòng)段壓縮空間小。
圖1 振動(dòng)量概率分布圖
1.2振動(dòng)量采樣序列周期性
通過(guò)觀察以往探空火箭飛行過(guò)程中的振動(dòng)數(shù)據(jù)分布情況,可知探空火箭在振動(dòng)平穩(wěn)段,振動(dòng)量大多波動(dòng)在某固定值上下,具有一定的周期性,經(jīng)常出現(xiàn)振動(dòng)采樣連續(xù)幾次保持不變或者幾個(gè)采樣值周期性交替出現(xiàn),示例如下:
①AAAAAAAA或者②ABABABAB
其中A、B代表不同大小的振動(dòng)量,①代表某采樣值連續(xù)幾次保持不變,②代表兩個(gè)采樣值周期性交替出現(xiàn)。此外還有其他采樣值周期性交替出現(xiàn)的情況,即探空火箭的振動(dòng)采樣數(shù)據(jù)存在大量重復(fù)的數(shù)據(jù)序列。
根據(jù)上述分析可得,探空火箭振動(dòng)量具有以下特性:①明顯的概率分布不均勻特點(diǎn)。有95%以上的振動(dòng)采樣數(shù)據(jù)分布在某固定左右,信息熵冗余較大;②采樣序列大量重復(fù)的特點(diǎn)。在振動(dòng)相對(duì)平穩(wěn)時(shí),振動(dòng)采樣數(shù)據(jù)波動(dòng)具有一定周期性,存在大量重復(fù)的采樣序列。
本節(jié)結(jié)合了振動(dòng)遙測(cè)數(shù)據(jù)的分布特性,其概率分布特點(diǎn)為在95%的采樣數(shù)據(jù)波動(dòng)較平緩,不足5%的采樣數(shù)據(jù)波動(dòng)較大,算法編碼部分采用哈夫曼編碼。設(shè)計(jì)了遙測(cè)數(shù)據(jù)包結(jié)構(gòu)和壓縮算法流程。實(shí)現(xiàn)了對(duì)探空火箭的振動(dòng)遙測(cè)數(shù)據(jù)的無(wú)損壓縮。采用數(shù)據(jù)包獨(dú)立編解碼的方法,避免了丟包對(duì)后續(xù)數(shù)據(jù)包的影響。
2.1振動(dòng)遙測(cè)數(shù)據(jù)編碼方式
根據(jù)信息熵原理,可以把數(shù)據(jù)中出現(xiàn)頻率大的碼元用小的碼元長(zhǎng)度表示,即占用比較少的比特?cái)?shù);把數(shù)據(jù)中出現(xiàn)概率小的碼元用大的碼元長(zhǎng)度表示,即占用較大的比特?cái)?shù),這樣能大大地壓縮數(shù)據(jù)量[1]。哈夫曼編碼需要兩次遍歷數(shù)據(jù)能夠?qū)崿F(xiàn)對(duì)原始數(shù)據(jù)的壓縮編碼,通過(guò)第一次遍歷統(tǒng)計(jì)各字符出現(xiàn)的概率,構(gòu)建哈夫曼樹(shù),用比特?cái)?shù)小的碼元表示出現(xiàn)概率高的字符,用比特?cái)?shù)大的碼元表示出現(xiàn)概率小的字符,第二次遍歷實(shí)現(xiàn)對(duì)數(shù)據(jù)的壓縮編碼。
在探空火箭飛行任務(wù)中為實(shí)時(shí)監(jiān)測(cè)火箭振動(dòng)情況,需要實(shí)時(shí)下傳振動(dòng)數(shù)據(jù),這表示不能夠先對(duì)振動(dòng)數(shù)據(jù)進(jìn)行概率統(tǒng)計(jì)然后進(jìn)行編碼。本文的數(shù)據(jù)編碼算法采用動(dòng)態(tài)哈夫曼編碼,克服了傳統(tǒng)哈夫曼編碼需要對(duì)原始數(shù)據(jù)進(jìn)行二次遍歷的缺點(diǎn),不需要統(tǒng)計(jì)數(shù)據(jù)的概率分布,可以在采樣的同時(shí)進(jìn)行編碼,提高了編碼的實(shí)時(shí)性,而且壓縮效率與傳統(tǒng)哈夫曼編碼相當(dāng),甚至優(yōu)于傳統(tǒng)哈夫曼編碼[2-4]。
2.2振動(dòng)遙測(cè)數(shù)據(jù)包結(jié)構(gòu)設(shè)計(jì)
探空火箭各振動(dòng)點(diǎn)每個(gè)采樣數(shù)據(jù)分x軸、y軸和z軸3個(gè)分量,由于各方向的采樣精度不同位數(shù)不同,概率分布特性不同。本算法對(duì)3個(gè)分量的編碼獨(dú)立進(jìn)行,即對(duì)每個(gè)分量的編解碼建立相互獨(dú)立的編碼樹(shù)。每次采樣完成后,分別按各自分量的編碼樹(shù)進(jìn)行編碼,然后將編碼按照xyz順序存入數(shù)據(jù)包中,當(dāng)數(shù)據(jù)包剩余空間的位數(shù)小于本次編碼的位數(shù)時(shí),將本次編碼存入下一個(gè)數(shù)據(jù)包。
圖2 振動(dòng)遙測(cè)數(shù)據(jù)包結(jié)構(gòu)
探空火箭數(shù)據(jù)下傳系統(tǒng)采用符合CCSDS標(biāo)準(zhǔn)的遙測(cè)源包格式,該標(biāo)準(zhǔn)規(guī)定了數(shù)據(jù)段大小固定不變。本算法定義的振動(dòng)遙測(cè)數(shù)據(jù)包結(jié)構(gòu)如圖2所示。第一部分為數(shù)據(jù)包頭,包含了時(shí)間碼、數(shù)據(jù)類(lèi)型、通道序號(hào)等數(shù)據(jù)包詳細(xì)信息;第二部分為采樣次數(shù)n,標(biāo)記了第3部分包含的采樣數(shù)據(jù)的個(gè)數(shù),每次采樣包含x、y和z 3個(gè)分量,由于哈夫曼編碼屬于不定長(zhǎng)編碼,采樣次數(shù)n避免了在解碼時(shí)第4部分(空閑位)參與解碼。第3部分為數(shù)據(jù)包的n次振動(dòng)采樣數(shù)據(jù),從低位到高位按時(shí)間順序排列;第4部分為空閑位,由于哈夫曼編碼屬于不定長(zhǎng)編碼,在當(dāng)前數(shù)據(jù)包的空余位不足以保存下一次編碼的數(shù)據(jù)時(shí),空閑位保持不變,將本次采樣的編碼數(shù)據(jù)存入下一個(gè)數(shù)據(jù)包中。
2.3振動(dòng)遙測(cè)數(shù)據(jù)壓縮算法流程
數(shù)據(jù)傳輸過(guò)程中不可避免地會(huì)產(chǎn)生丟包現(xiàn)象,為防止數(shù)據(jù)丟包破壞后續(xù)數(shù)據(jù)的解壓縮產(chǎn)生錯(cuò)誤的數(shù)據(jù),本算法采用數(shù)據(jù)包獨(dú)立編/解碼的方法。
振動(dòng)數(shù)據(jù)壓縮算法具體執(zhí)行步驟如下:
步驟1:初始化數(shù)據(jù)包填充包頭新信息,如時(shí)間碼,數(shù)據(jù)類(lèi)型等信息,初始化動(dòng)態(tài)哈夫曼編碼樹(shù);
步驟2:讀入一組振動(dòng)數(shù)據(jù)并進(jìn)行動(dòng)態(tài)哈夫曼編碼,更新哈夫曼樹(shù);
步驟3:比較當(dāng)前數(shù)據(jù)包剩余bit位數(shù)與本次編碼bit位數(shù)大小關(guān)系,如果大于等于則把本次編碼按照xyx順序裝入數(shù)據(jù)包,返回到步驟2。如果小于則當(dāng)前數(shù)據(jù)包完成填充,本次讀入的振動(dòng)數(shù)據(jù)參與下個(gè)數(shù)據(jù)包的編碼。
步驟4:判斷編碼是否完成,如果沒(méi)有完成則返回到步驟1。如果完成則結(jié)束程序。
解碼時(shí),對(duì)每一個(gè)數(shù)據(jù)包進(jìn)行獨(dú)立的動(dòng)態(tài)哈夫曼解碼,即解碼樹(shù)相互獨(dú)立調(diào)整。
數(shù)據(jù)包獨(dú)立編解碼在每次生成新的數(shù)據(jù)包時(shí),重新初始化動(dòng)態(tài)哈夫曼樹(shù),確保每個(gè)數(shù)據(jù)包之間的數(shù)據(jù)的獨(dú)立性,防止因?yàn)閿?shù)據(jù)丟包引起的后續(xù)數(shù)據(jù)錯(cuò)誤的解碼。
圖3 振動(dòng)數(shù)據(jù)壓縮算法流程圖
根據(jù)振動(dòng)數(shù)據(jù)的兩個(gè)特性,在本文的算法設(shè)計(jì)壓縮編碼部分分別采用兩種編碼方式,動(dòng)態(tài)哈夫曼編碼和基于字典的LZW壓縮算法[5]??紤]CCSDS標(biāo)準(zhǔn)遙測(cè)源包格式中數(shù)據(jù)域大小固定不變,我們分別用以上兩種算法對(duì)振動(dòng)數(shù)據(jù)進(jìn)行編碼,使壓縮數(shù)據(jù)量大小為400字節(jié)左右,經(jīng)過(guò)多次試驗(yàn),記錄其壓縮率求平均,兩種算法壓縮比比較結(jié)果如表1。
表1 動(dòng)態(tài)哈夫曼編碼與LZW編碼壓縮性能比較
對(duì)比兩種壓縮算法的壓縮率,無(wú)論在振動(dòng)平穩(wěn)階段還是在振動(dòng)波動(dòng)階段,動(dòng)態(tài)哈夫曼編碼算法的壓縮效率均明顯高于LZW編碼。動(dòng)態(tài)哈夫曼編碼算法的綜合壓縮率為19.01%,明顯優(yōu)于基于LZW算法壓縮效率。動(dòng)態(tài)哈夫曼編碼在壓縮效率方面,比LZW編碼更適合應(yīng)用于探空火箭的振動(dòng)數(shù)據(jù)壓縮。
此外本算法還具有丟包不破壞后續(xù)數(shù)據(jù)包解碼的特點(diǎn)。動(dòng)態(tài)哈夫曼編解碼算法簡(jiǎn)潔,大大提高了壓縮速度,提高了系統(tǒng)的實(shí)時(shí)性[6]。
文中分析了探空火箭振動(dòng)數(shù)據(jù)的概率分布不均勻和振動(dòng)量采樣序列大量重復(fù)的特點(diǎn),針對(duì)兩個(gè)特點(diǎn)分別設(shè)計(jì)了基于動(dòng)態(tài)哈夫曼編碼和基于LZW編碼的方法,通過(guò)對(duì)兩種算法的壓縮性能進(jìn)行分析比較,表明基于動(dòng)態(tài)哈夫曼編碼的算法具有較好的壓縮效率。提出了數(shù)據(jù)包獨(dú)立編解碼的方法,避免了丟包對(duì)數(shù)據(jù)解壓的影響,提高了系統(tǒng)的穩(wěn)定性。
[1]劉新,潘振寬,于建.基于信息熵編碼的改進(jìn)圖像編碼方法研究[J].信息技術(shù)與信息化,2006(1):108-110.
[2]Jeffrey Scott Vitter.Design and analysis of dynamic huffman codes[J].Journal of the Association for Computing Machinery,1987,34(4):825-845.
[3]方敏,秦曉新,劉本喜.動(dòng)態(tài)哈夫曼編碼的數(shù)據(jù)壓縮方法[J].計(jì)算機(jī)世界,1994(7):29-33.
[4]朱懷宏,吳楠,夏黎春.利用優(yōu)化哈夫曼編碼進(jìn)行數(shù)據(jù)壓縮的探索[J].微機(jī)發(fā)展,2002(5):1-6.
[5]楊國(guó)梁,張光年.無(wú)損LZW壓縮算法及實(shí)現(xiàn)[J].首都師范大學(xué)學(xué)報(bào);自然科學(xué)版,2004(S1):11-13,17.
[6]李曉飛.Huffman編解碼及其快速算法研究[J].現(xiàn)代電子技術(shù),2009(21):102-104,108.
Design of sounding rocket telemetry vibration data compression algorithm
LV Teng-da1,2,LIU Cheng1
(1.National Space Science Center,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100190,China)
The sounding rocket telemetry downlink has limited bandwidth,while the amount of vibration sampling data with much redundancy is very large.By analyzing the vibration data we geta conclusion that:the vibration fluctuation is generally stable and seldom has large fluctuation.In order to reduce the amount of vibration data of sounding rocket,we designed a compression method based on dynamic Huffman encoding,achieving the lossless compression of vibration data,and the compression rate reached 20%.Each data packet is encoded independently,so when a packetmissed other data packet's decodingwillnotbe affected.By comparing,it truns that the proposedmethod isbetter than the LZW based coding algorithm.
sounding rocket;vibration data;data compression;dynamic Huffman encoding
TN99
A
1674-6236(2016)19-0028-03
2015-09-06稿件編號(hào):201509040
呂騰達(dá)(1989—),男,河北邢臺(tái)人,碩士。研究方向:圖像及信號(hào)處理。