美文网首页
奇校验、汉明码和循环冗余码

奇校验、汉明码和循环冗余码

作者: 我我我我我_a70b | 来源:发表于2019-06-14 10:37 被阅读0次

    卸载王者荣耀开始复习,再打王者荣耀,往群里发红包,再12点之后睡往群里发红包
    奇校验
    百分之90以上的传输错误为一位差错,对差错进行检测比较简单的方法为奇偶校验
    下面以奇校验为例解释其检错原理
    在除数一串二进制码
    校验位_0100010011时
    我们传输的数据0100010011含偶数个1
    为了保证我们传输的为奇数个1所以在校验位填1
    1_0100010011
    同理假如我们传送的数据为0101111
    为保证奇数个1 校验位我们填0
    0_0101111
    奇校验的含义在于将传送的数据连同校验位变为奇数个1,不过偶数位发生变化奇校验就失去了检错能力
    这样线路比较简单,只需判断奇数即可
    汉明码
    一位检错能力,汉明码解决了定位出错的位置,知道发生了一位传输错误,那么到底是那一位传送时发生了错误呢?
    冗余码的位数 2^r > m + r + 1
    m为传送数据位数 r为冗余码位数
    这里我们假设传送数据三位011
    则冗余码为3位
    冗余码的位置也有规定 为2的整数次幂
    故这里为 1,2,4,号位
    0110 0101 0100 0011 0010 0001
    6 5 4 3 2 1
    0 1 [] 1 [] []
    按第一位含一、、第二位含一........进行分组
    每组内参与奇偶校验(这里以奇校验为例)
    则从右往左 第一组为 0011 0101 序号3、5 偶数个1 则校验位填1

    0110 0101 0100 0011 0010 0001
    6 5 4 3 2 1
    0 1 [] 1 [] [1]
    第二组0011 0110序号3、6 奇数个 填0

    0110 0101 0100 0011 0010 0001
    6 5 4 3 2 1
    0 1 [] 1 [0] [1]
    第三组0101 01105、6奇数个 填0
    0110 0101 0100 0011 0010 0001
    6 5 4 3 2 1
    0 1 [0] 1 [0] [1]
    最终形成的传送序列 010101
    假设第三位产生错误

    110        101        100        011        010        001
      6            5            4            3            2            1
      0            1           [0]           0           [0]          [1]
    

    第一个校验码开始检查
    1、3、5偶数个1 第一组发生错误 应为 1
    第二个
    2、3、6偶数个1 应为 1
    第三个
    4、5、6
    奇数个1 应为 0
    倒置011索引出发生错误


    参考资料:汉明码——计算机网络——全网最通俗的讲解
    作者:刘扬俊 原文:https://blog.csdn.net/qq_19782019/article/details/87452394

    相关文章

      网友评论

          本文标题:奇校验、汉明码和循环冗余码

          本文链接:https://www.haomeiwen.com/subject/rpkufctx.html