3.3.2 纠错编码(海明校验码)

在这一小节中,我们会继续探讨海明校验码,海明校验码又可以称为汉明教验码,这只是一个音译的问题,因为发明这个校验码的人叫理查德 汉明,也正是因为发明了海明码,对于信息纠错这个领域的贡献十分巨大,所以这个人获得了1968年的图灵奖。这一小节中,我们会首先介绍海明码的基本实现思想,然后再来介绍怎么构建海明码、怎么使用海明码来进行校验。

首先我们从奇偶校验出发,这种校验的思想很简单,对于n个有效的信息位,我们只需要在首部或者尾部添加一个奇校验位或者偶校验位,用这样的方式构成奇偶校验码。比如对于偶校验来说,四个信息位1010,我们需要在头部添加一个零保证整体来看总共有偶数个1。奇偶校验码的一个局限性就是我们只能发现奇数位的错误,并且我们知道它错了,但是我们无法确定是哪一位出了错,所以当我们发现错误的时候,我们没办法自动的把它进行修正,只能要求数据的传输方重新传送。可以这么来理解:由于奇偶校验的策略,我们只添加了一个校验位,也就是一个比特的信息,而一个比特的冗余信息,显然它只能携带两种状态,也就是只能反馈对或者错这样的两种状态。

而这一小节我们要学习的海明码,其实是基于偶校验的一个拓展。大致的思路是这样的:对于n个有效的信息位,我们会把它分为k个分组,然后对k个分组分别的进行偶校验,也就是说,每一个分组会对应一个校验位,最终我们会携带k个校验位,而这 k 个校验位显然可以反映更多种状态的信息。除了反馈对错之外,我们甚至还可以知道错在哪儿,是哪一位出了错,这就是海明码的设计思想。基于这个思路,我们接下来要探讨两个问题,第一个问题,我们需要把这n个信息位分为多少个分组呢?第二个问题,这n个信息位我们应该怎么把它们分派到各个分组当中。

首先我们来探讨第一个问题,需要设置多少个校验位?我们假设信息位总共有n个,然后我们添加的冗余校验位有k个,现在我们所期待的效果是k个校验位除了能反映对错之外,还能指明我们到底是哪一个比特位出现了错误,显然k个比特总共能表示二的k次方这么多种状态。而我们的海明校验

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秋悠然

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

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

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

打赏作者

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

抵扣说明:

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

余额充值