计算机组成原理-海明校验

海明校验思路

之前学习的奇偶校验码中的偶校验只能发现奇数位错误,并且不能确定哪一位出错,所以只要出现错误就要重新传输。
海明码思想:
1.将信息位分组进行偶校验。(导致多个校验位)
2.对n个信息位进行k个分组,每个分组对应一个校验位。
3.k个校验位可以表示2^ k种状态,海明码是n个信息位+k个校验位,一共是n+k个位,都有可能出错,还有一种正确的状态。故校验位2^k种状态都需要包括这些情况。

     		2^k>=n+k+1

(考试的时候带几个k算即可求出)

求解步骤

例:信息位:1010

1.确定海明码位数:n=4->k=3 (一共7位)
信息位:D4 D3 D2 D1 = 1 0 1 0
校验位:P3 P2 P1
海明码:H7 H6 H5 H4 H3 H2 H1

2.校验位的位置:
Pi放在海明位号为2^(i-1)的位置上。(即为1 2 4 8 16…)可以理解为权重,P1的权重为1,P2的权重为2…以此类推。

3.求校验位:
已经将信息位分为了三组,再在每组进行偶校验。首先需要求Pi的值。
方法:将信息位所在海明码的位号展开成二进制:
H3: 3-> 0 1 1
H5: 5-> 1 0 1
H6: 6-> 1 1 0
H7: 7 -> 1 1 1
对应权重为:4 2 1与P3 P2 P1对应。
末位为1的归为P1所属分组。 P1=D1 D2 D4 的异或=0
倒数第二位归为P2所属分组。P2=D1 D3 D4 的异或=1
倒数第三位归为P3所属分组。P3=D2 D3 D4 的异或=0

4.纠错:
校验方程:
S1= P1 D1 D2 D4 的异或
S2=P2 D1 D3 D4 的异或
S3=P3 D2 D3 D4 的异或
(每个分组进行偶校验)
若接收到1010010
则: S1=0 S2=0 S3=0
若接收到1010000
则:S1=0 S2=1 S3=0
对应二进制数:2 故第二位出错

5.全校验位:
一般海明码使用的时候要加上全校验位,对整体偶校验。
S3 S2 S1 = 0 0 0 且全体偶校验成功。 无错误
S3 S2 S1 !=0 0 0 且全体偶校验失败。 有一位错,可纠正。
S3 S2 S3 !=0 0 0 且全体偶校验成功。 有两位错误,要重传。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值