海明码的计算:
码距:是不同码字的海明距离的最小值。
(1)可查出多少位错误:可以发现“≤码距-1”位的错误
(2)可以纠正多少位错误:可以纠正“<码距/2”位的错误,因此如果要能纠正n位错误,则所需最小的码距是:2n+1。
计算:海明码是放置在2的幂次位上的即1,2,4,8,16,32, 而对于信息位为m的原始数据,需加入k位的校验码,它满足m+k+1<k2.
海明码的求法:
一、有一种简单的方法,则是从第1位开始,遇到校验位留下空格。
如原始信息为101101100,并采用偶校验:
1 2 3 4 5 6 7 8 9 10 11 12 13
二、然后概据以下公式填充校验位:1,2,4,8
B1=B3⊕B5⊕B7⊕B9⊕B11⊕B13=1⊕0⊕1⊕0⊕1⊕0=1
B2=B3⊕B6⊕B7⊕B10⊕B11=1⊕1⊕1⊕1⊕1=1
B4=B5⊕B6⊕B7⊕B12⊕B13=0⊕1⊕1⊕0⊕0=0
B8=B9⊕B10⊕B11⊕B12⊕B13=0⊕1⊕1⊕0⊕0=0
三、最后将结果填入,得到结果:
1 2 3 4 5 6 7 8 9 10 11 12 13
海明码的纠错:如下给出一个加入了校验码的的信息,并说明有一位的错误,要找出错误位:
1 2 3 4 5 6 7 8 9 10 11 12 13
将B1,B2,B4,B8代入上式的公式中:
B1=B1⊕B3⊕B5⊕B7⊕B9⊕B11⊕B13=1⊕1⊕0⊕1⊕0⊕0⊕0=1
B2=B2⊕B3⊕B6⊕B7⊕B10⊕B11=1⊕1⊕1⊕1⊕1⊕0=1
B4=B4⊕B5⊕B6⊕B7⊕B12⊕B13=0⊕0⊕1⊕1⊕0⊕0=0
B8=B8⊕B9⊕B10⊕B11⊕B12⊕B13=0⊕0⊕1⊕0⊕0⊕0=1
然后从高位往下写,B8+B4+B2+B1=1011=11(十进制)即11位出错。