汉明码的检错与纠正

上期我们介绍了汉明码的构造原理,这一期我们来看看汉明码是怎么实现“纠错”和“改正”的。

我们假设传输过程中第3位发生了错误,原本传输的数据为101101,现在收到的数据为101001.

这时,汉明码会检查每一组的“偶校验”:

对于第一组来说(1,3,5位为一组):1的个数为1个,奇数个,不再满足“偶校验”,我们可以据此推断这一组有位数发生了错误,但不确定是哪一位发生了错误。为了达到“偶校验”,我们需要补一个1。

同理,对于第二组来说(2,3,6位为一组):1的个数位1个,奇数个,不再满足“偶校验”,我们可以据此推断这一组有位数发生了错误,但不确定是哪一位发生了错误。为了达到“偶校验”,我们需要补一个1。

对于第三组来说(4,5,6位为一组),1的个数为2个,偶数个,那么这组数据没有发生错误,我们为这组补一个0。

其实,我们通过对第一组和第二组的检查就已经可以确定是哪一位出了问题,第一组和第二组都是有问题的,它们的共同位是第3位,那么我们可以断定是第3位出了问题。

本例中的数据位较少,可以很快就定位到发生传输错误的位数,但是当数据位比较多的时候,我们不会这么快得出结论,我们需要将每一组检查后补的数处理一下:

(1,3,5为一组)

(2,3,6为一组)

从下往上读补的数:011,它的十进制就是3,通过这样的计算,我们可以准确知道是第3位的数据发生了改变,我们对第3位数据进行取反操作,就可以将数据修改为正确的数据。是不是觉得很神奇呢?

文章作者:速易芯刘彦

更多详细文章可关注公众号 “速易芯Fastchip” !

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

速易芯Fastchip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值