海明码/汉明码的计算和纠错

本文详细介绍了海明校验码的工作机制,通过确定校验位的位置和计算方式来确保数据传输的准确性。当数据错误发生时,海明码能够定位到具体哪一位出错,提高了错误检测的效率。通过实例解析了如何通过海明码进行纠错,并讨论了其相对于奇偶校验码的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海明校验码:

 

 

 

详解:

当我们确定校验位在海明码中的位置后,我们需要做去确定哪几个位置的信息位进行异或来得到相应校验位p1、p2、p3的值,根据图3

我们将所有信息位的下标换算成二进制后,确定这些数二进制的比特位是否含有1来判断参入该校验位的计算,图中我们计算p1有H~3~

H~5~、H~7~这三个数的第一位含有1,所以参加p1的计算,其余的也是如此。这样下来我们就确定每个校验位如何计算。

 

当我们确定每个校验位的位置和大小后,我们开始判断纠错。海明码优于奇偶校验码的特点是可以判断出具体某一位出错。上述例子中有三个校验位,我们把整个海明码分成三部分,也就是校验位和他本身参与计算得信息位作为该组成员,就像S~1~、S~2~、S~3~这三部分,然后计算出她它们三个的值,如果都是0说明没错(因为偶数个1异或结果是0)出现一个1后出错,根据图中接收到1010000,S~2~出现了1,然后将这三个数按照二进制进行排列010,说明就是第二位也就是p2出错了。

 

我们也可以根据这个圆型图看,比如D~4~出错了,D~4~是被包含在S~1~、S~2~、S~3~这三部分中,说明影响了这三部分,那么这三部分最终结果都是1,换成二进制就是111,这个二进制就是7也就是海明码的第七位出错了。

 

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值