二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 |
---|---|---|---|---|---|---|---|---|---|---|
数据位 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
代码 | P1 | P2 | D1 | P3 | D2 | D3 | D4 | P4 | D5 | D6 |
实际值 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
D = 101101
确定校验码的位数:海明不等式,2^r >= k+r+1 r为冗余信息位
要发送的数据:D = 101101
数据的位数 K = 6 带入海明不等式
满足不等式的r的最小值为4
也就是D = 101101的海明码应该有6+4=10位
其中原数据为6位,校验码4位
将P填入表格中的代码,位置为 2 的 n 次方(1 2 4 8)
P1 + D1 + D2 + D4 + D5 = 0 (异或运算 同0异1)求出 P1 = 0 ,以此类推求出P2,P3,P4
10101的海明码为0010011101
假设第五位数据出错,因此接收到的数据为0010111101
令所有要检验的位进行异或运算
P1 + D1 + D2 + D4 + D5 = 1
P2 + D1 + D3 + D4 + D6 = 0
P3 + D2 + D3 + D4 = 1
P4 + D5 + D6 = 0P4 P3 P2 P1 = 0101 = 5 所以第五位数据发生错误
赏
谢谢你请我吃糖果
支付宝
微信