《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于遥测数据的压缩算法设计与实现

基于遥测数据的压缩算法设计与实现

2009-04-08
作者:刘 鑫, 任勇峰, 刘小华, 李

    摘  要: 介绍了基于多路遥测数据采集系统在数据存储过程中的特点,提出了数据包的数据结构,并基于该数据包结构设计了低硬件复杂度的实时压缩算法。该数据压缩算法已成功应用于某舰船振动信号检测中,仿真及实际测试结果表明,该算法在满足数据处理精度要求的前提下,可获得较高的压缩因子。 

    关键词: 遥测数据; 数据包; 实时压缩

 

    随着遥感技术的飞速发展,新型航天遥感器、未来地球资源探测平台以及用于军事领域的各种传感器所获取的数据量急剧增长。为了有效传输和存储海量遥测数据,遥测数据压缩已经成为遥测技术应用的一个重要课题[1]。 

    对于数据压缩,根据失真率可分为无失真压缩和失真压缩两大类,无失真压缩法有霍夫曼编码、算数编码等。而对于允许一定失真率的遥测数据而言,采用游程编码可获得较好的压缩效果。同时数据的结构、数据的信息熵也直接影响数据传输速度、记录器的容量以及逻辑的布局。为了对遥测数据进行有效压缩,本文提出了数据包的数据结构,并在数据包的基础上提出了基于改进游程编码、低硬件复杂度的实时数据压缩方法。通过仿真实验,证明了该算法在处理特定遥测数据过程中具有良好的可靠性和有效性。 

1 多路遥测数据编帧结构 

    弹上遥测系统将反映各分系统工作情况以及工作环境的各种电量、非电量信号都转化成在规定范围内变化的电信号,然后由弹上遥测系统采集、编码、调制后传输得到遥测数据。遥测系统的帧格式是典型的PCM帧格式。每帧以一个特定的帧同步码组开始,帧同步码组之后排列着固定码长的各路数据,帧长和帧结构在飞行中是固定的。遥测系统以固定的采样率对每路模拟量进行采样,并依次对每路信号进行编码。为了既不丢失信号的信息又能合理利用信道,对于不同速率的参数,应在主帧基础上用不同的副帧来实现[2]。一个主帧由若干个副帧构成, 副帧分成多个波道, 存储不同信息。 

    图1所示为具体数据结构,其中包括N路速变信号和N+M路缓变信号,本实验采用16位的AD7667进行采样,其最高采样率为1MS/s,信号采样率远高于实际变化频率,从而使数据变化较为缓慢,为数据压缩提供了可行性。而一些缓变信号,当没有信号时,一般以固定值表示,这也为信息压缩提供了方便。 

 

 

2 多路遥测数据包结构 

    遥测系统中相邻帧之间即每通道间相邻数据具有很强的相关性,故设计了数据包结构来实现多路数据采集系统的数据压缩。打包法是将每通道数据单独打包。与编帧法相比,数据包结构的采集控制过程相同,但数据的组织方法不同[3]。 

    各个通道的输入信号选用多选一电子开关按时分方式依次采样,即相应通道被选中,经过模数转换器,形成PCM输出。在采编器中开设n个缓存区(一级缓存),每个通道的缓存区为k字节,依次编号且与通道号对应,对应通道采集的数据对应存放到对应的缓存区。当缓存区满后,将数据转移到下一级存储器(二级缓存),二级缓存采用FIFO结构。每组缓存区存储的数据在转移时,都冠以通道号标记和同步标记。当二级缓存FIFO达到一定的深度时,将二级缓存中的数据转移到下一级存储器(主存储器)。类似于一级缓存到二级缓存的打包过程,每组二级缓存的数据在转移时,也要冠以时间标记、卡标记和同步标记。数据包结构的具体实现方式如图2所示。 

 

 

    除了压缩效率,数据压缩所要考虑的另一个重要方面是算法执行的复杂度。通过上述分析可知,该硬件电路易于实现打包数据的存储和转移,为打包压缩算法的可行性提供了条件。 

