【计算机组成原理】海明校验码

将信息位分组进行偶校验,多个校验位,多个校验位标注出错位置。

1、确定海明码的位数

若有n个信息位,和k个校验位,为了保证可以标注错误。

2k种状态可以表示n+k位的状态,以及一种正确的状态。

2k>=n+k+1

n和k的对应关系。

n12~45~1112~2627~5758~120
k234567

2、确定校验位的分布

信息位:1010

设信息位D1D2D3D4,共四位,校验位P1P2P3。共三位。加起来共七位。

校验位Pi应放在海明号为2i-1的位置上。

即上面的海明码应为:

D4D3D2P3D1P2P1

H7H6H5H4H3H2H1
D4D3D2P3D1P2P1
1011

3、求校验位的值

H3: 3-> 0 1 1

H5: 5-> 1 0 1

H6: 6-> 1 1 0

H7: 7-> 1 1 1

然后Pi的值为所有海明码位二进制值的第i位的值为1的信息位的异或值。

三个分组分别进行偶校验。

P1等于:H3异或H5异或H7=0

P2等于:H3异或H6异或H7=1

P3等于:H5异或H6异或H7=0

则海明码为:

H7H6H5H4H3H2H1
D4D3D2P3D1P2P1
1010010

4、纠错

对各个分组进行检验,若分组内的校验位和信息位的异或值为0,无错。

S1 = P1异或D1异或H2异或D4

S2 = P2异或D1异或D3异或D4

S3 = P3异或D2异或D3异或D4

若接收到:1010010

S1 = P1异或D1异或H2异或D4 = 0011异或值为0

S2 = P2异或D1异或D3异或D4 = 1001异或值为0

S3 = P3异或D2异或D3异或D4 = 0101异或值为0

若出现错误得:S3S2S1=110,则第110位出错。D3出错。

补充

纠错能力:1位。检错能力:2位 。

但是若P1和P2发生错误,S3S2S1为011,表示第三位发生错误,这样是不对的。

因此需要加入全校验位。加上全校验位的海明码进行偶校验。

加入全校验位前提是加上P,整体有偶数个1。即P为整体海明码的异或值。

H8H7H6H5H4H3H2H1
PD4D3D2P3D1P2P1
11010010

若S3S2S1= 000 且全体偶校验成功 无错误

若S3S2S1≠ 000 且全体偶校验失败 有一位错误,纠正即可。

若S3S2S1≠ 000 且全体偶校验成功 两位错误需要重新传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值