使用海明码进行纠错,7位码长(X7……X1),其中4位数据,监督关系为
C0=X1+X3+X5+X7
C1=X2+X3+X6+X7
C2=X4+X5+X6+X7
如果接受到的码字为1000101,那么纠错后的是?
根据你所给出的信息,X1...X7对应的位为:
X7 X6 X5 X4 X3 X2 X1
1 0 0 0 1 0 1
这样,C0=1⊕1⊕0⊕1=1;
C2=0⊕1⊕0⊕1=0;
C3=0⊕0⊕0⊕1=1
结果为1表示这几项中有一项出现错误,所以(X1+X3+X5+X7)有一项错误,(X2+X3+X6+X7)没有项错误,(X4+X5+X6+X7)中有一项错误,综合分析得X5项出现错误,纠错应该把其值由0纠正为1,那么纠错后的码是:1010101 。很遗憾,与你给的答案好像有点出入。
还有另一种方法,不用管什么监督式,根据接受到的码字为1000101直接纠错,
X7 X6 X5 X4 X3 X2 X1
1 0 0 0 1 0 1
X1、X2、X4位为冗余位,根据给出的码字计算:
X1=X3+X5+X7=0
X2=X3+X6+X7=0
X4=X5+X6+X7=1
可以看出X1和X4位值与码字中的值不一样,所以1+4=5,第5(X5)位出现了错误,正确的码字应该是:1010101,
除去冗余的校验位,原码应该是:1011 。