状态机首先完成初始化过程,物理地址000H~0FFH分别存放对应的0~255。初始化完成后,状态机进入压缩编码循环,读入当前字符,若该字符与字典中的某个字符匹配,再读入下一字符;若不匹配,把该字符加入到当前字符串中,输出前缀的字典指针到输出码流。反复执行该过程,直到编码结束。
以字符串流97,24,1,97,24,232,1,255,97,24,232,46……为例,表1给出LZW压缩算法的处理过程。输出码流为061,018,061,100,0E8,001,0FF,0E8……,其中字典指针及输出码流均以16进制表示。
3.4 测试结果分析
本文设计的多频连续波雷达数据采集系统中的控制逻辑采用Xilinx公司的Virtex-E系列FPGA器件XCV400E,系统时钟频率100 MHz,分别选取三种不同类型的雷达数据帧进行压缩算法测试,如表2所示。其中数据帧1为1 MB的雷达视频回波文本文件数据,杂波信号较多;数据帧2为5 MB的雷达视频回波文本文件数据,杂波信号较少;数据帧3为10 MB的二进制雷达数据。
由测试结果可以看出,LZW算法对于杂波信号较少的缓变雷达回波信号的压缩效果最好。对于杂波较多的数据实现无损压缩可进一步对LZW算法进行优化。例如固化初始化过程,可以节约压缩时间和简化控制时序;或是对于出现频率高的字符,记忆其字典指针及出现位置,不必每次都从字典的起始处开始查,简化算法的复杂度。
本文介绍了基于FPGA的LZW算法在雷达回波信号压缩中的应用,利用FPGA内部丰富的BLOCk RAM资源,在片内集成高速数据缓存及字典存储模块实现对海量雷达数据的实时采集、压缩处理。算法通过采用VHDL语言有限状态机实现,可移植性强,并可在线升级。该算法已成功应用于某飞行测试实验中。
参考文献
[1] 戴奉周,冯维婷,沈福民.数字多频连续波雷达信号处理中的关键算法[J]. 雷达科学与技术, 2005,6(3):177-180.
[2] SALOMON D.数据压缩原理与应用[M].吴乐南,等,译.北京:电子工业出版社, 2003.
[3] 蓝波,林小竹,籍俊伟.一种改进的LZW算法在图像编码中的应用[J].计算机工程与科学,2006,28(6):55-57.
[4] 郭晓岩,郝永胜. LZW无损压缩算法在计 算机取证中的应用研究[J].测控技术,2006,25(11):64-67.
[5] LON M B, LEE J F, JAN G E. A lossless data compression anddecompression algorithm and its hardware architecture[J].IEEE Trans,VLSI. 2006,14(9):925-935.
[6] 陈晋敏,黄春明,周军. 激光雷达数据无损压缩的FPGA实现[J].计算机测量与控制,2007,15(1):100-102.
[7] 尹志勇,焦新泉,任勇峰.雷达视频回波信号实时采集、压缩转发装置[J].计算机测量与控制,2010,18(2):479-481.