help text:
principle
纠错原理


汉明码的原理、生成及检验


在计算机运行过程中,由于种种原因导致数据在存储过程中可能出现差错,为了能够及时发现错误并且将错误纠正,通常可以将原数据配成汉明编码。

汉明码具有一位纠错能力。

设将要进行检测的二进制代码为n位,为使其具有纠错能力,需要再加上k位的检测位,组成n+k位的代码。那么,新增加的检测位数k应满足:
2k≥n+k+12^k\geq n+k+12k≥n+k+1 or 2j-1 ≥\geq≥ n+k


图示:汉明码分组

n:有效数据位数
k:检测位数(也是分组数)
1:表示全部正确(无错情况)


汉明码的纠错


根据以上说的汉明码的配偶原则和配奇原则我们来看汉明码的纠错。设接收到的错误汉明码(按配偶原则配置)是0100111,我们可以根据上述规律来确定出错位。
那么新的检测位是 (+表异或/检测是否为偶(奇)数个"1")1

P1=①位+③位+⑤位+⑦位,即P1=0+0+1+1=0 //even-check 0 -> right
P2=②位+③位+⑥位+⑦位,即P2=1+0+1+1=1//even-check 1 ->wrong
P4=④位+⑤位+⑥位+⑦位,即P4=0+1+1+1=1

根据 P4P2P1 构成的二进制是 110,将110转换成十进制为6,说明是第6位出错
或者根据配偶原则的规律,其“1”的个数必须是偶数也能判断出是第6位,所以第六位应将“1”改为“0”,那么正确的汉明码应为0100101。

那么为什么在汉明码纠错过程中,新的检测位P4P2P1的状态即指出了编码中错误的信息位?

汉明码属于分组奇偶校验,P4P2P1=000,说明接收方生成的校验位和收到的校验位相同,不同说明出错。

由于分组时校验位只参加一组奇偶校验,有效信息参加至少两组奇偶校验

如果校验位出错:P4P2P1的某一位将为1,刚好对应位号4、2、1

001 -> 1
010 -> 2
011 -> 41`2`4为添加的校验位

若果有效信息出错:将引起P4P2P1中至少两位为1(有效位至少两组共有,仅校验位特别标志特定组),如上列错误,将使P4,P2均为1,P1=0 P4P2P1=110.(对应出错位号//no.6)


  1. question:为什么汉明码的校验位只有一位?请证明
    personal answer: even-odd check中状态二异(1的个数非奇即偶)仅一位即可表示 ↩︎

汉明码的原理、生成及检验相关推荐

  1. 74汉明码编码原理及其c++实现

    前段时间做了信号处理的一系列过程,从编码.生成载波.调制.加噪到解调滤波解码等等一系列从matlab转c++的操作,这里记点当时学的东西. 首先摘抄一下[维基百科的官方释义] 维基百科 在電信領域中, ...

  2. 暑期学习日记27:js实现验证码生成与检验

    今日学习了验证码的生成与检验,逻辑为: 1.加载页面时自动随机生成数字验证码. 2.点击看不清,更换验证码重新生成验证码. 3.点击确定按钮检验输入框内的值与验证码是否相等,不相等时弹出警告并清空输入 ...

  3. 汉明码的原理、生成和检验

    在计算机运行过程中,由于种种原因导致数据在存储过程中可能出现差错,为了能够及时发现错误并且将错误纠正,通常可以将原数据配成汉明编码. 汉明码具有一位纠错能力. 设将要进行检测的二进制代码为n位,为使其 ...

  4. C语言 实现4位奇校验的校验生成和检验

    要求使用左移操作符 1. 输入为十进制数: #include <bits/stdc++.h>using namespace std;int binaryNum; int c;int Cre ...

  5. 汉明码是否有错误的检验,许用码组的计算

    汉明码定义: 一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k.若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求或 题目 课后题都是自己做的,不是标准答案请谨慎参 ...

  6. 简单易懂的汉明码(海明码)校验原理

    汉明码编码原理 汉明码也叫做海明码,它通过向原始数据中添加校验数据来进行查错和纠错.具体来说, 假设数据位有n位,则校验位为k,k满足 2^k >= n+k+1 汉明码的位数为n+k,且校验位位 ...

  7. t检验自由度的意义_t检验的原理是什么?有什么意义?谢谢

    展开全部 原理:T检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的32313133353236313431303231363533e59b9ee7ad9431333431353937差异是 ...

  8. Android开发如何理解Java静态代理 动态代理及动态生成代理对象原理 看这篇就够了

    动态代理与静态代理 前言 代理模式 静态代理 动态代理 JDK代理 动态生成代理对象原理 生成class数据源码 动态代理类真身 总结 前言 近期在研究Hook技术,需要用到动态代理,说到动态代理就会 ...

  9. 使用(VAE)生成建模,理解可变自动编码器背后的数学原理

    理解可变自动编码器背后的原理 ​ 生成模型是机器学习中一个有趣的领域,在这个领域中,网络学习数据分布,然后生成新的内容,而不是对数据进行分类.生成建模最常用的两种方法是生成对抗网络(GAN)和可变自编 ...

最新文章

  1. PL/SQL轻量版(四)——存储函数/存储过程与触发器
  2. Vue轻松入门,一起学起来!
  3. preg_grep用法
  4. 钉钉小程序可以上传文件_怎样禁止钉钉外发文件?钉钉文件传输协议分析
  5. 服务器t4卡在哪个位置,英特尔(Intel )X710-T4融合网络适配器4口万兆X710T4服务器网卡...
  6. azure不支持哪些语句 sql_排查 Azure SQL 数据库的常见连接问题 - Azure SQL Database | Microsoft Docs...
  7. myPassword
  8. 碳酸钡颗粒行业调研报告 - 市场现状分析与发展前景预测
  9. 必读!Java开发人员的十大戒律
  10. WebStorm 2018破解版
  11. 微信公众号支付开发常见问题
  12. WebRTC桌面共享手动停止
  13. 恒生UFX接口引用计数心得
  14. 工作缺点和不足及措施_个人总结缺点和不足
  15. Hexo Next 5.x 升级 6.x
  16. 日常面试刷题9-29
  17. 微信公众号所有文章下载链接获取
  18. 天津大学《计算机应用基础》在线
  19. device 查看tensor_Tensor数据操作
  20. /(^\s*)|(\s*$)/g

热门文章

  1. 【工业互联网】高鹏资本创始合伙人唐鹏飞:工业互联网,下一个投资风口
  2. 浙江省计算机2级题型,计算机浙江省二级题目.doc
  3. 实习第三周小记-----生活在于经历
  4. 淡雅创意不规则几何PPT模板
  5. TRACE、TRACE0、TRACE1、TRACE2、TRACE3
  6. RISC-V常用指令总结(附完整PDF)
  7. vue中使用双循环v-for及点击切换active,默认使第n个添加active
  8. 二维码助力绿色生态环境的发展
  9. 通过开发深入解外挂原理【01】
  10. 网易云易盾首家推出手游智能反外挂服务 覆盖99%的外挂