RS级联CRC编码在遥测系统中的应用
2013-10-17朱党杰孙江辉蒋学东
朱党杰,孙江辉,蒋学东
(中国空空导弹研究院通信技术研究所,河南洛阳 471009)
遥测系统在导弹研制中的主要作用是获取地面试验和飞行试验数据,为导弹设计评定和故障分析提供依据。遥测系统规定,系统误码率为10-4时作为接收信号的解调门限来计算系统作用距离。随着技术的进步,新的导弹武器系统越复杂,研制过程中需测试的信号和验证信息越来越多。在遥测系统发射及接收设备不变的情况下,遥测码速率的不断提高将造成系统作用距离的下降。为提高遥测系统增益,实现遥测数据实时可靠接收,文中提出了一种基于RS纠错编码级联CRC检错编码的综合编码方式,该技术在实现强大纠错能力的同时,大幅提高了遥测接收端解码的效率,以满足各遥测信号实时解算的需求[1]。
1 RS码编码原理
空空导弹遥测系统的体积和空间均有限,要求在不增加硬件资源的基础上实现数据纠错。RS码[2-4]构造简单、容易实现,符合遥测系统要求。同时RS码也是国军标推荐使用的一种遥测系统编码,纠错能力强,不仅能够纠正突发错误,还可以纠正随机错误。
RS码首先由Reed和Solomon提出,其码字结构如图1所示。RS码是一种分组码,编码器将输入数据流划分为各个分组,对每一分组添加校验信息,译码器则对每一分组进行处理,纠正传输中发生的错误。RS码的纠错能力由校验信息的长度决定,纠错能力为t的RS码,其信息符号个数为k,校验符号个数为2t,编码后码字长度为n=k+2t,记为RS(n,k)码。
图1 RS码码字结构
RS(n,k)码是一种多进制线性分组码。构成RS(n,k)码常用以下系统编码方式:
令校验多项式为其
中,ci是GF(2m)的域元素。编码后的RS多项式为
当域元素(c0,c1,…,cn-1)组成的向量是生成多项式g(x)的倍数时,此向量才能为码字多项式。对于一个能纠正t个错误RS编码的生成多项式,其格式为
对一个循环码进行编码的通用方法是通过g(x)除d(x)来生成p(x),其中有商多项式q(x)和余数多项式r(x)。
所以码字多项式可被记为
若校验多项式p(x)被定义为等于r(x)系数的相反数,则
为确保码字多项式是生成多项式的倍数,关键在于进行上述除法操作以获得p(x)。而通过除以多项式g(x)获得余数多项式的直接方法是将g(x)连至移位寄存器,如图2所示,其中每个存有m比特数的寄存器被记作bi。
该电路工作原理如下:(1)2t级移存器的初始状态全设为0,开关转向2,开始移位,依次送入信息多项式d(x)的系数,高次位系数首先进入编码电路进行编码。(2)k次移位后d(x)全部送入编码电路,完成除法运算,在移存器内保留余式r(x)的系数,即校验字。(3)开关转向1,经2t次移位后,便将移存器的校验字全部输出。
2 CRC码编码介绍
CRC即循环冗余校验[2-7],是另一种广泛应用于检错的循环码,可用反馈线性移位寄存器轻松实现其编码和伴随式计算,同时其译码算法简单,运行效率高。CRC用于检错,通常可检测如下错误:(1)突发长度<n-k+1的突发错误。(2)大部分突发长度=nk+1的错误,其中不可检出的错误仅占2-(n-k-1)。(3)大部分突发长度>n-k+1的错误,其中不可检出的错误仅占2-(n-k)。(4)所有与许用码组码距≤dmin-1的错误。(5)所有奇数个错误。
常用的CRC码,已成为国际标准,有下列4种:CRC-12:其生成多项式为
CRC-16:其生成多项式为
CRC-CCITT:其生成多项式为
CRC-32:其生成多项式为
其中,CRC-12用于字符长度为6 bit时,后3种用于8 bit字符。文中采用CRC-CCITT的编码方式。
3 RS级联CRC设计与实现
文中遥测系统中,遥测帧长为750 Byte,码速率达6 Mbit·s-1,由于遥测帧长度超出255 Byte,故将待编码数据分为3组,即采用数据交织方式进行RS编码,交织深度为3。每组采用 RS(255,231)的截短码RS(244,220)进行编码。每组数据具有纠12个符号的随机或突发错误能力,因此每遥测帧可具有纠36 Byte错误的能力。
CRC编码按位进行,采用CRC-CCITT的编码方式,每遥测帧为一组,帧同步字不参与编码,分组形式为(5 968,16)。
在FPGA内编程实现时采用流水线方式并行运算,不额外增加有效遥测数据的系统传输延时,满足遥测数据实时发送的需求。最终编码完成后的遥测数据帧由遥测数据、RS校验字、CRC校验字、遥测帧计数及遥测帧同步字组成,如图3所示。
遥测系统地面接收部分硬件状态保持不变,增加CRC检错解码模块和RS纠错解码模块。采用面向对象方法设计独立的解码模块,以配置文件的形式集成到原有的遥测地面接收处理软件系统中。由于RS纠错解码较为复杂,需占用大量计算机系统资源,执行效率低,且实际靶试时大部分遥测数据无误码,所以对每帧遥测数据均进行实时RS纠错不必要且不现实。以往在遥测发送端只有RS纠错编码,进行遥测数据处理时,RS纠错编码是在导弹靶试任务结束后对事后存盘数据进行的,并无实效性。文中在遥测系统发送端将RS与CRC级联起来,解码时以每个遥测数据帧为单元,先进行CRC检错,检测结果存在错误时再进行RS纠错,这便大幅提升了遥测接收端数据处理软件的实时纠错能力。
4 实验验证情况
遥测系统通过遥测地面检查站接收遥测数据,人为调整发射端与接收端之间的遥测无线信号强度,适当增大信号接收误码率,然后通过不同的系统软件配置进行数据解码,实施效果如表1所示。
表1 RS级联CRC实施效果
由表1可得出结论,将RS与CRC进行级联编码后加入遥测系统发送端,有助于提高遥测数据可靠性,在数据纠错能力得到加强的同时系统接收端软件的实时解码效率也大幅提高。
5 结束语
信道编码技术是遥测系统性能提高的关键之一。基于RS纠错编码级联CRC检错编码的综合编码方式,实现了遥测系统强大的纠错能力,提高了接收端实时软件的解码效率,增强了遥测系统的可靠性和实效性,满足各遥测信号实时解算的现实需求。该设计已在某型空空导弹的研制中进行应用,并取得了满意的效果。
[1]李英丽,刘春亭.空空导弹遥测系统设计[M].北京:国防工业出版社,2006.
[2]周炯槃,庞沁华,续大我,等.通信原理[M].北京:北京邮电大学出版社,2002.
[3]韩俊波,李和平.基于FPGA的前向纠错并行光纤传输系统设计与实现[J].科学技术与工程,2012,12(13):3121-3125.
[4]MATTORI M,MCELIEC R J,SOLOMON G.Subspace subcodes of Reed-solomon codes[J].IEEE Transaction on Information Theory,1998,44(5):1861-1880.
[5]王根义.CRC校验码算法的研究与实现[J].电子技术工程,2012,20(9):38-40.
[6]彭伟.嵌入式系统CRC循环冗余校验算法设计研究[J].南京信息工程大学学报,2012,4(3):258-265.
[7]宋富新,朱晓明,马小社.CRC编码的并行算法与软件实现[J].电子科技,2007(11):62-65.