海明校验码原理以及作用机制的介绍

什么是海明校验码?

由Richard Hamming于1950年提出、还被广泛采用的一种很有效的校验方法,是只要增加少数几个校验位,就能检测出二位同时出错、亦能检测出一位出错并能自动恢复该出错位的正确值的有效手段,后者被称为自动纠错。

它的实现原理,是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。(来源百度百科)

简单地说:海明校验码是一种能够纠正一位错误检测两位错误并且能够自动恢复出错位的校验码。

编码原则:

假设数据位的位数为 k 位,校验位数为 r 位,在编制海明码的时候,需要满足海明不等式:。也可以理解为信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,则海明不等式又可以表达为:。

在海明不等式——2^{r}\geqslant k+r+1中,1是表示用其中的一个状态信息表示没有发生错误,其余的状态信息用于指出错误并且发生在哪一位,又因为检验位也可能发生错误,所以是 k+r 个。(在这里讲明一下,因为海明校验码在设计之初就是能够发现并纠正一位错误,所以你在看这个不等式时要带着发生一位错误的角度去看待!

数据位和校验位的对应关系表:

信息码位数

1

2~4 5~11 12~26 27~57 58~120
校验码位数 2 3 4 5 6 7

但是在实际运用中应该是2^{r-1}\geqslant k+r+1,详情请看评论区的解释!再次感谢—猫猫官人—提出的问题!(*^_^*)

信息码位数

1-3

4-10 11-25 26-56 57-119
校验码位数 4 5 6 7 8

海明码编制的基本规则:

假设海明码的最高位的位号为m,最低位号为1,海明码为Hm Hm-1 ··· H1。海明码的编码规则如下:

(1)校验位与数据位个数之和为m,每个校验

你可能感兴趣的:(#,计算机网络,海明码,计算机组成,计算机网络)