一.RS码
RS码是有限域GF(p^m)上,码长为n=p^m-1的本原BCH码,它是多进制的BCH码。
RS码不但可以纠正随机错误、突发错误以及二者的组合,而且可以用来构造其它码类。
在计算机中数据是以二进制的形式存在,所以p通常取值为2。
RS码的参数:符号取自GF(2^m),纠t个错的RS(n,k)码的定义如下:
符号大小m.表示符号比特数为m位。码块总长度为n个符号,其中信息长度k个符号,校验位长度K=n—k个符号。RS码的纠错能力是出码块中的冗余数据校验码的长度K决定的。在码块中的错误位置事先并不知道的情况下,RS(n,k)码可以纠正t=K/2个错误符号。显然t值越大,RS码的纠错能力越强,但与之相对应的是更复杂的算法,更长的运算时间,更低效的数据传输率。
RS码既可以纠随机错又可以纠突发错。但RS码中采用符号这一特性使得它特别适用于产生突发错的场合。因为不论一个符号中错了多少位,在RS解码过程中。它只会被认为是产生了一个符号错。一个可以纠t个符号的RS码,它至少可以纠一个(t-1)m+1个连续比特组成的突发错,而当随机错恰好都不在同一个符号中时只能纠正t个比特的随机错。
二.RS码编码
对于GF(2^m)来说,若域中非零元素a的级是2^m-1,则将a称为本原域元素。设
符号取自GF(2^m),纠t个错的RS(n,k)码,它的最小距离d=2t+1,则由本原域元素a的2t
m0m0个连续根,,002t1作为g(x)的根来构造生成多项式
m(x2t1m0)mg(x)=(x+)(x+)
1通常情况下取通常取m0 = 0或m0 = 1
只要将信息码多项式m(x)=mk1x式q(x)便可以得到系统码。
k1m1xm0 乘以x次,然后以g(x)为模,求出余
nknkqq(x)= m(x) xmodg(x)=nk1xnk1q1xq0
nkxC(x)= m(x) + q(x)
例 构造能纠正2个错误,码长为15符号的RS码
n=15,t=2可得m=4,k=11,d=5.因此RS码为(15,11)码,生成多项式为g(x)=(x+)(x+)(x+)(x+) =xxx2344133623x10
假设待发送的信息码组为m(x)=m(x) xnkm(x)2x103x69x则编码后的码组多项式为C(x)=
+ m(x) xmodg(x)=xnk2143x109x5x33x13编码的实现:
1)首先构造有限域,RS码的性质和运算法则均定义在Galois域上,Galois域是能进行加减乘除运算的有限个元素的封闭集合,它的加减运算符合结合律、交换律和分配律。
有限域中的元素有两种表示方法:即指数形式和多项式形式。乘除法运算需用元素指数形式,加减法运算要用多项式形式。
指数形式表示多项式形式的十迸制值为i的元素,它的指数形式的指数
指数形式为i的元素它的多项式形式
GF(24) 元素表 最小多项式为x4x1 序号i 指数形式 多项式形式
m(x2tm0)m2)构造生成多项式g(x)=(x+)(x+)
0012(x2t)1m0 设 = 1 g(x)=(x+)(x+)
nk2t
g(x)gnkxnkg1xg0g,nk=1
3)对信息数据进行编码
RS时域编码原理图(n-k级时域编码器)其电路特征是一个实现除法求模运算的线性反馈移位寄存器,该方法得到的是系统码。
信息码组从高位到低位送入线性反馈移位寄存器,每一个码元一方面经过控制开关送出编码器,另一方面该码元与移位寄存器Dnk的输出进行异或运算,结果作为feedback反馈回电路与系数g[O]到g[n-k-1]相乘后再与各个移位寄存器的输出进行异或运算。当所有的信息码元都输入线性反馈移位寄存器后,n-k个移位寄存器中的值就是生成的n-k个校验码元。这样信息码元在前,校验码元在后,这就完成了编码。
三.RS码的译码
基于伴随式的译码算法,由于其译码过程较为简单,译码速度快,是最为常用的译码算法。伴随式译码的一般步骤为:
1)计算接收码字r(x)的2t个伴随式si,i=l,2,…2t;
2)求出错误位置多项式,确定错误位置;
3)求出错误位置上的错误值:
4)由步骤2和步骤3得到错误图样E(x)的多项式,则纠错后的码字多项式c(x)
为:c(x)=r(x)-e(x)。
n1c(x)c1xc0 cxn1假设发送的码字为:
n1r(x)r1xr0 xrn1由于在传输过程中发生了错误,接收到的码字为:
n1e1xe0 exn1错误图案是:e(x)=r(x)-c(x)=
若信道产生t个错误,则e(x)=i1Yixlitm)liGF(Y2i 式中,,x称为错误位置数,
说明错误发生在r(x)中的第nli位,错误值是Yi.
m0n1m0n2))((m01n1m01n2)()(n1m02t1n2THT(m02t1))(SE=1m011m02t11m000Yt00Y100
m0li1m0li2m0lit)))(((YYY12tlilili12t2t12t12t1Y1(m0Y2(m0Yt(m0))) =
sjYii1tjlir(j)i1Yixitj (*)
2ts(x)1xssxsx12t1)首先计算伴随式,定义伴随多项式若S(x)=0,则表
示接收到的码字没有错误或者发生了无法检测的错误。输出原接收码字。用Horner法实
iiiiir(){(())}r0 srrrrn1n2n31i现
2)用BM迭代算法求错误位置多项式,由(*)式中的2t个方程求出2t个未知数xi,
Yi。分两步进行,先解出错误位置数xi,再求出错误值。
定义错误位置多项式为
(x)(1xix)11xtxti1t
1tt11tt0,k1,2,t ()0xxxxxk1k若k为错误位置则两边乘以k,得k上式
1Ykxk两
jt1边再
j乘以
jYkxk,jm0,,m0t1得
YkxkjttYkxk0,k1,2,t
tsj0对k求和得sjt1sjt1 (**)
2(x)1xs(x)(x)x12作乘积并用表示,由(**)式可得t+1次以上系数为0。
得关键方程s(x)(x)(x)modx2t1
用关键方程求(x)的迭代译码算法:
用迭代方法求解到第j步时,求得满足
s(x)(j)(x)(j)(x)modxj1的解(j)(x),(j)(x)。
在第j+1步时以xj2(j)(x)(j)(x)为模,,不再满足上式。
所以引入一个差值dj,使下式成立
s(x)(j)(x)(j)(x)djxj1modxj2 (***)
(j)t(j)(j)(x)11xD(j)x
将(***)式左边展开推出
djsj1sj1iii1D(j)(j)将dj代入关键方程求解得
(j1)(x)(j)(x)djdixji(i)(x)
11(j1)(x)(j)(x)djdixji(i)(x)
I是j之前的某一行,它在所有j行之前各行中的i-D(i)最大,且di0
D(j+1)=max(D(j),j-i+D(i))
迭代过程如下:
设定初值为(1)(x)1,(1)(x)0,D(-1)=0,d11
(0)(x)1,(0)(x)1,D(0)=0,d0s1
开始迭代 j=1,2,……2t
首先计算
djsj1sj1iii1D(j)(j)
若dj=0则(j1)(x)(j)(x)
(j1)(x)(j)(x) D(j+1)=D(j)
若dj0则找出j之前的某一行i,它在所有j行之前各行中的i-D(i)最大,且di0
(j1)(x)(j)(x)djdixji(i)(x)
11(j1)(x)(j)(x)djdixji(i)(x)
D(j+1)=max(D(j),j-i+D(i))
(2t)(x)(2t)(x)一直迭代2t次,得到的,即为所求的(x)和(x)
判断(x)次数是否大于t,如果大于t说明有不可纠的错误,如果小于等于t则求(x)=0的根,即为错误位置数。
3)用钱氏搜索求错误位置
r(x)rn1xn1r1xr0
(nl)nl(nl)l(x)rnl判断是否错误,是否是错误位置数,判断是否是的根,代
入(x)=0
11lttl0 则rnl有错
11lttl0 则rnl正确
3)错误值的计算
用Forney算法
Yixi(xi)1'(xi)
1若实际产生的错误个数t
siYkxkk1j
Ykxkxi1isixsixi1i1=1+k11xkx s(x)1s1xs2x21Ykxkxs(x)(x)=(1+k11xkx)(x)=(x)modx21
由于恒等式左边最高次数为2
Ykxkx得出(x)k11xkx=(x)-(x)
Yixix1xix(x)(x)+
Yjxjxj11xjxji=(x)-(x)
Yixix(1xjx)得
j1ijr+(x)Yjxjxj11xjxji=(x)-(x)
Yixixi代入xi得
11j1ij1(1xjxi)r1(=xi) (****)
rxi(1xjx)因为'(x)i1ij1j
rxi(1xj1代入
x1111xi)ii得-xi'(xi)ij1j
代入(****)式得-Yixix1x1'i(x1ii)(x1i)
i(xi1)得错误值
Yix'(xi1)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务