RS码原理
RS 码的一个特点是其符号和值都取自有限域GF(2m),GF(2m)的元素αi取值范围为[0,2m-1],有限域通过迭代生成,与m和本原多项式有关。
GF(2^8)表示域中有256个元素,除0,1之外的254个元素由本原多项式P(x)生成。
初始化前两项:第一项:0,第二项: α0 = 1;
迭代求𝛼𝑖:temp = 𝛼𝑖−1左移一位,如果αi-1第m-1位为 1(即移位后产生进位)
则αi等于移位结果 temp 除本原多项式取模,否则αi等于移位结果 temp。其中i∈ [1, 2m-2],迭代2m-2次。
RS(n,k)码可以由m,k,n三个参数表示,其中m表示码元符号取自GF(),n为码字长度,k为信息段长度。对于一个可以纠正t个符号错误的RS码 ,有如下参数:
码字长度:个符号或者mn个比特
信息段: k个符号或者km个比特
监督位: 2t=n-k个符号或者2mt个比特
最小码距: 2t+1个符号或者(2t+1)*m个比特
RS码的基本思想就是选择一个合适的生成多项式g(x),使得码字多项式c(x)除以生成多项式所得到的余式为0。RS码的生成多项式一般按如下公式选择:
其中αi是GF()中的一个元素。如果用d(x)表示信息段多项式,则可以按照如下方式构造c(x):首先计算商式h(x)和余式r(x)
取余式r(x)作为校验式,然后令
即将信息位放置于码字的前半部分,监督为放在码字的后半部分,这样有:
因此码字多项式c(x)必可被生成多项式g(x)整除,如果在接收方检测到余式不为0,则可以判断接收到的码字有错。