海明校验码

海明校验码设计思路:

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位出错,就需要增加一个全校验位

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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值