RS 基本概念
GF(2m )域
域在RS 编码理论中起着至关重要的作用。
简单点说域m GF(2)有m
2(设m
2= q )个符号
且具有以下性质:
域中的每个元素都可以用a 0,a 1,a 2,a m-1
的和来表示。
除0、1外其余所有元素由本原多项式
P (x )生成。
本原多项式的特性是得到的余式等于0。
在纠错编码运算过程中,加、减、乘和除的运算是在伽罗华域中进行 在GF 域上的加、减、乘、除运算定义如下(GF(4
2)为例):
1、 加、减运算均定义为元素的二进制表示方式进行异或运算。
如:a 8
+a 10
,先查表,
将其化为二进制表示方式得0101+0111,经过异或运算得0010,再查表得a 1,即:a 8+a 10= a 1。
减运算与加运算相同,即:a 8-a 10= a 1。
2、 乘运算定义为元素的指数相加后进行模15运算后所得的新元素,但若有一个元素
为0,则相乘结果为0。
如:a 7*a 13,(7+13)mod 15=5,即a 7*a 13= a 5。
3、 除运算定义为元素的指数相减后进行模15运算后所得的新元素(指数为正数)。
若
被除数为0,则结果为0。
如:a 5/a 9,(5-9)mod 15=11,即a 5/a 9= a 11。
下面以一个较简单例子说明域的构造。
GF (42) 的所有元素
例:m=4,本原多项式 4p(x)=x +x+1求GF (4
2) 的所有元素:
因为α为p (x )的根得到4 ++1αα=0 或4
=+1αα (根据运算规则)
符号(n,k)RS
GF(2)域中,符号(n,k)RS的含义如下:
在介绍之前需要说明一些符号。
在4
m表示符号的大小,如m = 8表示符号由8位二进制数组成
n表示码块长度,
k表示码块中的信息长度
K=n-k = 2t表示校验码的符号数
t表示能够纠正的错误数目
RS的编码算法
GF(2)域上的RS(15,11)码,码长n=15字符,码元长k=11本项目RS纠错算法选择在4
字符,码距d=5,纠错能力t=2字符,每字符为4bits,即一个码组合7.5字节。
每11个有效字节加4个纠错字节。
每一帧报文分成若干组,以11个字节为一组,对这11个字节作纠错,生成4字节里德-所罗门码纠错码,和前11个字节一起共15个字节构成纠错后的一组报文。
一帧报文以每11个字节分组后,若最后一组字节数不满11个字节,剩余字节填77H,凑满11个字节再进行纠错。
对一个信息码符多项式,RS校验码生成多项式的一般形式为
(13-2)
式中,m0是偏移量,通常取K0 = 0或K0 = 1,而(n-k)≥2t (t为要校正的错误符号数)。
x+a x+a x+a x+a
对于R(15,11)对应生成多项式为g(x)=413362310
信息码符多项式为
1
()k i
i i M x m x -==∑(13-3)
并假设RS 校验码的4个符号为Q 3 Q 2\Q 1和Q 0,
的剩余多项式为
1
32132100
()n k i i i R x Q x Q x Q x Q x Q --==
=+++∑
这个多项式的阶次比
的阶次少一阶。
如果K 0 = 1,t = 1,由式(13-2)导出的RS 校验码生成多项式就为
=
234
()()()()x a x a x a x a ----(13-4) 根据多项式的运算,由式(13-3)和式(13-4)可以得到 M(x)+R(x)= 234()()()()x a x a x a x a ----Q (x )
当用234
x = a x = a x = a x = a 代入上式时,得到下面的方程组,
141343211090321028268642
10903210423912963
10903210565216128410
903210......0 0
......0 0
m a m a m a Q a Q a Q a Q m a m a m a Q a Q a Q a Q m a m a m a Q a Q a Q a Q m a m a m a Q a Q a Q a Q ⎧+++++++=⎪+++++++=⎪⎨+++++++=⎪⎪+++++++=⎩ 令141341090......m a m a m a +++=n0
282681090......m a m a m a +++=n1 4239121090......m a m a m a +++=n2 5652161090......m a m a m a +++=n3
解得:3Q =1331a (n3-n2)+a (n2-n1)+a (n1-n0)
2Q =9313a (n3-n2)+a (n2-n1)+a (n1-n0)
1Q = 1121a (n3-n2)+a (n2-n1)+a (n1-n0) 0Q =415a (n3-n2)+a (n2-n1)+a (n1-n0)+n0
RS 码的纠错算法
RS 码的错误纠正过程分三步: (1)计算校正子(syndrome),(2)计算错误位置,(3)计算错误值。
现以例13.3为例介绍RS 码的纠错算法。
1、 求出校正子:
对于一组接收到的数据:
接收到的数据:68 31 00 31 00 68 4b 05 35 01 00 b7 2a 55 dc 分两小组:08 06 01 03 00 00 01 03 00 00 08 07 0b 0a 02 (I-1)
06 0b 04 05 00 05 03 01 00 00 00 05 05 0c 0d (I-2) 对应r14……r0
代入上式求出s1,s2,s3,s4(sj);
2、 判断若S j (j=1,2,3,4) 均为0,则无错;否则执行下面的步骤以求出错值及位置。
3、 求出错位多项式d(x)=dz 2x 2
+dz 0x+dz 1=0的根,即为错值位置,其中:
若dz 2=0,则只有一个根x 1=s 3/s 2 。
否则用代入法求出x 1,x 2,即把x 的所有15个可能值代入错位多项式,若结果为0,则即是一个根。
4、 求出错值ew 1,ew 2。
4
2
3103
4
2313
2
212s s s s dz s s s s dz s s s s dz =
=
=
,,j
i i
i j a
x x
r s ==∑=-14
14
若dz 2=0,ew=s 12
/s 2,否则
5、 纠错时在对应的x=a y
,r(14-y)处,加上对应错值即可完成纠错。
如根为
x 1=a 3,x 2=a 8,ew 1=a 4,ew 2=a 7,则在r(14-3)=r(11)上加ew 1即a 4
,在r(14-8)= r(6)
上加ew 2即a 7
后所得的数据就是纠错后的数据。
2
2
212
1122
1
212
211x x x s x s ew x x x s x s ew ++=
++=。