随着测试参数种类增加,测试环境越来越复杂,海量雷达数据与有限存储容量之间的矛盾日益明显,实时数据采集与压缩技术可以缓解这一矛盾的加剧。雷达数据采集系统采取了基于FPGA的LZW实时无损压缩算法。该算法能够实现追求采集信号精度的同时减低算法难度,已成功应用于某飞行测试实验,性能指标满足应用要求。
多频连续波雷达是一种新体制雷达,能够同时发射多个频率的连续波正弦信号对多个目标的速度、加速度、距离、方位角、俯仰角等多组参数目标进行探测。具有设备简单、体积小、重量轻、功耗低等优点[1]。
对于连续波体制雷达,目标参数多、信号处理的实时性强是其最显著的特点。海量的回波数据使得存储 *** 作变得非常困难,并且也不易进行数据分析。数据的实时采集压缩技术可以解决这一问题。由于雷达信号较为敏感,在大多数情况下雷达信号都需要先记录,再事后取证、分析,所以只能采用实时无损压缩。因此,要求多频连续波雷达数据采集系统信号处理实时性好,处理数据量大,在追求目标采集测量精度的同时降低信号处理算法的复杂度,利于工程实现。
当前有很多压缩与解压缩方法都是基于软件实现的,都是对数据进行后期处理。这种方法执行速度慢,耗费大量的CPU资源。采用硬件实现数据的实时无损压缩能够将高速信号变成缓变信号进行传输,降低通信的信道容量,提高数据的可靠性。在雷达信号数据采集系统中,完成数据的海量存储并提高总线的数据传输速度应采用硬件实现数据的实时无损压缩。
1 数据压缩算法比较数据压缩算法有不同的分类方法,根据压缩算法是否可逆可以分为可逆压缩与不可逆压缩。其中可逆压缩也叫无失真编码或无损压缩。不可逆压缩叫做失真编码或有损压缩。由于人的感觉器官对于图片、声音或视频中的某些信息的丢失难以察觉,一般采用有损压缩算法可以节约大量的存储空间。主要有预测编码、多分辨率编码、分型图形编码等。无损压缩算法主要有哈夫曼编码、算术编码、游程编码和LZ编码等[2]。其中哈夫曼编码与算术编码均根据源数据发生的概率进行编码,需要对压缩数据进行统计,处理过程缓慢,实时性差;游程编码只有在字符连续出现4次以上才能获得比较好的压缩效果,不适用于压缩雷达回波信号。LZ编码是基于字典的模式,用单个代码代替字符串,数据流式输入,对数据源无分块要求,实时效果好,解压完全可逆。LZ编码包括LZ77、LZ78和LZW(Lempel-Ziv-Welch Encoding)。本文根据雷达回波数据的压缩要求选用LZW无损压缩算法。
2 雷达数据采集系统硬件实现本文介绍的多频连续波雷达数据采集系统中16路模拟信号经过放大、跟随、滤波处理后经高速模拟电子开关进入高速ADC,输出16bit数字量。数字量的缓存与处理由采集处理模块中的采集控制逻辑(FPGA)实现。压缩后的数据在主控模块的控制下经高速系统总线写入数据存储模块中的存储器阵列。原理框图如图1所示。
3 基于FPGA的LZW算法设计
3.1 LZW数据压缩算法
LZW数据压缩算法是一种新颖的压缩方法,具有实时性,压缩效率高,可对不同的数据流进行自适应压缩,对于缓变、重复性高的数据流,随着数据量的增大, 压缩效率能显著提高。LZW算法有三个重要的对象:数据流(CharStream)、编码流(CodeStream)和编译表(String Table)。在编码时,数据流是输入对象,编码流是输出对象。数据流是指被压缩数据,编码流是指压缩后输出的代码流,编译表存储的是数据的索引号,相同块的数据只输出第一块的索引号,从而实现数据的压缩。
LZW压缩算法的基本原理是提取出待压缩数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符索引替代原始数据中的相应字符,从而减少原始数据的大小。其中编译表不是事先创建好的,而是根据原始文件数据动态创建的。
LZW压缩算法的基本思想是建立一个串表,将输入字符串映射成定长的码字输出,通常码长设置为12bit,也可设置为15bit或者18bit。串表具有“前缀性”:假设任何一个字符串P和某一个字符S组成一个字符串PS,若PS在串表中,则S为P的扩展,P为S的前缀。字符串表是动态生成的,编码前先将其初始化,使其包含所有的单字符串。在压缩过程中,串表中不断产生压缩信息的新字符串,存储新字符串时也保存新字符串PS的前缀P相对应的码字。在解压缩过程中,解码器可根据编码字恢复出同样的字符串表,解出编码数据流[3-4]。
3.2 FPGA模块化设计
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)