纠错编码–海明码

  • 海明码:发现双比特,纠正单比特错
  • 工作原理:动一发而牵全身

假设发送4位数据,在它上面加上冗余信息(冗余码,校验码),但是校验码很厉害,不但可以校验自身,同时还可以校验几位

发现有一些数据同时被几个校验码同时作用;

假如第3位数据在接收端的时候发生了错误,由原来的0变成了1,我们就可以通过校验码检测出是哪一位发生错误,检测发现第3位发生错误,它是被几位校验码牵制着,只要它产生错误都能对其他几位校验码产生影响,动一发而牵全身(改变一个数据或者一个数据发生错误,使得很多校验码察觉出来,这些校验码互相检查,最后确定出错的数据)

  • 工作流程:
  1. 确定校验码位数r

海明不等式: 2^r-1>=k+r
r:为冗余信息
k:信息位
假设要发送数据:D=101101
数据的位数:k=6
满足不等式的最小r(冗余位)为4
也就是D=101101的海明码应该有6+4=10位
其中原数据6位,校验码4位

  1. 确定校验码和数据的位置

假设这4位校验码分别为P1,P2,P3,P4:数据从左到右为D1、D2、D3、D4、D5、D6
P的确定:放在2的几次方的位置(只能放在2^0 、2^1 、2^2、 2^3…对应数字为1、2、4、8…)
D的确定:把P填完剩下的空补上。

  1. 求出校验码的值

D=101101填入:
P1对应校验的二进制第一位为1(从右往左数),找所有二进制数第一位为1的数,
所以上面P1可以检验的有P1,D1,D2,D4,D5
如何处理以上数据呢?
令所有要校验的位异或=0(相同为0,不同为1)
代入数据

P2对应数据第二位为1,找第二位为1(从右往左数),找所有二进制数第而位为1的数,

所以上面P2可以检验的有P1、D1、D3、D4、D6
令所有要校验的位异或=0(相同为0,不同为1)
代入数据

P3同理:P3=0
P4:P4=1
综上所述:校验码为0001
所以101101的海明码为0010011101(P和D合并在表格中)

  1. 检错并纠错
    假设海明码传输的过程中,第五位出错,因此接收到的数据位0010111101(由0变为1)。但是接收端不知道哪位出错,找出错误位。
    如何找呢?
    令所有要校验的位异或运算
    校验位数的第三步一样,
    P1:

    P2:
    P3:

    P4:

    P1P2P2P2=0101=5
    所以出错位为第5位

把出错的位改为其反码,将1变为0

纠错编码--海明码(动一发而牵全身)相关推荐

  1. 【计算机网络】数据链路层 : 差错控制 ( 纠错编码 | 海明码 | “海明码“ 原理 | “海明码“ 工作流程 | 确定校验啊位数 | 确定校验码和数据位置 | 求校验码值 | 检错纠错 )★

    文章目录 一. "海明码" 工作原理 二. "海明码" 工作流程 三. 确定校验码位数 四. 确定校验码和数据位置 0. 确定校验码位置 1. 引入二进制位 2 ...

  2. 3.3.1网络原理数据链路层之差错控制(检错编码和纠错编码)->(奇偶校验码、CRC循环冗余码、海明码)(转载)

    原文链接:https://blog.csdn.net/weixin_43914604/article/details/104864783 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...

  3. 信息论小课堂:纠错码(海明码在信息传输编码时,通过巧妙的信道编码保证有了错误能够自动纠错。)

    文章目录 引言 I 纠错 1.1 信息纠错的前提:信息冗余 1.2 发现抄写错误的方法 1.3 计算机的信息校验原理:奇偶校验 1.4 有效的纠错编码 II 案例 2.1 例子1:自身DNA的编码 2 ...

  4. 差错控制:海明码、循环冗余校验码

    海明码 海明码的编码方法 例题: D B 循环冗余校验码 奇偶校验

  5. 已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。

    已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错. A.3 B.4 C.5 D.6 答案:C 答案解析: 根据公式 2的k次方 ≥ n+k+1 , n=16 则 K=5

  6. 海明码编码和校验原理与实现【转载】

    海明编码与检验原由 以内存为例, 如果内存所处的电磁环境比较复杂, 或者空间环境下受到带电粒子的打击, 那么可能导致电容的充放电或者触发器的翻转(SRAM). 这样会导致存储信息的改变. 如果不校验, ...

  7. 易理解的海明码的编码和校验原理【转载】

    海明码简单分析(方法1) 海明码(也叫汉明码)具有一位纠错能力.本文以1010110这个二进制数为例解释海明码的编码和校验方法. 编码 确定校验码的位数x 设数据有nnn位,校验码有xxx位.则校验码 ...

  8. 计算机网络数据链路层的错误检测与纠正之海明码的生成,解码

    2019独角兽企业重金招聘Python工程师标准>>> <!-- lang: java -->/*** made by wangming * * 2013-10-28 p ...

  9. 海明码知识透析--网工必备

    海明码的相关运算 这段时间在备考网络工程师,51可帮了大忙,不仅各种知识点都有,还有海量针对性的模拟考题.这不做题的时候发现海明码经常出现在题目中,却次次做错.引起了我的警觉,这恐怕就是热考点和难点了 ...

最新文章

  1. 给VIM安装YouCompleteMe插件
  2. Go使用swagger:方法说明+案例说明
  3. python去重复元素_python 去除单个list中的重复元素
  4. 一个平行四边形可以分成四个_将平行四边形分割成两个三角形还易变形么?(人教四下五单元三角形例2)...
  5. 要让玩家买单的facebook中文网
  6. 计算机课教案学法,计算机应用基础教学方法初探
  7. 第七章节 类的抽象(接口)
  8. MySQL 5.6 关于登陆的初始化设置
  9. 【转】运用jieba库分词
  10. 7.13 Python循环语句(2)、number、字符串
  11. win7便笺重启计算机后还有吗,win7里的便签功能关机重启电脑后还有吗?
  12. 怎样备份计算机里的驱动程序,怎么备份电脑的驱动 驱动人生备份驱动方法
  13. java 火星坐标转wgs84_火星坐标系与WGS84坐标系转换
  14. python输出数字怎么办_python怎么输出数字
  15. 拍照识别植物app哪个好?来看看这几个工具
  16. Ka波段卫星通信小尺寸无线电设计
  17. Python运维开发学习(一)
  18. 深入研究 CSSfloat属性
  19. [推断统计] 求区间估计:枢轴量法
  20. 谁来买我们的DRAM?美光公司摸摸干瘪的口袋

热门文章

  1. python单词的含义-Python常用英文单词有哪些?
  2. python编程可以自学么-终于发现怎么自学python编程
  3. python语言中文怎么读-python中文读什么
  4. python教程视频完整版-Python教程视频完整版
  5. 免费python网络课程-2019年10种免费的Python学习课程
  6. python官网的sdk下载详细步骤-Python SDK
  7. python菜鸟教程100例-Python 基础教程 | 菜鸟教程
  8. python用户画像_新闻个性化推荐系统源码之构建离线用户和文章特征
  9. 模块是python中普通的文件吗_python 包和模块
  10. 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...