汉明码校验错误实例
我们以上面的编码为例,假设我们现在收到的编码为001101001,我们可以发现汉明码的第8位与原来的汉明码001101011不同,那我们怎么找出这个第8位的错误编码呢?算法很简单,我们只要在算汉明码校验位的算法的上再算一遍,就得到了汉明码的校验方法,比如计算001101001对应的2^k位。
1,3,5,7,9进行异或,得到0
2,3,6,7进行异或,得到0
4,5,6,7进行异或,得到0
8,9进行异或,得到1
我们把上述结果反着排列,得到1000,即十进制的8,根据汉明码的校验规则,编码出错的地方即在第8位,我们把第8位的0换成1,即可得原来的编码001101011。
上述的例子是出现在2^k的校验位上的,如果出现在非2^k位上,得到的结果也是一样的,比如:
假设收到的编码为001100011,即第6位出了错误,我们根据规则
1,3,5,7,9进行异或,得到0
2,3,6,7进行异或,得到1
4,5,6,7进行异或,得到1
8,9进行异或,得到0
我们把上述结果反着排列,得到0110,即十进制的6,根据汉明码的校验规则,编码出错的地方即在第6位,我们把第6位的0换成1,即可得原来的编码001101011。 汉明码校验错误实例 汉明码校验错误实例
页:
[1]