海明校验码

本文详细介绍了海明校验码的设计思路,包括如何根据信息位n和校验位k确定分组数量,以及如何通过异或运算求取校验位的值。此外,还阐述了海明码的纠错过程,通过校验方程和图解法判断错误位置。然而,当存在多比特错误时,海明码可能无法检测,为此提出了增加全校验位的解决方案。

海明校验码设计思路:

1.将信息位分k(k为正整数)组进行偶校验,那么就得出k个校验位
2.且每个校验位都标注着是否出错和出错的位置
——————————————————————————————————————————————————————————
那么问题来了,应该分成几组呢?
1.假设信息位有n位,校验位有k位,
2.那么k个校验位就可以表示2^k种状态,
3.信息位+校验位共n+k位,且每一位都可能会出错,这就说明出错的状态会有n+k种,所以就能得出2^k >= n + k,
4.但是还有一种传输正确时的状态,所以最终为:2^k >= (n + k) + 1,
5.代入式子,就能求出校验位k的值,k为多少就表示分成几组。
在这里插入图片描述
——————————————————————————————————————————————————————————

海明校验码求解步骤:

假设:
在这里插入图片描述
一、确定海明校验码的位数:
在这里插入图片描述
二、确定校验位的分布:

两种编码方式:

信息位从高到低编码:
在这里插入图片描述
信息位从低到高编码:
在这里插入图片描述

三、求校验位的值:

1.将每个信息位用二进制表示:
在这里插入图片描述
2.信息位的权值与校验位的权值一一对应,将其进行异或运算,求出每组的偶校验位:

(例如:P1(H1)的在海明码中用二进制表示是001,D1、D2、D4在海明码中表示分别为011、101、111,最第一位都是1,所以可以看成是这个校验位可以分别校验的信息位是:在校验位有1的位上同样是1。)
在这里插入图片描述
3.得出海明校验码:
在这里插入图片描述
四、纠错:
(对每个分组都进行偶校验,都没有出现错误就表示传输正确)
校验方程:
在这里插入图片描述
将分组转换成图:
在这里插入图片描述

接收无误的情况:(000)
在这里插入图片描述
接收出错的情况:(非000)
在这里插入图片描述
S3S2S1组成的二进制数指明了出错的位置
(010转换成十进制数就是2,表明海明校验码中H2出错了。)

——————————————————————————————————————————————————————————

补充:

在这里插入图片描述
但是有时候2位出错可能检测不出来,假设P1、P2传输出错时,根据校验方程得出011,
根据之前的认识,这是D1出错,但是实际上这是P1、P2出错,这就无法检测出错误了,
那么该怎么办?

这个时候为了区分1位出错还是2位出错,就需要增加一个全校验位

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值