HJ-1C卫星实时软件帧同步算法研究与实现
2014-06-20侯仰拴胡玉新
侯仰拴 石 涛 胡玉新
(中国科学院空间信息处理与应用技术重点实验室 北京 100190)
(中国科学院电子学研究所 北京 100190)
1 引言
帧同步格式化器作为卫星地面接收站快视系统的关键设备,负责从卫星下传的基带数据流中提取帧同步字、成帧处理和数据解扰[1-4]。帧同步格式化器分为硬件和软件两种,硬件帧同步格式化器速度快,但是开发周期长,成本较高[5];软件格式化器开发周期短,成本低,可配置和移植性强,但是速度一般较低[6],是制约软件帧同步实时处理的瓶颈。
文献[7,8]将KMP算法应用到软件帧同步器中,文献[9]在研究基于 KMP等算法的基础上,提出了一种基于查找表判决方式的软件帧同步算法,该算法根据不同卫星同步字的内容事先生成一系列的查找表,查找表存于内存缓冲区中,搜索同步字时,以采集到的遥感数据的一个字节为地址,取查找表中的数据进行比对判决,这些改进算法有效地提高了软件帧同步处理速度。
由于天线在开始和结束接收数据时,仰角较低,易受到大气干扰、遮挡或跟踪捕捉信号差的原因,会产生较高的误码率,甚至出现大量无效数据。传统软件帧同步方法在处理稳定数据区时,处理速度较快;但是在处理高误码率的不稳定数据区时,由于长期处于失锁状态,处理效率低,无法满足高码率卫星实时性要求。
对于下行码率较低(低于100 Mbps)的遥感卫星,可通过增加缓存的方法缓解不稳定数据区处理效率低的问题,但随着HJ-1C及后续其它卫星数传码率的不断提高(如部分卫星码率已大于400 Mbps),增加缓存的方式已经无法满足实时处理需求[10,11],为了解决该问题,本文提出了一种基于逆向搜索的实时软件帧同步算法。
2 基于逆向搜索的实时帧同步算法
基于逆向搜索的帧同步方法主要思想是:对基带数据进行逻辑分段,数据分段方式如图1所示,搜索态时,首先通过检测当前数据段尾部数据,判断该数据段是否包含同步字,如果尾部数据检测到同步字,说明该数据段包含数据帧,那么再从该数据段头部开始逐字节检测同步字,否则直接处理下一数据段,并依次类推;校验态和锁定态时,将相邻两段数据作为连续数据进行处理。数据的分段长度与原始码流速率、帧长和计算机内存有关,分段过长会导致处理实时性降低,分段过短时在无效数据区会频繁搜索同步字,影响处理效率。码速率低于 200 Mbps时,建议分段长度为 1024倍帧长;高于 200 Mbps时,建议分段长度为2048倍帧长。将原始数据进行分组和逆向搜索处理,避免了对大量连续无效数据的同步字检测,从而提高了帧同步效率。
2.1 基于逆向搜索的帧同步处理步骤
基于逆向搜索的软件帧同步方法流程如图2所示,主要步骤为:
(1) 帧同步软件启动后,对任务订单进行解析,获取卫星和传感器标识,接收和发送IP、端口号等任务信息,根据任务订单读取参数文件;
(2) 进行初始化,生成同步码查找表、字节查找表、字节对齐查找表、PN码解扰数组等,开辟接收和发送循环缓存buffer块队列;
(3) 启动数据接收、发送和处理 3个线程,初始化网络端口,并将接收线程设为监听状态;
(4) 接收数据时,将接收到的数据依次写入到buffer块队列中,写满1个buffer块后,通知处理线程进行帧同步处理;
图1 数据分组示意图Fig.1 Data grouping map
(5) 若当前buffer状态为不含数据帧状态,对其最后 3帧长度数据逐字节与同步码位移查找表比对,若搜索到同步码,转到步骤(6)处理,否则等待下一buffer块指针,返回步骤(5)对其进行处理;
(6) 当前 buffer状态设定为含有数据帧模式,从该buffer块头部逐比特搜索,搜索到同步码后,转到步骤(7);
(7) 程序进入校验状态,如果当前同步码位置到该buffer块结尾不够2帧长度,等待下一buffer块指针,并将剩余数据补充到将该buffer块前面,组成连续数据。从当前搜索到的同步码位置开始跨越1个帧长进行搜索,检测该位置同步码是否存在位移或比特错误,若超出容错范围则校验失败,转到步骤(8)重新进入搜索状态,若校验成功则设定为锁定态,转到步骤(9)处理;
(8) 从当前同步码位置逐字节进行搜索,若检测到同步码,转到步骤(7)处理,否则等待下一buffer块指针,转到步骤(5)处理;
(9) 程序进入锁定状态时,将当前锁定成功的1帧数据逐字节根据搜索到的比特移位数在字节对齐查找表中搜索后填充对应的内容,完成字节对齐操作,然后将对齐后的数据与预处理阶段生成的解扰表进行异或,将结果填充到输出环形buffer中,通知发送线程发送数据,并转到步骤(7)继续处理;
(10) 发送线程接到发送通知后,对输出环形buffer进行检测,并将格式化后数据发送到其它处理单元,如果数据接收和处理线程结束返回,格式化数据发送完毕后,帧同步程序退出。
2.2 关键技术分析
2.2.1 分组式帧同步 在同步码提取模块中,搜索态操作对应于数据起始和失锁后的搜索阶段,在这两种搜索阶段中,卫星下行原始码流的特点为:码流由不含同步头或误码率较高的数据区过渡到同步头和帧长在容错范围内的区,最终进入较稳定的数据区。
实际数据处理过程中对数据进行逐比特同步码搜索会占用大量处理时间,考虑到卫星下行原始码流的特点,在搜索状态时,可以仅对buffer块最后3帧长度数据进行逐比特的同步码搜索,若无法找到同步码则认为当前buffer块不存在数据帧而进行整块的丢弃;若搜索到同步码则对该帧从buffer块的头部进行逐比特的同步码搜索。
由于卫星下传的数据均大于单一buffer块的容量,在搜索状态下可以认为若某一buffer块中含有数据帧,则该buffer块结尾部分含有帧数据。
图2 帧同步处理流程图Fig.2 Block diagram of frame synchronization system
根据抽屉原理,在m帧长度的随机连续数据中至少包含 1m− 个完整的数据帧,对于同步字长度为n bit,信道误码率为p(假设每比特误码概率相互独立)的情况下,该数据段包含的 1m− 个帧同步字中均存在错误,即可以被程序误判的概率P为:
由于0<p< 1, P正比于n,取典型值n=64,p = 1×10−5, m= 4可以计算得P最大值的数量级为1×10−10。
特别地,式(1)计算得到的P为首个数据块搜索时的误判概率,当搜索到首个含帧数据块后,程序开始按位搜索同步字直到程序再次进入失锁状态,因此其它数据块的搜索不会因为后3帧的误判导致丢失数据块。
2.2.2 高频操作建查找表 同步码提取和字节对齐过程包含许多高频操作,高频操作是指要逐比特或逐字节进行处理的重复操作,如同步码比对和比特移位输出,该处理过程将占用大量时间。因此在初始化阶段首先建立相应的查找表,在处理过程中的相应操作只需要从表中查找相应结果即可实现,将大大降低处理时间。
由于数据录入时的字节序为高比特位在前,低比特位在后,而IBM-PC构架的计算机数据处理方式均为针对低比特位在前,高比特位在后的存储结构,且计算机软件处理的最小单位为字节,因此在进行移位处理时因为两种不同的比特序和字节序会导致大量的处理运算,影响处理时间,针对这种情况,在初始化阶段首先建立字节移位查找表,利用查表代替多次的位移和赋值操作以提高处理速度。
2.2.3 位容错、抗滑帧 同步字详细查找时,采用查表的方式搜索同步字,表中不同的项对应不同比特位移状态下的同步字,各项的索引值即为同步字的比特偏移量。搜索表在数据处理前生成,并不占用处理时间,而查表的搜素方式可以加快数据处理速度。
同步字预置查找可以实现高速的滑动容错搜索,对于位容错搜索采用改进的Rabin-Karp搜索方式。对于同步字的每一位均赋予相同的权重,进行散列变换,结果为当前同步字中的误码个数。实际处理时误码个数以字节为单位进行统计,该统计过程可以通过在处理前建立查找表来实现,当各字节统计完毕后进行求和即可得到当前同步字的误码个数。
2.2.4 灵活、可配置 基于上述优化处理算法,可以实现的帧同步解扰指标如下:
(1) 支持不低于 600 Mbps数传码率的实时帧同步解扰处理;
(2) 可识别同步字长:16 bit至64 bit;
(3) 支持I, Q合路比特交织的帧同步处理;
(4) 帧同步时间小于3帧周期;
(5) 具备容错和抗滑帧能力;
(6) 位容错能力为3 bit;
(7) 抗位滑动能力为3 bit ±;
(8) 具备检测与通知错帧能力。
3 实验结果与性能分析
以Visual Studio 2010为开发环境,在通用计算机平台(Intel Xeon CPU E5649 @2.53 GHz 8 GB RAM)上对本文算法进行了测试,测试数据选取HJ-1C真实卫星数据,大小为3.82 GB,交织帧长为1620 Byte。
测试方案如下:(1)在同步字偏移0 bit和7 bit两种情况下,利用本文算法和传统帧同步算法分别对帧头数据无误码,错3 bit,多3 bit以及少3 bit数据进行帧同步处理,以检验本文算法位容错及抗滑帧能力,传统帧同步算法是指已使用查找表处理,但不进行数据分段的软件帧同步方法,测试结果如表1所示。(2)利用本文算法和传统算法对含有连续无效数据的卫星数据进行帧同步、解扰,无效数据(置于测试数据的前端)所占比例分别为 0%, 20%,40%, 60%, 80%以及100%,以检验本文算法对连续无效数据的处理能力,测试结果如表2所示,对比图如图3所示。
表1 测试1结果Tab.1 Result of testing 1
测试(1)说明本文算法是有效的,在容错和抗滑帧范围内,不会出现漏帧和错帧,测试(2)说明随着连续无效数据量的增加,传统帧同步算法效率会越来越低,而本文算法效率则会不断提高。极端情况下,如果数据全部为无效数据,传统帧同步算法速度只有206.7 Mbps,而本文算法可达到15445.9 Mbps。
表2 测试2结果Tab.2 Result of testing 2
图3 本文算法与传统算法处理速度对比图Fig.3 Processing speed comparison of two methods
4 在HJ-1C卫星实时快视系统中的实际应用
HJ-1C为国内首颗民用SAR卫星,数传数据通过两个物理通道下传,单通道码速率为160 Mbps。由于在数据形成时将 SAR的距离向分前后两部分分别在两个数传通道中下传,因此在SAR成像处理过程中,需要将两个通道数据进行拼接,才能形成完整的SAR图像。图4为HJ-1C快视系统流程图,卫星过顶时,按照特定码速率双通道下传卫星数据,地面接收系统经跟踪、解调得到两路串行数字信号,通过数据通道开关发送到指定的记录器[12,13],记录器再将记录的两路原始数据实时转发到快视系统,快视系统对两路原始数据分别进行帧同步、解扰、去格式化,然后进行双通道数据拼接和SAR成像处理,最后将图像数据和辅助数据实时传送到移动窗显示,图5为HJ-1C快视影像。为了减少两路帧同步数据时延的不一致性对数据拼接造成的影响,对帧同步处理的时效性提出了更高的要求。目前,在中科院遥感卫星地面站的HJ-1C全分辨率实时快视系统中的帧同步与解扰模块即采用了本文所提出的帧同步算法。自HJ-1C成功发射后,该系统一直在地面站稳定运行,表明本文所提出的帧同步算法的有效性。
图4 快视系统流程图Fig.4 Block diagram of quick look system
图5 HJ-1C快视影像Fig.5 HJ-1C quick look image
5 小结
本文提出的基于逆向搜索的实时软件帧同步算法通过对高频操作以及大量使用的相似性操作建立查找表,提高了效率,减少了处理时间;通过引入容错机制,在帧同步过程中可以实现位容错和滑动容错;充分利用计算机对于字节处理的优势,对于原始数据不进行IQ比特的分离,对于IQ两路数据直接采取合并处理的方式进行同步,避免了数据分离与合并的操作,提高了处理效率,同时也防止双路输出导致的IQ路数据时间同步的问题;通过配置文件实现去传感器化,将同步字、帧长度、扰码文件位置等信息存放在配置文件中,只需改变该配置文件中的信息,即可兼容多卫星多传感器数据,极大提高了该算法的灵活性和实用性,目前本文提出的帧同步算法已成功应用于中科院遥感卫星地面接收站HJ-1C快视系统中。
[1]杨仁忠, 张宁, 石璐.遥感卫星原始数据记录系统软件的设计与实现[J].微计算机信息, 2010, 26(12): 114-116.Yang Ren-zhong, Zhang Ning, and Shi Lu.Design and implementation of remote sensing satellite raw data record system software[J].Control & Automation, 2010, 26(12):114-116.
[2]白彧, 杨晓静, 王懋.基于相关滤波和哈达玛变换的帧同步码识别[J].探测与控制学报, 2011, 33(3): 69-80.Bai Yu, Yang Xiao-jing, and Wang Mao.Recognition method of frame synchronization codes based on relativity filter and hadamard transformation algorithm[J].J ournal of Detection& Conrtol, 2011, 33(3): 69-80.
[3]胡莉, 张力伟, 周希元.帧同步检测技术的研究进展[J].无线电工程, 2009, 39(2): 12-15.Hu Li, Zhang Li-wei, and Zhou Xi-yuan.Research advances in frame synchronization detection[J].Radio Engineering,2009, 39(2): 12-15.
[4]Eesa M, Bastaki, Harry H, et al..Frame synchronization based on multiple frame observations[J].IEEE Transactions on Wireless Communications, 2010, 9(3): 1097-1107.
[5]陈燕.基于 FPGA高速帧同步设计及性能分析[J].无线电工程, 2010, 40(5): 25-39.Chen Yan.A method of implementing frame-synchronization based on FPGA for high-speed communication[J].Radio Engineerin g, 2010, 40(5): 25-39.
[6]肖志东, 李帅, 田野, 等.AOS系统中的帧同步技术性能分析与仿真[J].沈阳理工大学学报, 2010, 29(3): 20-25.Xiao Zhi-dong, Li Shuai, Tian Ye, et al..Performance analysis and simulation on frame synchronization method of advanced orbiting systems[J].Journal of Shenyang Ligong University,2010, 29(3): 20-25.
[7]林小江.查表判决方式帧同步器的设计[J].遥测遥控, 2000,21(2): 40-44.Lin Xiao-jiang.Look-up table decision frame synchronizer design[J].Journal of Telemetry Tracking and Command, 2000,21(2): 40-44.
[8]曹宇, 杨仁忠.卫星软格式化同步器与资源卫星 1号 02星CCD 数据移动窗相关技术研究[J].空间科学学报, 2005, 25(4): 315-320.Cao Yu and Yang Ren-zhong.Software frame synchronizer and related technology research of moving window display for CCD data of CBERS-02[J].Chinese Journal of Space S cience,2005, 25(4): 315-320.
[9]朱党杰, 杨仁忠.一种新型软件帧同步算法的研究与实现[J].科学技术与工程, 2007, 7(16): 4044-4057.Zhu Dang-jie and Yang Ren-zhong.Research and realization of a new algorithm in software frame synchronization[J].Science Technology and Engineering, 2007, 7(16): 4044- 4057.
[10]粘永健, 辛勤, 汤毅, 等.基于多波段预测的高光谱图像分布式无损压缩[J].光学精密工程, 2012, 20(4): 906-912.Nian Yong-jian, Xin Qin, Tang Yi, et al..Distributed lossless compression of hyperspectral image based on multi-band prediction[J].Optics and Precision Engineering, 2012, 20(4):906-912.
[11]汤毅, 辛勤, 李纲, 等.基于内容的高光谱图像无损压缩[J].光学精密工程, 2012, 20(3): 668-674.Tang Yi, Xin Qin, Li Gang, et al..Lossless compression of hyperspectral images based on contents[J].Optics and Precision Engineering, 2012, 20(3): 668-674.
[12]杨仁忠, 蔡兴文, 杨蕾, 等.通用遥感卫星快视处理系统技术研究[J].遥感应用, 2009, 5(1): 32-35.Yang Ren-zhong, Cai Xing-wen, Yang Lei, et al..Research on technology of quick look processing of general remote sensing satellite[J].Remote Sensing Ap plication, 2009, 5(1): 32-35.
[13]刘翔.高分辨率图像快视技术及实现[J].无线电工程, 2006,36(3): 20-22.Liu Xiang.“Fast-View” technology and its implementation for high-resolution image[J].Radio Engineering, 2006, 36(3):20-22.