假设RS码的码字长度为n=2m-1。信息位的长度等于k,则监督位的长度r=n-k。为了纠正t个符号的错误,需要2个符号的监督码,这样RS码的监督位长度r和t之间应该满足关系: r=n-k=2t, 因此RS码的码字长度与信息位的差值应该是一个偶数,同时, RS的最小码元距离d0=r+1=2t+1。
若指定Generator Polynomial生成多项式可以用“rsgenpoly(n,k)”表示, Primitive Polynomial本原多项式可以用“primpoly(m)”所描述的多项式的二进制代码,则能纠正t个符号错误的RS码的生成多项式为;
g(x)=(x+α0)(x+α1)(x+α2)…(x+α2t-1) (3-11)
用MATLAB 指令“rsgenpoly(n,k)”(其中k= n-2*t)可以求得。
例如,构造一个能纠正3个错误符号,码长为15,m=4的RS码,由RS码的参数可知,该码的码距为7,监督段为6个符号。因此该码为(15,9)RS码。生成的多项式为;
g(D)=(D+α)(D+α2)(D+α3)(D+α4)(D+α5)(D+α6) (3-12)
用MATLAB指令“rsgenpoly(15, 9)”得到:
ans = GF(2^4)array. Primitive polynomial = D^4+D+1(19 decimal)Array elements = 1 7 9 3 12 10 12
用MATLAB 指令“primpoly(m)”得到:
Primitive polynomial(s)= D^4+D^1+1
ans = 19
可以将上述结果的二进制代码[1 0 0 1 1]填入本原多项式参数栏。
3.4.2 RS码的编码
定义: 上,码长N=q-1的本原BCH码称为RS码。
RS码最主要特点之一是码取自GF(q)上,而它的生成多项式的根也在GF(q)上,所以RS码是码元的符号域与根域一致的BCH码。
本原RS码具有如下参数:
RS码的每个码均取自GF(q),其其生成多项式的根也在GF(q)上。它的生成多项式: 。式中a为GF(q)的本原元。校验元位数r=n-k=2t。一个码要纠正t位错,需使最小距离。而线性码的最小距离上限为n-k+1,即d<n-k+=2t+1,故必然有d=2t+1,即码的最小距离恰等于校验位数加1.这就是说,这种码的校验元得到充分的利用,因而是最佳码,称为极大最小距离码,记做MDC码。
RS码的设计距离于实际距离是一致的(有些码的实际距离超过设计距离),故由称为极大最小距离可分码
由于RS码是极大最小距离(MDC)码,从这种码的n,k值立即可判定其纠错能力。 RS码的重量分布是已知的。
3.4.3 RS码的译码
实现译码的具体算法有彼得森直接算法和伯利坎普算法等。
对接收到的码字进行运算来确定信息码与监督码是否符合编码规则,从而利用所观察到的情况进行判断并尽可能对传输中出现的差错加以纠正,对R-S码译码的算法是从计算2t个伴随开始的。
伴随式译码步骤:(1)根据接收矢量来计算2t个伴随式;(2)由伴随式的值确定差错定位多项式y(x);(3)解出y(x)的根,即差错定位式;(4)由所得的差错定位式,计算差错值;(5)对标出的差错位置与差错值进行纠正;(6)对纠正过的码再进行伴随式计算,若伴随式计算结果有的不为零,超出t个错,则通告出错,无法纠错。
RS码出于性能优良而得到广泛应用。优点之一是其纠错能力已发挥到极限,与MDC码相同。优点至二是RS码存在一种有效的硬件判决译码算法,使得该码能应用与许多需要长码的场合。第三是q进制RS码的二进制衍生码具有良好的抗突发差错能力。 Matlab的线性分组码及其子码的设计与仿真(10):http://www.youerw.com/tongxin/lunwen_2568.html