您好,欢迎来到刀刀网。
搜索
您的当前位置:首页海明码

海明码

来源:刀刀网


海明码用k位冗余位来校正m+k位数据。由于k位冗余位可以表示2的k次方个数,其中要有一个数表示m位数据都没错,剩下的2的k次方减1个数表示有错的信息,且必须能表示错误位在m个不同位置时的情况,所以必须要有2的k次方减1>=m。

效验位是跟数据位混在一起的,一般来说是放在2的i次方处(i=0,1,2...)比如假设原始数据为8位D1D2D3D4D5D6D7D8,通过上面的不等式可以知道k=4,也就是效验位为P1P2P3P4,则最终发送出去的数据为:

码位:m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12

码字:P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8

海明码的监督关系:

这个比较难点。

第1个效验位可以效验:m1 m3 m5 m7 m9 m11 (1 1+2 1+4 1+2+4 1+8 1+2+8 1+2+4+8...)

第2个效验位可以效验:m2 m3 m6 m7 m10 m11 (2 2+1 2+4 2+1+4 2+8 2+1+8 2+1+4+8...)

第3个效验位可以效验:m4 m5 m6 m7 m12 (4 4+1 4+2 4+1+2 4+8 4+1+8 4+1+2+8...)

第4个效验位可以效验:m8 m9 m10 m11 m12 (8 8+1 8+2 8+1+2 8+4 8+

1+4 8+1+2+4...)

呼,应该不难看出规律吧。

效验位的计算:

用例子说话最容易理解。假设信息为8位:1 1 0 0 1 1 0 0 ,则编码后为:

码位:m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12

码字:P1 P2 1 P3 1 0 0 P4 1 1 0 0

监督关系为(用S表示,+表示逻辑加):

S1=m1 + m3 + m5 + m7+ m9+ m11

S2=m2 + m3 + m6 + m7+ m10+ m11

S3=m4 + m5 + m6 + m7+ m12

S4=m8 + m9 + m10 + m11+ m12

当信息没有错误时,S1=S2=S3=S4=0,代入数据,有

0=P1 + 1 + 1 + 0 + 1 + 0

0=P2 + 1+ 0+ 0+ 1+ 0

0=P3 + 1+ 0+ 0+ 0

0=P4 + 1+ 1+ 0+ 0

很容易计算出:P1=1,P2=0,P3=1,P4=0

所以海明码为:\"1 0 1 1 1 0 0 0 1 1 0 0\"

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务