非系统RS (31,19)编译码算法研究与FPGA实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非系统RS (31,19)编译码算法研究与FPGA实现
宋英杰
【摘要】针对战术数据链系统低时延数据传输需求,提出一种适用于数据链系统的信道编码方案一非系统缩短码RS(31,19).本文从MS多项式的观点讨论了非系统RS码的编码和译码算法,并对缩短RS码的编译码算法进行了研究.最后在FPGA EP3SE110上采用了一种改进的BM算法,成功实现RS(31,19)编译码复杂算法,有效提高了译码速度,简化了数据链系统硬件设计.
【期刊名称】《现代导航》
【年(卷),期】2012(003)002
【总页数】6页(P142-147)
【关键词】RS码;非系统;编码;译码;FPGA
【作者】宋英杰
【作者单位】中国电子科技集团公司第二十研究所,西安 710068
【正文语种】中文
【中图分类】TN762
在通信系统中,由于信道中干扰的存在,使得所传输的信息不可避免地产生错误,因此通过信道编码对传输信息进行纠正显得十分重要。
RS码是一类具有很强纠错能力的多进制 BCH码,在线性分组码中它的纠错能力和编码效率是很高的。
它不但可以纠正随机错误,也能纠正突发错误。
因为RS码本身具有很强的纠错能力,
已经被广泛应用于数字通信和存储系统中。
从以上角度分析研究RS码具有十分重要的意义。
在数据链系统中低时延是一个很重要的指标要求,非系统RS码解码与系统RS码相比,不需要求出差错位置和差错值,解码步骤少,对低码率的码在计算机上实现译码,可节省实际运算时间大约1/3。
因此研究非系统RS码在工程实践方面是很有意义的。
根据特定数据链系统信息传输速率的要求,选用GF(28)上原码为RS(255,243)的缩短码RS(31,19)。
符号取自GF(q)、纠t个错误的RS码具有如下参数[1]:
1 非系统RS码的编码和译码原理
1.1 非系统RS码的编码原理
设M(x)为信息多项式:
它的MS多项式就是编码后的码字信息:
设原码 RS(N,K)的缩短码为RS(n,k)码(n=N-i,k=K-i )。
为了得到缩短码应使原码的前i个码元符号为0,并且不传送这些符号,此时信息多项式要加以改变。
设“传输信息多项式[2]”
当x=αn,...,x=αN-1时,码字的前i个符号为0,也就是说以M(x)作为信息多项式所编的码是一个(n,k)缩短RS码。
1.2 非系统RS码的删/错译码原理
令RS码译码器的删错个数为s,差错个数为t,能纠正下式决定删错和差错个数的任意组合:s+2t≤ d -1。
为了后面叙述方便,现将非系统 RS码的译码步骤以图1说明。
图1 非系统RS码的译码算法步骤
1.2.1 计算伴随式
令包含错误图样的接收多项式:r(x)=C(x)+e(x)=rn-1xn-1+rn-2xn-2+....+r0,设它的MS多项式为S(x)=Sn xn +Sn-1xn-1+...+S1x,则MS多项式系数:
1.2.2 计算删错位置多项式
设s个删除错误的位置分别是 p1,p2,...,ps,对应的删除错误值为ep1,e p 2,...,eps,令删错位置数Yk=αpk,为已知量,它是删错位置多项式的倒数根。
设删错位置多项式
1.2.3 计算修正(差错)伴随式
定义修正伴随式系数Tm如式(3)所示,它对求差错位置多项式来说,是消除了删错影响的伴随式,对接收码字伴随式进行了修正,因此称为修正伴随式。
1.2.4 迭代求差错位置多项式[1][2]
设在接收向量中含有t个差错,它们的位置分别是 l1,l 2,...,lt ,对应的错误值为el 1,el 2,...,elt ,令差错位置数=αlj j=1,2,...,t。
设差错位置多项式σ′′(x)
式中,Xj的倒数为σ′′(x)的根。
σ′′(x)的系数与修正伴随式的系数有如下关系:利
用伯利坎普迭代算法求取系数σ1′′ ,σ2′′ ,...,σt′′ 。
1.2.5 求错误位置多项式
综合考虑删错和差错的错误位置多项式[1][3]
1.2.6 求信息估值
把删错和差错都作为错误符号统一考虑,推出错误图样e(x)的MS多项式,错误位置以 l1,l 2,...,lt+s表示,错误位置数以Xi=αli 表示,相应的错误值为Ai=el i ,i=1,2 ,...,t+s ,则错误图样
的MS多项式
删除位置数和差错位置数都是σ(x)根的倒数,所以σ() =0。
对上式两边同乘以,将所得t+s个等式求和,并令i=n-k+1,n-k +2 ,...,n,得
利用上式可求出Ei。
在GF(2m)上的信息估值
1.2.7 由传输信息多项式恢复原来的信息
根据式(1)把传输符号换成原来的信息符号即可。
2 非系统RS(31,19)FPGA编译码实现
在伽罗华域 GF(2m)上有三种运算是不得不提的:加法、乘法、求逆。
RS码的每个码字是伽罗华域 GF(2m)中的一个元素,其运算是伽罗华域的运算。
对于GF(28)上原码是 RS(255,243)的缩短码RS(31,19)来说,伽罗华域的加法是有限域GF(28)上的元素按位做异或运算。
设
的系数 ci=ai+ bi,这里的加法是GF(2)的加法。
伽罗华域GF(28)上的本原多项式为P(x)=x8+x4+x3+x2+1,则伽罗华域GF(28)上的任意两个元素的乘积C=A·B可由下式求出。
对于伽罗华域GF(28)上的求逆运算没有简单的公式可寻,可以将元素的逆存储到ROM里。
在求逆运算时,采用查表法即可。
2.1 RS(31,19)编码
RS(31,19)是 RS(255,243)的缩短码,所以
为了硬件实现编码,将码多项式系数改写为以下方程式:
F(αj )可由 MATLAB提前计算出来,编码电路如图2所示。
图2 RS(31,19)编码电路
图2中⊕表示GF(28)中的加法,即8个异或门,⊗表示GF(28)中的乘法,表示GF(28)中的元素寄存器。
假设输入信息向量为[1 ,2 ,3,...18,19],图3表示的是在板运行时,用QuartusII的在线逻辑分析仪 SignalTap上采集的编码数据,图 3中Encode_ Data_31_19是编码后的数据。
2.2 RS(31,19)译码
(1)计算伴随式
由式(2)可得RS(31,19)伴随式系数Si=r (αi),为了硬件实现简单可写成以下方式:
编码电路图可采用图2所示方法。
为了验证译码器的纠错能力,设s=4、t=3,伴随式数据如图4所示,其中sL表示 S1,...,S12,sH表示 S13,...,S31。
(2)计算删错位置多项式
如式(3)所示,当s=4时除系数σ1′,σ2′,σ3′ ,σ′4外其余系数肯定为0。
在板实现如图5所示。
图3 编码数据
图4 伴随式数据
图5 删错位置多项式系数
(3)计算修正(差错)伴随式
对于RS(31,19)来讲,由式(4)知,FPGA 内需要 n -k -s=8个符号寄存器存储
修正(差错)伴随式系数Ti。
在板实现如图6所示。
图6 修正伴随式系数
(4)迭代求差错位置多项式
为了有效提高了译码速度,简化硬件设计,在FPGA实现方面,将BM算法[1][2]进行改进来求差错位置多项式,采用流程图如图7所示的算法。
j和i是迭代次数,lj和li是多项式σ(j)(x)和σ(i)(x)的次数,
迭代过程中按公式 l j +1=max(l j ,j-i+li),先求出lj+1,然后计算(j+1)-lj+1。
由
于j-lj≤i-li ,可知lj+1=lj,所以第j+1次迭代的(j+ 1)-l j+1=j+1-lj =K+1;若j-
lj>i-li ,则lj+1=j -i +li ,因此(j+1)-lj+1=G +1,由于G,K已交换,所以(j+1)-
lj+1=K +1,于是每次迭代(j+1)-lj+1都等于K+1。
经过 2t次迭代,得到系数
σ1′′,σ2′′,...,σt′′。
SignalTap上采集的数据如图8,因为t=3,所以除σ1′′, σ2′′ ,σ3′′以外其余系数
为0。
(5)求错误位置多项式
式(6)是两个多项式的乘积,可采用多项式相乘电路[1]实现。
图9表示在板实现时,在QuartusII的SignalTap上采集的数据。
(6)求传输信息估值
对RS(31,19)来说传送的信息估值:
图7 伯利坎普迭代算法流程图
图8 求差错位置多项式系数
图9 错误位置多项式系数
(7)由传输信息多项式恢复原来的信息RS(31,19)的传输信息多项式为:
由式(8),式(9)可得
而将(x-α31)(x-α32)...(x-α254)展开可求出M2′23,M2′22,...,M2′06,带入式(8)求出M19,M18,...,M0,在板实现时,在QuartusII的在线逻辑分析仪SignalTap 上采集的数据如图10所示。
图10 译码数据
从图 10中可以看出译码信息为[1 ,2,3,...,18,19]和输入信息相同,译码完全正确。
3 结束语
本文从MS多项式的观点讨论了非系统RS码的编码和译码算法,并对缩短RS码的编译码算法进行了研究。
并且在Altera公司的FPGA EP3SE110上成功实现原码为RS(255,243)的缩短码RS(31,19)的复杂算法。
经在板实测,能够满足系统的各项指标要求,该方法对工程实践具有很好的指导意义。
参考文献:
[1](美)Shu LinJr, 何元智.差错控制编码(第二版)[M].北京: 机械工业出版社, 2007
[2]邹世开.非系统 RS码的编码和解码[J].北京航空航天学报,1987(3)
[3]邹世开.非系统 RS码的删/错译码算法[J].北京航空航天学报,1990(1)。