專利名稱:輸電線路故障行波數據壓縮方法
技術領域:
本發明涉及對大量數據進行編碼處理以達到數據壓縮存儲的技術領域,尤其涉及利用曲線的連續特性對其16進制數據文本進行差分和變長編碼的數據壓縮方法。
背景技術:
隨著計算機技術的快速發展,各種系統數據量越來越大,給信息存儲特別是網絡傳輸帶來諸多的困難,已成為有效獲取和使用信息的瓶頸。為了節省信息的存儲空間和提高信息的傳輸效率,必須對大量的實際數據進行壓縮。數據壓縮是通過減少計算機中所存儲數據或者通信傳播中數據的冗余度,達到增大數據密度,最終使數據的存儲空間減少的技術。數據壓縮就是將字符串的一種表示方式轉換為另一種表示方式,新的表示方式包含相同的信息量,但是長度比原來的方式盡可能的短。壓縮的理論基礎是信息論,從信息的角度來看,壓縮就是去除掉信息中的冗余,即去除掉確定的或可推知的信息,而保留不確定的信息,也就是用一種更接近信息本質的描述來代替原有的冗余的描述,這個本質的東西就是信息量。數據壓縮跟編碼技術聯系緊密,壓縮的實質就是根據數據的內在聯系將數據從一種編碼映射為另一種編碼。數據壓縮按壓縮的失真度分為無損壓縮與有損壓縮。無損壓縮技術主要有哈夫曼(Huffman)編碼、算術(Arithmetiic)編碼、游程編碼(RLE)、LZ編碼。數據壓縮主要應用于兩個方面(1)傳輸。通過壓縮發送端的原始數據,并在接受端將壓縮數據解碼恢復,這樣可有效地減少傳輸時間,增加信道帶寬。( 存儲。在存儲時壓縮原始數據,而在使用時解壓,這將大量減小存儲介質的存儲量。
發明內容
本發明要解決的技術問題是對連續曲線的16進制數據文本進行編碼壓縮,能夠實現無損壓縮,獲得的壓縮比小于0. 25,達到顯著減小存儲介質存儲量的目的。為解決上述技術問題,本發明提供一種輸電線路故障行波數據壓縮方法,所述方法利用曲線的連續特性對16進制數據文本進行連續差分獲得用補碼的16進制表示的差分序列,將差分序列中的符號串分成8類分別用3位前綴碼標識,然后對各類符號串進行變長編碼以減少數據存儲量。一種輸電線路故障行波數據壓縮方法,包括以下步驟獲取原始數據序列相鄰數據間的差分序列,保存差值補碼的16進制形式;根據差分序列的特性分成8類符號串,得到它們的概率值;對數據使用前綴碼的方式按類進行變長編碼把符號串的特征信息表現在編碼的最前面;獲得壓縮比的計算公式。進一步地,利用曲線的連續特性獲得的差分序列數值集中在-2、_1、0、1、2之間,而用差值補碼的16進制表示的數據主要含有000X,FFFX,0000,0001,0002,FFFE, FFFFjg容易的將所有數據分成8類進行編碼,不用窮舉數據中所有可能的信號避免了多次遍歷數據文本,與現有的文本壓縮算法相比簡單易于實現。在存儲和傳輸過程中若中間某一位發生誤碼至多影響一個數據的解碼,對后續數據的解碼沒有影響可靠性高。在源數據中出現概率越高的符號即0000,0001,0002,FFFE, FFFF,相應碼字長度越短共3位;出現概率越小的符號即XXXX型,相應碼子長度越長共19位,從而達到用盡可能少的碼符號來表示源數據,達到壓縮的效果,提高壓縮率。
圖ι是本發明輸電線路故障行波i(據壓纟宿方法的步驟流程圖2是本發明的分類編碼圖_D
具體實施步驟
請參閱圖1,圖1是本發明一種輸電線路故障行波數據壓自官方法的步驟流程圖。
所述壓縮方法包括以下步驟
步驟S-I,獲取原始數據序列相鄰_數據間的差分序列,保存差值補碼的16進制形工、。
在本步驟中,截取一條曲線上連續的150個點,組成一個:數據序列S⑴,i=1,2,......,150,數據序列為
s(150) = 003D 003E 0040 003E 003D 003E 003E 003D 0040 0040 (3042 0042
004100410043004300430047004700460049004B004A00490048004A
004C004E004E004F00500051004F0050005000530050005100520052
005200520050005100540051005000520051005100520050004F004F
00510050004F004E004A004B004C004B004E004A004B004B004C004B
0049004A004A004A004A0049004B004B004B004B004C004B004D004B
004C004E004D004B004E004E004E004E004D004E004F0050004F0051
004F0050004F005100510050004E004F004D0051005200510050004F
004E004E004E004B004F004C004F004F004D004D004D004B004C004D
004B004C004A004C004C004E004E004C004E004D004D004E004E004F
005000510050005100520052005300530053005400550056
求相鄰數據間的差值序列,默認最初的i(據s(0)為0,那么第一個數據S(I)便是第一個差值
d(l)=S⑴,d⑵=s(2)-s(l),d(3)==s (3)-S (2),..d(150)=s(150)-s(N149),保存差值補碼的16進制形式,差分序列為
d(150) = 003D 0001 0002 FFFE FFFF 0001 0000 FFFF 0003 0000 (3002 0000
FFFF000000020000000000040000FFFF00030002FFFFFFFFFFFF0002
000200020000000100010001FFFE000100000003FFFD000100010000
00000000FFFE00010003FFFDFFFF0002FFFF00000001FFFEFFFF0000
0002FFFFFFFFFFFFFFFC00010001FFFF0003FFFC000100000001FFFF
FFFE0001000000000000FFFF00020000000000000001FFFF0002FFFE
00010002FFFFFFFE0003000000000000FFFF000100010001FFFF0002
FFFE0001FFFF00020000FFFFFFFE0001FFFE00040001FFFFFFFFFFFF
FFFF00000000FFFD0004FFFD00030000FFFE00000000FFFE00010001
FFFE 0001 FFFE 0002 0000 0002 0000 FFFE 0002 FFFF 0000 0001 0000 00010001 0001 FFFF 0001 0001 0000 0001 0000 0000 0001 0001 0001獲得差分序列d(i)后僅通過加法計算就可以恢復原來的數據,差值的數據與原始數據的位數相同,則每個s (i)和d(i)的建立和恢復都是可逆的,那么s(l) = d(l),s(2) = d(2)+s(l) , s (3) = d(3)+s(2) ,......,s(150)=
d(150)+s(149)。步驟S-2,根據差分序列的特性分成8類符號串,得到它們的概率值即冗余數據量。在本步驟中,由于曲線的連續特性,選取的連續150個點的16進制數據中99. 3%的相鄰數據間的差值集中在-2、_1、0、1、2之間。對這樣的用補碼的16進制形式保存的差分序列,可以將其符號串分成8類。符號串中主要含有000X,FFFX, 0000,0001,0002,FFFE,
FFFF,它們的概率分別為
1717ι <28P0000 = — ,P0001 = — /0002 二 — ,PFFFE =—,PFFFF = ~
150150150150150Ρ000Χ = — ,PFFFX = — ,PXXXX =—。
150150150步驟S-3,確定各類16進制符號串對應的前綴碼。在本步驟中,8種情況可以用3位二進制數表示,則0000,0001,0002,FFFE, FFFF,000X,FFFX的前綴碼分別為000,001,010,011,100,101,110,符號串XXXX的前綴碼為111。把這些前綴碼統稱為TAG段。步驟S-4,對數據按類進行變長編碼,請參閱圖2。把符號串的特征信息表現在編碼的最前面,盡可能的避免保存冗余信息。在本步驟中,編碼包含TAG段和數據段
TAG段I數據段對8類符號串進行分類編碼第1類,0000編碼為000僅包含TAG段共3位;
000代表0000,不用發送I女據位
第2類,0001編碼為001僅包含TAG段共3位;001代表0001,不用發送I女據位
第3類,0002編碼為010僅包含TAG段共3位;010代表0002,不用發送I女據位第4類,FFFE編碼為011僅包含TAG段共3位7 ;
權利要求
1.一種輸電線路故障行波數據壓縮方法,其特征在于,包括以下步驟步驟s-l,獲取原始數據序列相鄰數據間的差分序列,保存差值補碼的16進制形式;步驟S-2,根據差分序列的特性分成8類符號串,得到它們的概率值即冗余數據量;步驟S-3,確定各類16進制符號串對應的前綴碼;步驟S-4,對數據按類進行變長編碼把符號串的特征信息表現在編碼的最前面,盡可能的避免保存冗余信息;步驟S-5,獲得壓縮比的計算公式。
2.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于獲取原始數據的差值序列一個數據序列s(i),i = 1,2,......,N可以用相鄰數據間的差值序列表達出來,默認最初的數據S(O)為0,那么第一個數據S(I)便是第一個差值d (1) =s (1), d(2) =s (2) -S (1),d (3) = s(3)~s(2),......,d (N) = s (N) _s (N-I)。
3.如權利要求2所述的輸電線路故障行波數據壓縮方法,其特征在于獲得差分序列d(i)后僅通過加法計算就可以恢復原來的數據,差值的數據與原始數據的位數相同,則每個s(i)和d(i)的建立和恢復都是可逆的,令s(O) = 0那么:s (1) = d(l), s(2) = d (2) +s (1),s (3) = d(3)+s(2),......,s (N) = d (N) +s (N-I)。
4.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于根據差分序列的特性分成8類符號串,得到它們的概率值由于曲線的連續特性,95%以上的相鄰數據間的差值集中在-2、-1、0、1、2之間,對這樣的用補碼的16進制形式保存的差分序列,95%以上的符號串為 000X, FFFX,0000,0001,0002,FFFE, FFFF,它們的概率分別為:p000X,pFFFX,pOOOO, pOOOl, p0002, pFFFE,pFFFF,而不符合以上7種情況的符號串記為XXXX,概率為PXXXXo
5.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于對8類16進制符號串設計它們對應的前綴碼8種情況可以用3位二進制數表示,則0000,0001,0002,FFFE,FFFF,000X,FFFX 的前綴碼分別為 000,001,010,011,100,101,110,符號串 XXXX 的前綴碼為111,把這些前綴碼統稱為TAG段。
6.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于對差分序列中的所有數據按類進行變長編碼編碼包含TAG段和數據,符號串000X,FFFX編碼為TAG段和剩下的4位二進制編碼共7位;符號串0002,0001,0000,FFFF, FFFE編碼僅為TAG段共3位;符號串XXXX其編碼為TAG段和本身的16位二進制編碼共19位。
7.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于對差分序列中的所有數據按類進行變長編碼在變長編碼中,若碼字長度嚴格按照所對應符號出現概率的大小逆序排列,則其平均長度為最小,數據中0002,0001,0000,FFFF, FFFE占的比例最大而碼字長度最短;其次是000X,FFFX ;XXXX型符號串在所有數據中占的比例最小碼字長度最長,所以上述編碼方式碼子平均長度最小,達到了最大壓縮效率。
8.如權利要求1所述的輸電線路故障行波數據壓縮方法,其特征在于簡單快速的獲得壓縮比的計算公式根據各類符號串的概率和編碼長度計算壓縮比P,P= [{pQOQX + pFFFX) * 7 + (pOOOO + ^0001 + p0002 + pFFFE + pFFFF) * 3 + pelse * 19]/16 。
全文摘要
本發明提供一種輸電線路故障行波數據壓縮方法。所述方法包括獲取原始數據序列相鄰數據間的差分序列,保存差值補碼的16進制形式;根據差分序列的特性分成8類符號串,得到它們的概率值即冗余數據量;對數據使用前綴碼的方式按類進行變長編碼把符號串的特征信息表現在編碼的最前面,盡可能避免保存冗余信息;獲得壓縮比的計算公式。本發明提供的對連續曲線的數據利用差分和前綴碼方式進行變長壓縮的方法可實現對用16進制表示的大型數據文本的無損壓縮,提高壓縮效率,節省大量的存儲資源,而且算法簡單易于實現。
文檔編號H03M7/30GK102571101SQ20111041594
公開日2012年7月11日 申請日期2011年12月12日 優先權日2011年12月12日
發明者余陽, 全業生, 姚冬, 孔武, 張國清, 王思捷, 邢鈾, 錢冠軍, 陳欽柱, 黃松 申請人:武漢三相電力科技有限公司, 海南電力技術研究院