汉明码(检两位错,纠一位错)

~~~借鉴自大佬的博客,写的很好~~~

-----------------------------------------------采用偶校验和奇校验原理部分相同,本篇采用偶校验

校验码个数k:

   (n为数据位数)

附表 k的取值:

n 1 2-4 5-11 12-26 27-57 58-120 ······
k 2 3 4 5 6 7 ······

校验码分别设为 ······

校验码位置: 位置上(1、2、4、8、16 ······)

确定校验码的值(保证组内数据1的个数为偶数从而确定校验码的值):

由二进制位置为xxx1的数据组确定(位置为1,3,5,7,9,11 ·······的数据组)

 由二进制位置为xx1x的数据组确定(位置为2,3,6,7,10,11 ·······的数据组)

 由二进制位置为x1xx的数据组确定(位置为4,5,6,7 ·······的数据组)

 由二进制位置为1xxx的数据组确定(位置为8,9,10,11 ·······的数据组)

······

检错:

将接收到的序列的位置上的 及其对应的数据组 异或 得到的i+1个值 逆序排列 转化为十进制 即为出错的位置

例:

数据 1010

校验码个数 k=3

设汉明码为 H1,H2,H3,H4,H5,H6,H7

数据为D1,D2,D3,D4

校验码为P1,P2,P3

则 H1=P1 H2=P2 H4=P3 剩下的依次放入数据

H1 H2 H3 H4 H5 H6 H7
P1 P2 D1 P3 D2 D3 D4
    1   0 1 0

P1 由3,5,7位置上的数据决定(分别为1,0,0),所以P1 = 1

P2 由3,6,7位置上的数据决定(分别为1,1,0),所以P2 = 0

P3 由5,6,7位置上的数据决定(分别为0,1,0),所以P3 = 1

H1 H2 H3 H4 H5 H6 H7
P1 P2 D1 P3 D2 D3 D4
1 0 1 1 0 1 0

所以汉明码为 1011010

假设收到的序列为 1011110

H1 H2 H3 H4 H5 H6 H7
1 0 1 1 1 1 0

H1⊕H3⊕H5⊕H7= 1

H2⊕H3⊕H6⊕H7= 0

H4⊕H5⊕H6⊕H7= 1

逆序排列为 101

即第5位出了差错,取反即为原序列,

再去掉位置上的数就是要传送的数据

关于汉明码的一些总结相关推荐

  1. 理查德·汉明和他的汉明码

    点击上方"LiveVideoStack"关注我们 作者 | Alex 技术审校 | 赵军 理查德·汉明 声影传奇 #005# "计算的目的是洞察,而非数字(The pur ...

  2. 【Computer Organization笔记03】信息编码与码制转换,数据表示:检错与纠错、码距、汉明码等

    本次笔记内容: P5 计算机组成原理(05) P6 计算机组成原理(06) 注:本节课开始,我找到了对应内容的课件,请见于GitHub的CS笔记仓库.因此,为了节省时间,我只记录老师上课强调的内容与对 ...

  3. 汉明码---存储器校验(简单易懂详解)

    存储器校验 1.对存储器校验的原因: 以内存为例,内存是电子设备,信息保存在电容当中,若采用静态RAM,则是保存在四管的触发器当中,若内存所处的电磁环境比较复杂,或在空间环境下受到带电粒子的打击,可能 ...

  4. (7,4)汉明码编码译码及计算最小码距——基于MATLAB编程

    (7,4)汉明码编码译码及计算最小码距--基于MATLAB编程 编码 A=[1 1 1 0; 0 1 1 1; 1 1 0 1] %A 可随便写四个不为0的列向量,是为了生成一致校验矩阵 H=[A e ...

  5. 汉明码纠错java_汉明码(Hamming)编码与纠错原理

    一 汉明码的编解码说明 (一)编码 Hamming(12,8) N=12,表示编码后的比特长度 K=8,待编码数据的比特长度 R=N-K=4,校验位的比特长度 D=3 汉明距离:相邻行之间不同比特数据 ...

  6. 汉明码纠错java_汉明码纠错的基本原理及优化解决方案

    引言 汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件.它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码.汉明码的抗干扰能力较强,但付出的代介也很大,比如8比特 ...

  7. MATLAB实现(7,4)汉明码的编码解码纠错及BER的分析

    MATLAB实现7,4汉明码的编码解码纠错及BER的分析 背景 代码 计算BER 计算不使用汉明编码情况时的BER(模拟环境与理论情况) 总结 背景 本科时信息论与编码的作业 课程为 Informat ...

  8. 【通俗易懂的通信】信道编码之——汉明码

    一.什么是汉明码(hamming code) "汉明码",也称作"海明码",英文名为"hanming code",在通信领域中," ...

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

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

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

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

最新文章

  1. java solar_java中的内部类总结
  2. windows7如何查看端口被占用
  3. php authcode java_PHP(authcode)加密解密
  4. 限制UITextView输入字数(兼容iOS7)
  5. 【E-DEEC】基于matlab增强的分布式能源有效集群(E-DEEC)【含Matlab源码 1566期】
  6. python颜色识别demo
  7. IPMI接口和BMC控制器
  8. MATLAB灰度显示和彩色显示
  9. 电力拖动计算机系统考试,电力拖动自动控制系统__考试复习题.docx
  10. 计算机丢失MSVCR71.dll处理方法
  11. Mysql-explain-Impossible WHERE noticed after reading const tables
  12. luogu 4234 最小差值生成树 LCT
  13. 基于matlab水轮机期刊,四川紫坪铺电站水轮机综合特性三维建模
  14. 在控制面板找不到程序的情况下,卸载流氓软件
  15. 03:成绩排序 个人博客:doubleq.win
  16. springcloud 加入spring session通过zuul请求session不一致问题
  17. 幂律分布(python)
  18. 实现按钮的长按监听(聂同学的作业)
  19. 全球及中国医用管材行业十四五产销需求趋势展望报告2021-2027年版
  20. 3亿美元!金山云宣布D轮融资 降价布局多垂直领域

热门文章

  1. Do not hardcode /data/; use Context.getFilesDir().getPath() instead 解决方法
  2. 移动硬盘插在Mac上不显示
  3. 使用计算机控制台方法,珍珠控台控制台使用方法与技巧
  4. php后台配置插一句话马,一句话木马 - 作业部落 Cmd Markdown 编辑阅读器
  5. FCA-FineReport帆软认证报表工程师(FCA)考试考题
  6. HTTP 网站升级到 HTTPS 。
  7. MySQL 数据库主从集群搭建
  8. MyBatis-Plus——Mapper接口中使用自定义的CRUD方法及Mapper.xml映射文件
  9. 还在用ps抠图抠瞎眼?机器学习通用背景去除产品诞生记
  10. 我的大学生涯(大二腾讯校招实习生)