【python】Reed-solomon codes的二维码应用(十)

        我们之前涉及到BCH码,说过RS码就是BCH码的一种特殊情况,所以为了编译RS码我们可以了解一下BCH码如何译码。

        现在流行的BCH码有两种,我们可以了解其中一种Peterson Gorenstein Zierler算法。假设BCH码是根据一个域元素a来构造的,对于一个完整的正确的RS码来说,我们设它为v(x),设一个未知的RS码为v(x),在一个正确的RS码上加一个错误多项式e(x)就为未知的RS码,公式表达为:   

         v(x)=c(x)+e(x)

        那么我们考虑错误多项式为:

        

        对于二元码来说,上式e(X)的系数为0或者1。假设实际发生了v个错误,那么就有v个系数不为零,如果错误发生在位置1,2,3....v,那么错误多项式可以写成:

         

        对于二元码来说,上式e(X)的系数为1。那么我们为什么要将错误的e(X)设置顺序呢?

        因为对于纠错问题来说我么必须知道两件事:

        (1)错误的位置,对应 i 指数。

        (2)错误的程度,对应 e 系数。

        我们之前说过a^1,a^2......a^m是c(x)的根,即将x=a^1,a^2......a^m分别带入c(x)都可以得到0,那么如果在c(x)上加错误多项式e(x),得到v(x),分别将x=a^1,a^2......a^m带入v(x)后我们未必都能得到0,那么在这m个等式当中我们可以得到错误信息。

        伴随式可以通过对接受到的关于a的多项式计算得到:

        

  

         

    

        

    

        

 





         这时候我们只需要将伴随式矩阵求逆就可以得到错误定位多项式的系数值啦!

猜你喜欢

转载自blog.csdn.net/weixin_39878297/article/details/80210230