数字通信中的RS编码摘要:由于信道中存在干扰,数字信号在信道中传输的过程中会产生误码。为了提高通信质量,保证通信的正确性和可靠性,通常采用差错控制的方法来纠正传输过程中的错误。本文的目的就是重点研究一种信道编码的算法和逻辑电路的实现方法,并在硬件上验证。RS码是一种典型的纠错码,在线性分组码中,它具有最强的纠错能力,在分析RS编码原理的基础上,介绍RS(15,11)码的编码算法和逻辑电路的实现方法。关键词:数字通信纠错编码RS码1.引言目前RS码已经成为美国航天局(NASA)和欧洲空间站(ESA)在深空通信级联系统中采用的标准码,此外RS码也是存储器系统的标准用码。RS码编解码的纯硬件实现比较复杂,EDA技术的出现,使得利用软件开发工具实现硬件电路设计成为现实。编解码的实现过程都在VHDL环境下完成。2.RS码的参数及编码设计本章详细讨论RS编码器和解码器的逻辑电路设计以及对设计进行的优化。RS编解码【2】算法中大量用到多项式求值运算,如伴随式计算,BM算法求解错误位置等,而这些多项式的求解可以使用乘加运算来实现,因而制约RS码编解码器性能的最主要的因素是乘法器和求逆器的设计。我们首先研究GF(24)有限域的乘法器和求逆器的逻辑电路实现。2.1GF(2m)运算“加法”:只需要把它们的矢量表示进行按位异或运算即可。其程序如下:LxorP;“乘法”:标准基乘法器【4】的原理如下:基于GF(24)域上面的任意两个元素A,B及其乘积C分别可以用多项式表示为:A(x)=a3x3+a2x2+a1x+a0B(x)=b3x3+b2x2+b1x+b01.将A(x)和B(x)两个多项式按照常规方法相乘,得到一个次数不大于6的多项式Q(x);2.将Q(x)对GF(24)的本原多项式P(x)=x4+x+1求模,得到次数不大于4的多项式,即得到A与B的乘积C(x)。Q(x)=q6x6+q5x5+q4x4+q3x3+q2x2+q1x+q0其中Q(x)各项的系数如下:q0=a0b0;q1=a1b0+a0b1;q2=a2b0+a1b1+a0b2;q3=a3b0+a2b1+a1b2+a0b3;q4=a3b1+a2b2+a1b3;q5=a3b2+a2b3;q6=a3b3可以得到化简的计算方法:C(x)=A(x)×B(x)modp(x)=C3x3+C2x2+C1x+C0其中:C3=q3+q6C2=q2+q5+q6C1=q1+q4+q5C0=q0+q4由上面的分析可以知道,直接利用一个纯组合逻辑电路就可以求解出在有限域上面A(x)和B(x)的乘积的系数。2.2RS编码算法RS编码过程就是解决以生成多项式g(x)为模的除法问题。就是计算信息码符多项式M(x)除以校验码生成多项式g(x)之后的余数。在介绍之前需要说明一些符号。在GF(2m)域中,符号(n,k)的含义如下:m:表示符号的大小;n:表示码块长度;k:表示码块中的信息长度;K=n-k=2t:表示校验码的符号数;t=(n-k)/2:t表示能够纠正的错误数目。例如,RS(15,11)表示码块长度共15个符号,其中信息代码的长度为11,检验码有4个检验符号,可以纠正在这个码块中出现的2个分散的或者2个连续的符号错误。对一个信息码符多项式M(x),RS校验码生成多项式的一般形式为(此处的K为大写的K)式中,K0是偏移量,通常取K0=0或K0=1,而(n-k)≥2t(t为要校正的错误符号数)。假设RS(15,11)码中的15个信息符号为m10、m9、m8、m7、m6、m5、m4、m3、m2、m1和m0,信息码符多项式M(x)为:M(χ)=m10χ10+m9χ9+m8χ8+m7χ7+m6χ6+m5χ5+m4χ4+m3χ3+m2χ2+m1χ+m0假设RS校验码的4个符号为Q3、Q2、Q1和Q0,的剩余多项式R(x)为R(χ)Q3χ3+Q2χ2+Q1χ+Q0,这个多项式的阶次比g(x)的阶次少一阶。如果K0=1,t=2,由式(1-2)导出的RS校验码生成多项式就为根据多项式的运算,可以得到g(x)=x4+13x3+12x2+8x+7图1编码电路图编码电路图【5】如图1所示。图1中的g0,g1,g2,g3是生成多项式g(x)的各次项的系数。其中,加法和乘法均是有限域上的运算,不同于普通的四则运算,有限域内的加法运算等效于普通的逻辑异或运算,乘法运算也可以映射到域内的加法运算进行。首先所有寄存器被置为“0”,开关接至数据处。待编码数据被顺序移入编码电路,并被同时送至输出端。当最后一个编码信息被送入电路后,开关切至校验处,并且连至反馈网络的门将断开。此时寄存器里的内容就是校验位,把它们顺序输出就完成了RS编码过程。在实现RS编码的过程中,可以事先将它们计算好GF(2m)域中的元素值和生成多项式系数。编解码算法对于线性分组码,产生系统码的方法是将信息位左移,然后除以一个生成多项式,得到一个系统码,这种方法得到的码字的前面一部分位原始的信息序列,后面一部分为校验序列。3.结束语RS解码器的逻辑设计实现是本设计中最复杂的一部分,RS码是BCH码的子类,因此它也遵循BCH码的解码过程。可以充分利用RS编码的循环性,通过对伴随式的定义,利用伴随式的性质对最高位码子纠错,每一个符号均可移至最高位进行纠错,从而完成RS解码。参考文献:[1]专著:王新梅,肖国镇.纠错码原理与方法.西安,西安电子科技大学出版社,2001,4。[2]学位论文:王冬梅,周正欧.DVB系统中RS编/解码器的FPGA实现.[硕士学位论文],成都,电子科技大学,2003,6。[3]专著:吴继华,王诚.AlteraFPGACPLD设计.北京,人民邮电出版社,2005,7。[4]期刊:梁炜新,王群生,牟刚.基于FPGA的通用FPGA的通用RS编解码器的VHDL设计方法.数字电视与数字视频文章编号:1002-8692(2004)03-0016-05。