海明校验码:
详解:
当我们确定校验位在海明码中的位置后,我们需要做去确定哪几个位置的信息位进行异或来得到相应校验位p1、p2、p3的值,根据图3
我们将所有信息位的下标换算成二进制后,确定这些数二进制的比特位是否含有1来判断参入该校验位的计算,图中我们计算p1有H~3~
H~5~、H~7~这三个数的第一位含有1,所以参加p1的计算,其余的也是如此。这样下来我们就确定每个校验位如何计算。
当我们确定每个校验位的位置和大小后,我们开始判断纠错。海明码优于奇偶校验码的特点是可以判断出具体某一位出错。上述例子中有三个校验位,我们把整个海明码分成三部分,也就是校验位和他本身参与计算得信息位作为该组成员,就像S~1~、S~2~、S~3~这三部分,然后计算出她它们三个的值,如果都是0说明没错(因为偶数个1异或结果是0)出现一个1后出错,根据图中接收到1010000,S~2~出现了1,然后将这三个数按照二进制进行排列010,说明就是第二位也就是p2出错了。
我们也可以根据这个圆型图看,比如D~4~出错了,D~4~是被包含在S~1~、S~2~、S~3~这三部分中,说明影响了这三部分,那么这三部分最终结果都是1,换成二进制就是111,这个二进制就是7也就是海明码的第七位出错了。