分享

ReedSolumn纠错算法实例

 青青草儿2010 2011-07-19

RS编码实例:对(15,9)型进行编码

举例如下:
假设所处的域为2^4的伽罗华域(本原多项式为x^4+x+1)
码型为(15,9),n=15,k=9,t=3,d=7; 1 2 3 4 5 6 7 8 9
直接用matlab生成g(x)
rsgenpoly(15,9)
ans = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal)
Array elements = 1 7 9 3 12 10 12
               = x^6 + 7x^5 + 9x^4 + 3x^3 + 12x^2 + 10x + 12

信息多项式为:
M(x) = x^8 + 2x^7 + 3x^6 + 4x^5 + 5x^4 + 6x^3 + 7x^2 + 8x^1 + 9
由于t=3,将信息多项式乘以 x^6
被除数:x^[微软中国1] 14 + 2x^13 + 3x^12 + 4x^11 + 5x^10 + 6x^9 + 7x^8 + 8x^7 + 9x^6
除数:x^6 + 7x^5 + 9x^4 + 3x^3 + 12x^2 + 10x + 12
数组长度为[NN]
将上式除以码元发生多项式g(x)
         x^14 x^13 x^12 x^11 x^10 x^9  x^8  x^7  x^6  x^5  x^4  x^3  x^2  x^1  x^0
          1    2    3    4    5    6    7    8    9    0    0    0    0    0    0
*x^8    1    7    9    3    12   10   12   0    0    0    0    0    0    0    0
add     0    5    10   7    9    12   11   8    9    0    0    0    0    0    0
*5x^7       
5    8    11   15   9    4    9    0    0    0    0    0    0    0[微软中国2] 
add          0    2    12   6    5    15   1    9    0    0    0    0    0    0
*2x^6             2    14   1    6    11   7    11   0    0    0    0    0    0
add               0    2    7    3    4    6    2    0    0    0    0    0    0
*2x^5                  2    14   1    6    11   7    11   0    0    0    0    0
add                    0    9    2    2    13   5    11   0    0    0    0    0
*9x^4                       9    10   13   8    6    5    6    0    0    0    0
add                         0    8    15   5    3    14   6    0    0    0    0
*8x^3                            8    13   4    11   10   15   10   0    0    0
add                              0    2    1    8    4    9    10   0    0    0
*2x^2                                 2    14   1    6    11   7    11   0    0
add                                   0    15   9    2    2    13   11   0    0
*15x^1                                     15   11   14   2    8    12   8    0
add                                        0    2    12   0    5    7    8    0
*2                                              2    14   1    6    11   7    11
add                                             0    2    1    3    12   15   11

经过以上计算,可得余数为:
r(x) = 2x^5 + x^4 + 3x^3 + 12x^2 + 15x^1 + 11

T(x) = M(x) + r(x)
     = x^14 + 2x^13 + 3x^12 + 4x^11 + 5x^10 + 6x^9 + 7x^8 + 8x^7 + 9x^6 +
       2x^5 + x^4 + 3x^3 + 12x^2 + 15x^1 + 11
简写为 1 2 3 4 5 6 7 8 9 2 1 3 12 15 11

 

序列[1 2 3 4 5 6 7 8 9]
则经过RS编码后为
[1 2 3 4 5 6 7 8 9 2 1 3 12 15 11]

 

GF2^4)的本原多项式为:1+X+X^4

GF2^4

A的多项式

D3D2D1D0

对应的十进制[微软中国3] 

0

0

0000

0

A^0

A^0

0001

1

A^1

A^1

0010

2

A^2

A^2

0100

4

A^3

A^3

1000

8

A^4

A+1

0011

3

A^5

 

0110

6

A^6

 

1100

12

A^7

 

1011

11

A^8

 

0101

5

A^9

 

1010

10

A^10

 

0111

7

A^11

 

1110

14

A^12

 

1111

15

A^13

 

1101

13

A^14

 

1001

9

A^15[微软中国4] 

 

0001

1

乘法时采用指数的形式进行计算,指数相加;

加法时采用二进制或十进制的形式,进行异或运算。


 [微软中国1]表示X的幂。

 [微软中国2]此处注意加法与乘法的算法:加法做异或运算(a^b; 乘法做指数相加操作(先在表中查找对应的指数)

 [微软中国3]对算法有用的两列数据为:GF(2^4)和对应的十进制两列数据;

 [微软中国4]当指数大于或等于152^4-1)时,要对其进行求余。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约