早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于Hamming码的求解问题(1)欲写入代码1010,请将他编成Hamming校验码;(2)若收到某Hamming校验码1110010,其中信息4位,校验码3位,问该代码是否有错?为什么?若有,请将纠正写出正确的信息.该题

题目详情
关于Hamming码的求解问题
(1)欲写入代码1010,请将他编成Hamming校验码;
(2)若收到某Hamming校验码1110010,其中信息4位,校验码3位,问该代码是否有错?为什么?若有,请将纠正写出正确的信息.
该题第一问的解为:
(1)计算校验比特的公式如下:
R2=I4+I3+I2
R1=I4+I3+I1
R0=I4+I2+I1
所以R2=0
R1=1
R0=0 所以Hamming校验码为 1010010
第二问解:
验证Hamming校验码的关系式如下:
S2=R2+I4+I3+I2
S1=R1+I4+I3+I1
S0=R0+I4+I2+I1 所以 S2=1 S1=1 S0=1 三个校正因子不全为0,所以该Hamming校验码有错,错误位置S=S2S3S0=110=6,即比特6有错,将其变反,得到的正确信息为1010.
求好人解惑哈,本人小菜鸟一个.问:这题的答案是不是有误啊?答案上的Hamming校验码关系式有没有?有,又是怎么来的啊?我采用另一种算法,结果与答案完全不一样.
PS:问题有点多,给出前面两个都行了,呵呵
▼优质解答
答案和解析
答案没错
设海明码编码为H7H6H5H4H3H2H1
则在2的i-1次上应为校验位Pi
则海明码为D4D3D2P3D1P2P1
输入数据为1010故D4D3D2D1=1010
P1=D1,D2,D4的异或=0
P2=D1,D3,D4的异或=1
P3=D2,D3,D4的异或=0
故海明码为1010010
现在收到的海明码为1110010则
S3=P3,D2,D3,D4的异或=1
S2=P2,D1,D3,D4的异或=1
S1=P1,D1,D2,D4的异或=0
S3S2S1=110
说明海明码H6出现错误
纠正后得到正确数据1010
怎样得到的校验位
这个问题看下下面说明
海明码位号 数据/校验位 参与校验的校验位号
H1 P1 1
H2 P2 2
H3 D1 1,2
H4 P3 4
H5 D2 1,4
H6 D3 2,4
H7 D4 1,2,4
由上面的表可知
P1校验位号为1
所有数据位中含1的
P1都参与校验
于是D1,D2,D4异或结果为P1
同理得到P2,P3
最后1列校验位号加起来等于海明码位号
不知道你发现了没
就是这么来的
还有不明白的再问我