其他分享
首页 > 其他分享> > 海明码

海明码

作者:互联网

海明码纠错思路
①确定校验码的位数r
②确定校验码和数据的位置
③求出校验码的值
④检错并纠错

海明不等式:2^r >= k+r+1
需要发送的数据:101101

  1. 校验码的位数 :r = 4
  2. 数据总长度: Dlength = 10;
  3. 校验码位置 : 2的n次方 p1 p2 p3 p4
  4. 数据 101101 分别为 D1 D2 D3 D4 D5 D6
    在这里插入图片描述
    P1可以校验的二进制最后一位是1的数据位:p1 d1 d2 d4 d5
    P2可以校验的二进制倒数第二位是1的数据位:p2 d1 d3 d4 d6
    P3可以校验的二进制倒数第三位是1的数据位:p3 d2 d3 d4
    P4可以校验的二进制倒数第四位是1的数据位:d5 d6

求解P,以上分别异或令其值为0
P1 ⊕ D1⊕ D2 ⊕ D4 ⊕ D5 =0
P2 ⊕ D1⊕ D3 ⊕ D4 ⊕ D6 =0
P3 ⊕ D2⊕ D3 ⊕ D4 =0
P4 ⊕ D5⊕ D6 =0

编码:
解出: p1=0 p2=0 p3=0 p4=1
因此:编码为 0010011101

检错:
假设第五位出错
正确:0010011101
五位:0010111101

解码:与编码相反操作

  1. 在这里插入图片描述
    P1可以校验的二进制最后一位是1的数据位:p1 d1 d2 d4 d5
    P2可以校验的二进制倒数第二位是1的数据位:p2 d1 d3 d4 d6
    P3可以校验的二进制倒数第三位是1的数据位:p3 d2 d3 d4
    P4可以校验的二进制倒数第四位是1的数据位:d5 d6

以上分别异或运算
P1 ⊕ D1⊕ D2 ⊕ D4 ⊕ D5 =1
P2 ⊕ D1⊕ D3 ⊕ D4 ⊕ D6 =0
P3 ⊕ D2⊕ D3 ⊕ D4 =1
P4 ⊕ D5⊕ D6 =0

0101 出错在第五位,所以正确编码为: 0010011101

标签:二进制,明码,校验,校验码,数据位,D4,d4
来源: https://blog.csdn.net/weixin_40285319/article/details/112389528