呂騰達,劉 成
(1.中國科學(xué)院 國家空間科學(xué)中心,北京100190;2.中國科學(xué)院大學(xué) 北京100190)
探空火箭振動遙測數(shù)據(jù)壓縮算法設(shè)計
呂騰達1,2,劉 成1
(1.中國科學(xué)院 國家空間科學(xué)中心,北京100190;2.中國科學(xué)院大學(xué) 北京100190)
目前探空火箭遙測數(shù)據(jù)下傳鏈路帶寬資源有限,振動采樣數(shù)據(jù)量大、信源冗余度高。分析振動數(shù)據(jù)得知其分布特點為:整體相對穩(wěn)定、局部波動較大。為減少探空火箭振動采樣下傳數(shù)據(jù)量,設(shè)計了基于動態(tài)哈夫曼編碼的振動數(shù)據(jù)壓縮方法,實現(xiàn)了對振動數(shù)據(jù)的無損壓縮,壓縮率達到20%左右,各數(shù)據(jù)包編解碼樹相互獨立,丟包不破壞后續(xù)數(shù)據(jù)包解壓。通過對比實驗表明該方法壓縮效率優(yōu)于基于字典的LZW編碼算法。
探空火箭;振動數(shù)據(jù);數(shù)據(jù)壓縮;動態(tài)哈夫曼編碼
目前探空火箭的遙測數(shù)據(jù)鏈路帶寬資源有限,振動采樣遙測數(shù)據(jù)未經(jīng)壓縮直接下傳地面,導(dǎo)致帶寬資源得不到充分利用。用于實時監(jiān)測火箭飛行狀態(tài)的振動采樣數(shù)據(jù)具有采樣頻率高,單位時間下傳數(shù)據(jù)量大,信息冗余大等問題。為保持振動采樣的頻率和精度不變,減少下傳數(shù)據(jù)量,分析了探空火箭的振動數(shù)據(jù)概率分布不均勻的統(tǒng)計特性和采樣數(shù)據(jù)序列有大量重復(fù)的特點,結(jié)合CCSDS協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)包大小固定的特點,提出了基于動態(tài)哈夫曼編碼的數(shù)據(jù)包獨立編/解碼的方法,該方法適用于數(shù)據(jù)波動特點為:整體相對穩(wěn)定,局部波動較大的采樣數(shù)據(jù)的壓縮。通過對比基于動態(tài)哈夫曼編碼的壓縮算法和基于字典的LZW編碼壓縮算法,實驗表明該方法具有較高的壓縮效率,發(fā)生丟包后不破壞后續(xù)數(shù)據(jù)包解壓等特點。
在探空火箭飛行過程中,振動情況整體相對穩(wěn)定,采樣值波動在幾個固定的振動量之間。當(dāng)探空火箭進行如伸桿展開、頭體分離等動作時,振動量會出現(xiàn)較大波動,但波動時間較短。振動數(shù)據(jù)整體分布情況具有“長期穩(wěn)定,短期波動”的特點。以下針對探空火箭的振動數(shù)據(jù)分布特點,分析了探空火箭振動采樣數(shù)據(jù)的概率分布特性和采樣序列排列特性。
1.1振動數(shù)據(jù)概率分布特性
通過分析探空火箭飛行過程中的振動量波動情況,其飛行過程可分平穩(wěn)段和波動段。波動段主要包括探空火箭發(fā)生動作的時間段如頭體分離、伸桿展開、頭罩分離等動作期間,在波動段時間內(nèi)振動量波動范圍較大,但持續(xù)時間短。在平穩(wěn)段時間內(nèi)振動波動范圍較小,但占據(jù)了飛行過程的絕大多數(shù)時間。通過分析以往探空火箭飛行過程的振動數(shù)據(jù)記錄,得到結(jié)論如下:在探空火箭飛行過程中95%以上的時間,振動量相對穩(wěn)定在幾個固定的振動量內(nèi),具有短時間內(nèi)穩(wěn)定的特點;在飛行過程中小于5%的時間內(nèi),振動量波動范圍較大。所以探空火箭振動量有明顯的概率分布不均勻現(xiàn)象,概率分布如圖1,具有較高的信源冗余度。計算探空火箭振動數(shù)據(jù)的信源冗余度為:
其中M為信源中符號個數(shù),1b x=log2x,P(x)為信源中符號x的概率值。因此探空火箭振動數(shù)據(jù)信源冗余度在平穩(wěn)段為R=86.76%,在波動段冗為R=42.90%。在平穩(wěn)段壓縮空間大,在波動段壓縮空間小。
圖1 振動量概率分布圖
1.2振動量采樣序列周期性
通過觀察以往探空火箭飛行過程中的振動數(shù)據(jù)分布情況,可知探空火箭在振動平穩(wěn)段,振動量大多波動在某固定值上下,具有一定的周期性,經(jīng)常出現(xiàn)振動采樣連續(xù)幾次保持不變或者幾個采樣值周期性交替出現(xiàn),示例如下:
①AAAAAAAA或者②ABABABAB
其中A、B代表不同大小的振動量,①代表某采樣值連續(xù)幾次保持不變,②代表兩個采樣值周期性交替出現(xiàn)。此外還有其他采樣值周期性交替出現(xiàn)的情況,即探空火箭的振動采樣數(shù)據(jù)存在大量重復(fù)的數(shù)據(jù)序列。
根據(jù)上述分析可得,探空火箭振動量具有以下特性:①明顯的概率分布不均勻特點。有95%以上的振動采樣數(shù)據(jù)分布在某固定左右,信息熵冗余較大;②采樣序列大量重復(fù)的特點。在振動相對平穩(wěn)時,振動采樣數(shù)據(jù)波動具有一定周期性,存在大量重復(fù)的采樣序列。
本節(jié)結(jié)合了振動遙測數(shù)據(jù)的分布特性,其概率分布特點為在95%的采樣數(shù)據(jù)波動較平緩,不足5%的采樣數(shù)據(jù)波動較大,算法編碼部分采用哈夫曼編碼。設(shè)計了遙測數(shù)據(jù)包結(jié)構(gòu)和壓縮算法流程。實現(xiàn)了對探空火箭的振動遙測數(shù)據(jù)的無損壓縮。采用數(shù)據(jù)包獨立編解碼的方法,避免了丟包對后續(xù)數(shù)據(jù)包的影響。
2.1振動遙測數(shù)據(jù)編碼方式
根據(jù)信息熵原理,可以把數(shù)據(jù)中出現(xiàn)頻率大的碼元用小的碼元長度表示,即占用比較少的比特數(shù);把數(shù)據(jù)中出現(xiàn)概率小的碼元用大的碼元長度表示,即占用較大的比特數(shù),這樣能大大地壓縮數(shù)據(jù)量[1]。哈夫曼編碼需要兩次遍歷數(shù)據(jù)能夠?qū)崿F(xiàn)對原始數(shù)據(jù)的壓縮編碼,通過第一次遍歷統(tǒng)計各字符出現(xiàn)的概率,構(gòu)建哈夫曼樹,用比特數(shù)小的碼元表示出現(xiàn)概率高的字符,用比特數(shù)大的碼元表示出現(xiàn)概率小的字符,第二次遍歷實現(xiàn)對數(shù)據(jù)的壓縮編碼。
在探空火箭飛行任務(wù)中為實時監(jiān)測火箭振動情況,需要實時下傳振動數(shù)據(jù),這表示不能夠先對振動數(shù)據(jù)進行概率統(tǒng)計然后進行編碼。本文的數(shù)據(jù)編碼算法采用動態(tài)哈夫曼編碼,克服了傳統(tǒng)哈夫曼編碼需要對原始數(shù)據(jù)進行二次遍歷的缺點,不需要統(tǒng)計數(shù)據(jù)的概率分布,可以在采樣的同時進行編碼,提高了編碼的實時性,而且壓縮效率與傳統(tǒng)哈夫曼編碼相當(dāng),甚至優(yōu)于傳統(tǒng)哈夫曼編碼[2-4]。
2.2振動遙測數(shù)據(jù)包結(jié)構(gòu)設(shè)計
探空火箭各振動點每個采樣數(shù)據(jù)分x軸、y軸和z軸3個分量,由于各方向的采樣精度不同位數(shù)不同,概率分布特性不同。本算法對3個分量的編碼獨立進行,即對每個分量的編解碼建立相互獨立的編碼樹。每次采樣完成后,分別按各自分量的編碼樹進行編碼,然后將編碼按照xyz順序存入數(shù)據(jù)包中,當(dāng)數(shù)據(jù)包剩余空間的位數(shù)小于本次編碼的位數(shù)時,將本次編碼存入下一個數(shù)據(jù)包。
圖2 振動遙測數(shù)據(jù)包結(jié)構(gòu)
探空火箭數(shù)據(jù)下傳系統(tǒng)采用符合CCSDS標(biāo)準(zhǔn)的遙測源包格式,該標(biāo)準(zhǔn)規(guī)定了數(shù)據(jù)段大小固定不變。本算法定義的振動遙測數(shù)據(jù)包結(jié)構(gòu)如圖2所示。第一部分為數(shù)據(jù)包頭,包含了時間碼、數(shù)據(jù)類型、通道序號等數(shù)據(jù)包詳細信息;第二部分為采樣次數(shù)n,標(biāo)記了第3部分包含的采樣數(shù)據(jù)的個數(shù),每次采樣包含x、y和z 3個分量,由于哈夫曼編碼屬于不定長編碼,采樣次數(shù)n避免了在解碼時第4部分(空閑位)參與解碼。第3部分為數(shù)據(jù)包的n次振動采樣數(shù)據(jù),從低位到高位按時間順序排列;第4部分為空閑位,由于哈夫曼編碼屬于不定長編碼,在當(dāng)前數(shù)據(jù)包的空余位不足以保存下一次編碼的數(shù)據(jù)時,空閑位保持不變,將本次采樣的編碼數(shù)據(jù)存入下一個數(shù)據(jù)包中。
2.3振動遙測數(shù)據(jù)壓縮算法流程
數(shù)據(jù)傳輸過程中不可避免地會產(chǎn)生丟包現(xiàn)象,為防止數(shù)據(jù)丟包破壞后續(xù)數(shù)據(jù)的解壓縮產(chǎn)生錯誤的數(shù)據(jù),本算法采用數(shù)據(jù)包獨立編/解碼的方法。
振動數(shù)據(jù)壓縮算法具體執(zhí)行步驟如下:
步驟1:初始化數(shù)據(jù)包填充包頭新信息,如時間碼,數(shù)據(jù)類型等信息,初始化動態(tài)哈夫曼編碼樹;
步驟2:讀入一組振動數(shù)據(jù)并進行動態(tài)哈夫曼編碼,更新哈夫曼樹;
步驟3:比較當(dāng)前數(shù)據(jù)包剩余bit位數(shù)與本次編碼bit位數(shù)大小關(guān)系,如果大于等于則把本次編碼按照xyx順序裝入數(shù)據(jù)包,返回到步驟2。如果小于則當(dāng)前數(shù)據(jù)包完成填充,本次讀入的振動數(shù)據(jù)參與下個數(shù)據(jù)包的編碼。
步驟4:判斷編碼是否完成,如果沒有完成則返回到步驟1。如果完成則結(jié)束程序。
解碼時,對每一個數(shù)據(jù)包進行獨立的動態(tài)哈夫曼解碼,即解碼樹相互獨立調(diào)整。
數(shù)據(jù)包獨立編解碼在每次生成新的數(shù)據(jù)包時,重新初始化動態(tài)哈夫曼樹,確保每個數(shù)據(jù)包之間的數(shù)據(jù)的獨立性,防止因為數(shù)據(jù)丟包引起的后續(xù)數(shù)據(jù)錯誤的解碼。
圖3 振動數(shù)據(jù)壓縮算法流程圖
根據(jù)振動數(shù)據(jù)的兩個特性,在本文的算法設(shè)計壓縮編碼部分分別采用兩種編碼方式,動態(tài)哈夫曼編碼和基于字典的LZW壓縮算法[5]??紤]CCSDS標(biāo)準(zhǔn)遙測源包格式中數(shù)據(jù)域大小固定不變,我們分別用以上兩種算法對振動數(shù)據(jù)進行編碼,使壓縮數(shù)據(jù)量大小為400字節(jié)左右,經(jīng)過多次試驗,記錄其壓縮率求平均,兩種算法壓縮比比較結(jié)果如表1。
表1 動態(tài)哈夫曼編碼與LZW編碼壓縮性能比較
對比兩種壓縮算法的壓縮率,無論在振動平穩(wěn)階段還是在振動波動階段,動態(tài)哈夫曼編碼算法的壓縮效率均明顯高于LZW編碼。動態(tài)哈夫曼編碼算法的綜合壓縮率為19.01%,明顯優(yōu)于基于LZW算法壓縮效率。動態(tài)哈夫曼編碼在壓縮效率方面,比LZW編碼更適合應(yīng)用于探空火箭的振動數(shù)據(jù)壓縮。
此外本算法還具有丟包不破壞后續(xù)數(shù)據(jù)包解碼的特點。動態(tài)哈夫曼編解碼算法簡潔,大大提高了壓縮速度,提高了系統(tǒng)的實時性[6]。
文中分析了探空火箭振動數(shù)據(jù)的概率分布不均勻和振動量采樣序列大量重復(fù)的特點,針對兩個特點分別設(shè)計了基于動態(tài)哈夫曼編碼和基于LZW編碼的方法,通過對兩種算法的壓縮性能進行分析比較,表明基于動態(tài)哈夫曼編碼的算法具有較好的壓縮效率。提出了數(shù)據(jù)包獨立編解碼的方法,避免了丟包對數(shù)據(jù)解壓的影響,提高了系統(tǒng)的穩(wěn)定性。
[1]劉新,潘振寬,于建.基于信息熵編碼的改進圖像編碼方法研究[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]方敏,秦曉新,劉本喜.動態(tài)哈夫曼編碼的數(shù)據(jù)壓縮方法[J].計算機世界,1994(7):29-33.
[4]朱懷宏,吳楠,夏黎春.利用優(yōu)化哈夫曼編碼進行數(shù)據(jù)壓縮的探索[J].微機發(fā)展,2002(5):1-6.
[5]楊國梁,張光年.無損LZW壓縮算法及實現(xiàn)[J].首都師范大學(xué)學(xué)報;自然科學(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稿件編號:201509040
呂騰達(1989—),男,河北邢臺人,碩士。研究方向:圖像及信號處理。