专利名称:输电线路故障行波数据压缩方法
技术领域:
本发明涉及对大量数据进行编码处理以达到数据压缩存储的技术领域,尤其涉及利用曲线的连续特性对其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日
发明者余阳, 全业生, 姚冬, 孔武, 张国清, 王思捷, 邢铀, 钱冠军, 陈钦柱, 黄松 申请人:武汉三相电力科技有限公司, 海南电力技术研究院