3 实验结果分析 

3.1压缩/解压算法设计 

    游程编码的原理十分简单:将一行数据中数值相同或相近的相邻点用一个计数字节和一个表示该数据值的数据字节来代替。然而该算法存在一个致命弱点:如果数据中每两个相邻点的数值都不同,用这种算法不但不能压缩,数据量反而增加一倍。为了避免上述病态数据的出现,在算法上对计数字节和数据字节进行了区分,本实验是以16位ADC数据为例,对进入FPGA的数据进行预处理。先将数据除以2,然后加上8 000H,确保数据的最高位为1,而计数字节的最高位为0。具体的压缩编码与解码恢复的算法流程图分别如图3和图4所示。 

 

 

 

    将16位ADC数据进行有损压缩后的数据格式如表1所示。用该压缩算法,数据结构同编帧法相比,由于各通道物理过程不尽相同,压缩因子较大的通道在大包中出现的概率较小,各通道压缩因子介于[1,16 384]之间。 

 

 

3.2仿真结果 

    压缩率与误差参数△的关系仿真曲线如图5所示。

 

 

3.3 实际测试结果 

    在硬件电路设计中采用16位的AD7667进行采样,则系统理论上的最高分辨率为2.5/216。从上述流程中可知:AD连续两次采样的差值小于△时,便认为这两次的值是一致的,取前一个值,因此△的不同,使得AD的分辨率也跟着变化。△与AD分辨率的关系如表2所示。 

 

 

    由表2得出:△值越小,经压缩后其分辨率越高;反之,△值越大,经压缩后其分辨率越低。 

    在舰船振动的检测过程中,要求舰船振动加速度超过100g,记录器就能识别出来。振动传感器的灵敏度约为0.5pc/g。 

    最小输入电荷量为: 

    Q=100g×0.5pc/g=50pc 

    电荷经过放大器,输出电压Vo为: 

       

    AD7667的采集电压范围为0~2.5V,所以AD的最小分辨率为0.005V。当△=64,其数据压缩以后的分辨率为其数据压缩以后的分辨率为通过以上分析,将△值确定在{0,64}。 

    设计人员可以根据实际需要改变△来改变算法的压缩比,△值越小,压缩比越低,波形失真越小;△值越大,压缩比越高,波形失真越严重。因此,在保证精度的条件下,△值越大压缩比越高。 

    根据以上的分析,此算法属于有损压缩算法,在应用中,设定不同的△值 ,对于差值小于△时的冗余数据,都认为是同一个数据压缩后的数据如图6所示。 

 

 

    由于采集系统会受到系统、外界和本身的纹波干扰,若△选得太小,则压缩效果不明显,如上表中的△为64的压缩数据所示:AD的编码值为1000 0000 0100 110X(80 4X),经过移位以后,编码变为0100 0000 0001 0011(40 13),紧接着为计数器1111 1111 1111 1111(FFFF),最高位“1”代表计数器,其余15位代表计数值(7FFF),每隔一秒钟写入一个帧标志XX XX XX EB 90;已知AD的采样率为200KS/s,综上,在无突变信号的情况下本算法的压缩比为: 

     

    通过以上理论分析、仿真结果及硬件实验测试结果可知,采用数据压缩技术可以减少多余数据,从而在有限的存储容量下获得尽可能多的非多余数据。算法硬件实现简单,采用低功耗的FPGA实现硬件压缩,对所采集数据的压缩和解压时间短,在符合系统精度要求的前提下,采用该压缩算法,可以获得较高的压缩比。 

参考文献 

[1] 王崛.遥测数据压缩算法的设计与实现. 遥测遥控,2002,23(2):16-22. 

[2] 马宁,朱福荫,尹志军,等.改进游程编码在天气雷达数据压缩中的应用.解放军理工大学学报,2004,5(6):88-90. 

[3] 贾纬敏.一种可编程PCM遥测编码器的设计.电子工程师,2004,30(5):71-73.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。