海明码
海明码(Hamming Code)是由贝尔实验室的Richard Hamming设计的,是一种利用奇偶性来验错和纠错的校验方法.海明码的构成方法是在数据位之间的特点位置上插入K个校验位.通过扩大码距来实现检错和纠错.
设数据位是n位,校验位是k为,则n和k必须满足一下关系
海明码的编码规则如下
设k个校验位为
设n个数据位
对应的海明码为
(1)
(2)海明码中的任何一位都是由若干个校验为来校验的.其对应关系如下:被校验的海明码的下标等于所有参与校验该为的校验为的下标之和,而校验位由自身校验.来一个Demo
求101101100的海明码
解题思路:
(1)求校验位的个数,
(2)将列出海明码,既校验位和数据位混合在一起,类似于下图的H代表的位置,未求出的校验位的位置用k代表
(3)写出每一个海明码对应的校验位组合
(4)写出每一个校验的算式,进行异或运算,得出每个k的值,最后写出海明码