简单学会海明码的原理
的有关信息介绍如下:通过简单的方式彻底掌握海明码原理
首先必须掌握的知识:1、奇偶校验;2、海明码默认进行偶校验;3、海明码的构成
例如:给定一组信息码:110001求其海明码
首先我们可以确定n = 6,信息码个数为6
计算校验码个数:
根据公式:n + k <= 2^k -1使得不等式成立的k的最小值为4(因为四位的校验码可以满足要求检测要求,没必要取更大的k值)。
则海明码的个数为:n + k = 10
确定校验码的位置:
校验码的个数有四个,按照2^k留取位置,k从0开始,则校验码的位置为:1,2,4,8……
然后我们将信息码从左到右填入除了预留校验码位置的其他位置,现在我们根据偶校验的方法,求得校验位置的码即可得到海明码
校验位置的值求得方法,首先对校验位按照二进制进行分类:
H1 所在位置的二进制码为0001(此处为什么要写成0001而不写成01呢,这个是根据校验码的数量来定的),我们可以标记为XXX1;
H2所在位置的二进制码为0010,标记为XX1X;
H4所在位置的二进制码为0100,标记为X1XX;
H8所在位置的二进制码为1000,标记为1XXX
同样的,我们列举出H3、H5、H6、H7、H9、H10位置的二进制码:0011,0101,0110,0111,1001,1010然后我们按照二进制结构对其进行归类
有归类结果可知:H1所在位置的校验码,校验的是H3、H5、H7、H9位置的信息码;
H2所在位置的校验码,校验的是H3、H6、H7、H10位置的信息码;
H4所在位置的校验码,校验的是H5、H6、H7位置的信息码;
H8所在位置的校验码,校验的是H9、H10位置的信息码;
根据归类结果,当H1 ⊕ H3 ⊕ H5 ⊕ H7⊕ H9需满足偶校验;
H3、H5、H7、H9对应的信息码为:1 0 0 1,要满足偶校验,则H1的校验码应该为0
同理可求得H2、H4、H8位置所对应的校验码
然后将校验位对应的码填写到相应的位置,即得到海明码