ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算及校验海明码的3个举例

2019-10-29 20:54:03  阅读:747  来源: 互联网

标签:11 0110 校验位 明码 校验 检验 1110 举例


海明码具有检错纠错能力,用于传输质量较好的信道,因为出错太多检测不出来。

m位数据需要满足具有r位校验码

m+r ≤ 2r-1

校验位放在2n位置上,如??1? 111? 1111 111? 111...

校验码依次在20、 21、 22、 23、 24位置上,有的是从后往前写的,结果不影响,知道怎么算就行。

 

 

 

例1,计算1011的海明码及检验

一、算校验位

原数据1011, 有4位数据位, 需满足4+r≤2r-1这个公式, 求得r=3,表明有3个检验位,以下用a、b、c、...来代替

得到ab1c011

二、算校验位值

令发送方和接受方都采用偶检验的方法,也就是保证1的个数为偶数。采用奇检验结果也一样,但收发双方一定要用相同的检验方法。

a b 1 c 0 1 1

第一位检验位a的计算方法:从a开始检验一位,跳过一位,即20位,利用偶检验确定a。

第二位检验位b的计算方法:从b开始检验两位,跳过两位,即21位,利用偶检验确定b。

第三位检验位c的计算方法:从c开始检验四位,跳过四位,即22位,利用偶检验确定c。


a b 1 c 0 1 1

a 1 0 1 偶检验确定a=0


 a b 1 c 0 1 1

b 1 1 1 偶检验确定b=1


 a b 1 c 0 1 1

后面没有了,所以就是c 0 1 偶检验确定c=0


 代入abc得海明码0110 011

三、检验

传输海明码,若在信道上受到干扰,导致一位编码出现异常由0110 011→0111 011

根据确定检验位的值来检验,第n组 检验2n位,跳过2n位,分别把每组的数据异或,得出错位置。


 0 1 1 1 0 1 1

G1=0⊕1⊕0⊕1=0


0 1 1 1 0 1 1

G2=1⊕1⊕1⊕1=0


0 1 1 1 0 1 1

G3=1⊕0⊕1⊕1=1


由于发送端采用的是偶检验那么G3G2G1=000可说明传送中没有出错,G3G2G1=100转化为十进制说明海明码第4位出错,将第四位纠错后变成0110 011

 

 

 

 

 

例2,计算0111 011的海明码及检验

一、算校验位

m=7,根据m+r ≤ 2r-1求得r=4

a b 0 c 1 1 1 d 0 1 1

二、算校验位值

令发送方和接受方都采用偶检验的方法,也就是保证1的个数为偶数。

a b 0 c 1 1 1 d 0 1 1


a b 0 c 1 1 1 d 0 1 1

a 0 1 1 0 1 偶检验确定a=1


a b 0 c 1 1 1 d 0 1 1

 b 0 1 1 1 1 偶检验确定b=0


a b 0 c 1 1 1 d 0 1 1

c 1 1 1 偶检验确定c=1


a b 0 c 1 1 1 d 0 1 1

d 0 1 1 偶检验确定d=0


代入abcd得海明码1001 1110 011

三、检验

传输海明码,若在信道上受到干扰,导致一位编码出现异常由1001 1110 011→1001 1110 111

根据确定检验位的值来检验,第n组 检验2n位,跳过2n位,分别把每组的数据异或,得出错位置。


1 0 0 1 1 1 1 0 1 1 1

 G1=1⊕0⊕1⊕1⊕1⊕1=1


1 0 0 1 1 1 1 0 1 1 1

G2=0⊕0⊕1⊕1⊕1⊕1=0


1 0 0 1 1 1 1 0 1 1 1

G3=1⊕1⊕1⊕1=0


1 0 0 1 1 1 1 0 1 1 1

G4=0⊕1⊕1⊕1=1


由于发送端采用的是偶检验那么G4G3G2G1=0000可说明传送中没有出错,G4G3G2G1=1001转化为十进制说明海明码第9位出错,将第9位纠错后变成1001 1110 011

 

 

 

 

 

例3,再来个多的,再多就没有意义了。计算0111 0110 11的海明码及检验

一、算校验位

m=10,根据m+r ≤ 2r-1求得r=4

a b 0 c 1 1 1 d 0 1 1 0 1 1

二、算校验位值

令发送方和接受方都采用偶检验的方法,也就是保证1的个数为偶数。

a b 0 c 1 1 1 d 0 1 1 0 1 1


a b 0 c 1 1 1 d 0 1 1 0 1 1

a 0 1 1 0 1 1偶检验确定a=0


a b 0 c 1 1 1 d 0 1 1 0 1 1

b 0 1 1 1 1 1偶检验确定b=1


a b 0 c 1 1 1 d 0 1 1 0 1 1

c 1 1 1 1 1偶检验确定c=1


a b 0 c 1 1 1 d 0 1 1 0 1 1

d 0 1 1 0 1 1偶检验确定d=0


代入abcd得海明码0101 1110 0110 11

三、检验

传输海明码,若在信道上受到干扰,导致一位编码出现异常由0101 1110 0110 11→0001 1110 0110 11

 根据确定检验位的值来检验,第n组 检验2n位,跳过2n位,分别把每组的数据异或,得出错位置。


0001 1110 0110 11

G1=0⊕0⊕1⊕1⊕0⊕1⊕1=0


0001 1110 0110 11

G2=0⊕0⊕1⊕1⊕1⊕1⊕1=1


0001 1110 0110 11

G3=1⊕1⊕1⊕1⊕0⊕1⊕1=0


0001 1110 0110 11

G4=0⊕0⊕1⊕1⊕0⊕1⊕1=0


由于发送端采用的是偶检验那么G4G3G2G1=0000可说明传送中没有出错,G4G3G2G1=0010转化为十进制说明海明码第2位出错,将第2位纠错后变成0101 1110 0110 11

 

标签:11,0110,校验位,明码,校验,检验,1110,举例
来源: https://www.cnblogs.com/xfk1999/p/11759115.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有