关于rs编码的理解

1,rs编码首先是线性循环编码,所谓线性循环编码就是说编码后的码组T(x)左移或右移都必然还是有限组码组中的一组,并且T(X)码组能够被g(x)整除,g(x)为生成多项式。

2,由信息码m(x)得到T(x)的原理:

3,关于域

所指的域为伽罗华域,简写为GF(2^m)域中的每个元素都可以用a^0,a^1,a^2...a^(m-1) 的和表示。

运算法则可以参考模2运算,不过乘法运算有区别,是模N算法,N不一定是2。

4,生成多项式g(x)=(x-a)(x-a^2)(x-a^3).....(x-a^(n-k))或者减号变为加号,因为模二加法和模二减法效果相同,展开之后再结合域的元素之间的关系,得到各项系数g0,g1,g2.......

5,fpga实现原理图

至于m是在最高位输入还是在最低位输入根据原理可以知道,要算的是x^(n-k)*m(x)/g(x),那么就是在最高位输入,如果是m(x)/g(x),那么就是在低位输入。其他部分按照除数的表达式去抽头。输入顺序为由高到低。

6,上图中关键部分在于域乘法的实现,实现原理如下所示

其中m*g0=q;化简一下就可以得到。

原文地址:https://www.cnblogs.com/lianjiehere/p/4201755.html