海明校验码

2023-10-26

 

1. 海明码的特点:

 

其中m表示数据位的位数,k表示海明校验码的位数

k位海明校验码一共可以表示种校验信息结果,其中有一种要用来表示没有出错的情况,则其余还剩-1种结果,为了使校验结果可以指出任一位出错的位置,则需要满足以上不等式。

2. 举例说明:

设要传输的数据为101101100

(1)可知m=9,由公式,可知k最小值为4,所以总共要传输的数据位数为9+4=13;

(2)海明校验码放在索引号为的位(n=0,1,2,...,k-1)上,本例中k=4,所以校验位的索引为第1,2,4,8位,于是在下表中把这几位空出来

3.对应表

上表中,先说每一行的内容:从第二行开始,每一行的第一列代表索引号,这个索引号是除去了海明校验位之外的其他所有位。后面几列为该索引号对应的二进制表示,其位数取决于第(1)步计算得出的海明校验码的位数,比如第二行,索引号是3,十进制3对应的二进制就是0011,之所以用4位表示是因为这段信息码需要4个海明校验位。

再看列信息:第一行最右边数字1所对应的列里,出现1的,就表示可以用第H1位完成校验,出现数字0则表示不能用H1位进行校验,因此,由上表可知:

校验位H1负责校验:第3,5,7,9,11,13位(上表黄色高亮显示部分),对应位置上的值进行异或得:1⊕0⊕1⊕0⊕1⊕0=1,由于海明校验做的是偶校验,则H1=1;

校验位H2负责校验:第3,6,7,10,11位(上表蓝色高亮显示部分),对应位置上的值进行异或得:1⊕1⊕1⊕1⊕1=1;
校验位H4负责校验:第5,6,7,12,13位,对应位置上的值进行异或得:0⊕1⊕1⊕0⊕0=0;
校验位H8负责校验:第9,10,11,12,13位,对应位置上的值进行异或得:0⊕1⊕1⊕0⊕0=0。
(4)得到最终要传输的数据串为

 

1. 算校验位

原数据1011, 有4位数据位, 需满足4+r≤2r-1这个公式, 求得r=3,表明有3个检验位,以下用a、b、c、...来代替

得到ab1c011

2. 算校验位值

令发送方和接受方都采用偶检验的方法,也就是保证1的个数为偶数。采用奇检验结果也一样,但收发双方一定要用相同的检验方法。

a b 1 c 0 1 1

第一位检验位a的计算方法:从a开始检验一位,跳过一位,即20位,利用偶检验确定a。

第二位检验位b的计算方法:从b开始检验两位,跳过两位,即21位,利用偶检验确定b。

第三位检验位c的计算方法:从c开始检验四位,跳过四位,即22位,利用偶检验确定c。


a b 1 c 0 1 1

a 1 0 1 偶检验确定a=0


 a b 1 c 0 1 1

b 1 1 1 偶检验确定b=1


 a b 1 c 0 1 1

后面没有了,所以就是c 0 1 偶检验确定c=0


 代入abc得海明码0110 011

3. 检验

传输海明码,若在信道上受到干扰,导致一位编码出现异常由0110 011→0111 011

根据确定检验位的值来检验,第n组 检验2n位,跳过2n位,分别把每组的数据异或,得出错位置。这里的异或也就是相当于偶检验的过程,1的个数为偶数G就为0。


 0 1 1 1 0 1 1

G1=0⊕1⊕0⊕1=0


0 1 1 1 0 1 1

G2=1⊕1⊕1⊕1=0


0 1 1 1 0 1 1

G3=1⊕0⊕1⊕1=1


由于发送端采用的是偶检验那么G3G2G1=000可说明传送中没有出错,G3G2G1=100转化为十进制说明海明码第4位出错,将第四位纠错后变成0110 011

原文地址:一文看懂海明校验码及其计算方法(详细总结)_被bug卡的寨庭的博客-CSDN博客_海明校验码校验位怎么计算出来的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

海明校验码 的相关文章

随机推荐

  • vim 使用set paste 解决多行复制粘贴乱序问题

    要粘贴的话 先set paste 然后粘贴 然后再set nopaste Reference https blog csdn net Dream Flying BJ article details 54708157
  • Ethere以太坊学习笔记

    以下不一定全 准确率99 1字节等于2gas 1 变量类型 是否是真 bool 数字类型 int uint 有符号和无符号整形 默认256 int8到uint256 地址类型 address 20字节长度 属性方法 send call ca
  • Sa-Token – 轻量级权限认证框架!

    本页目录 Sa Token介绍 相关链接 框架应用原理 接入权限框架 sa token Maven依赖 添加配置文件 配置全局异常捕获 开启Sa Token注解鉴权 添加事件监听器 添加角色认证 授权 使用Sa Token Demo 引入R
  • 【微信小程序系列:五】小程序适老化自动适配工具miniprogram-elder-transform---微信老年关怀模式下小程序字体适配微信字体

    1 先言 这个工具我网上基本找不到任何一篇文章说这个miniprogram elder transform的使用的 既然没有 那咱就自己写第一篇 Android字体大小标准默认16px iOS字体大小标准默认17px 个人觉得 微信用户设置
  • 【单目标优化算法】烟花优化算法(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 通
  • IPsec的主模式(Main mode)和积极模式(Aggressive mode)

    主模式和积极模式的信息交换机制不同 主模式有6条消息要交换 2个一组对称 主模式中 第1 2条信息中 双方交换了一些协商信息 如认证算法 hash 加密算法 DH组 认证机制等 第3 4条信息中 双方交换了公钥 在交换了公钥之后 就可以根据
  • 程序员面试什么最重要?

    来自 http www cnblogs com weidagang2046 archive 2013 02 15 on interview html 程序员面试一直是社区乐于讨论的热门话题 我自己从06年实习以来 先后经历了4家软件公司 全
  • 软件工程导论第六版 第五章 总体设计知识点总结

    目录 总体设计概述 目的 任务 设计过程 设计原理 什么是模块 什么是模块化 模块化的优点 模块化和软件成本 逐步求精 什么是逐步求精 Miller法则 抽象 信息隐藏和局部化 什么是信息隐藏 信息隐藏的优点 模块独立 耦合 内聚 内聚程度
  • XML基础入门:关于XML建模

    今天我给大家分享关于XML建模的基础 目录 今天我给大家分享关于XML建模的基础 一 什么是XML建模 就是将XML配置文件以模型的方式 进行输出操作 二 如何将XML建模 步骤 实例对象模型 1 ForwardModel 2 Action
  • 微信小程序支付

    微信小程序支付接口需要的参数timeStamp nonceStr package signType paySign openid是在登录时获取的 只需要调取token里的内容就可以了 点击事件通过cardid来判断与传值
  • 在blender中使用python脚本批量复制平移生成模型

    本案例需求 从基本的建筑单元按照字形平面布局生成综合建筑体 先在blender中用手工制作好一个建筑单元 名称定为 cube 然后在blender中打开一个 Text Editor 编辑窗口 在里面写入python脚本 import bpy
  • ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

    报错内容 ImportError usr lib x86 64 linux gnu libstdc so 6 version GLIBCXX 3 4 29 not found required by home lab118 anaconda
  • 图解SSL/TLS协议

    http www ruanyifeng com blog 2014 09 illustration ssl html 一 SSL协议的握手过程 开始加密通信之前 客户端和服务器首先必须建立连接和交换参数 这个过程叫做握手 handshake
  • 联想小新潮7000安装deepin 系统

    deepin 是国内比较好的开源linux操作系统 安装也比较方便 1 下载ISO镜像文件和深度启动盘制作工具 deepin官网下载ISO 启动盘制作工具下载 2 按照官网的指导 一步一步安装系统 官网指导安装过程 win10进入bios的
  • STL-set-用法

    set集合容器实现了红黑树 Red Black Tree 的平衡二叉检索树的的数据结构 在插入元素时 它会自动调整二叉树的排列 把该元素放到适当的位置 以确保每个子树根节点的键值大于左子树所有节点的键值 而小于右子树所有节点的键值 另外 还
  • 益智小游戏点灯(迷你世界lua脚本)

    点灯游戏是一个十分有趣的智力游戏 有一行N行N列的灯 开始时全部是灭的 当你点击其中一盏灯时他的上下左右 若存在的话 状态全部改变 现在要求你在限定的时间内以最少地步数 将全部的灯点亮 点灯益智游戏 作者 韩永旗 迷你号 247312290
  • Java基础读取本地txt文件

    public class TxtTest public static String txt2String File file StringBuilder result new StringBuilder try BufferedReader
  • python中冒号(:)的作用

    python中冒号 的作用 一开始接触python代码的时候冒号这个存在一直困扰了我很久 说一下我对冒号的理解 冒号 表示的就是一个整体 冒号出现在哪里就代表这个位置对整体 第一 作为整体用于输出 如在plt scatter x 0 x 1
  • 【Leetcode】142. 环形链表 II

    题目描述 142 环形链表 II 给定一个链表 返回链表开始入环的第一个节点 如果链表无环 则返回 null 为了表示给定链表中的环 我们使用整数 pos 来表示链表尾连接到链表中的位置 索引从 0 开始 如果 pos 是 1 则在该链表中
  • 海明校验码

    1 海明码的特点 其中m表示数据位的位数 k表示海明校验码的位数 k位海明校验码一共可以表示种校验信息结果 其中有一种要用来表示没有出错的情况 则其余还剩 1种结果 为了使校验结果可以指出任一位出错的位置 则需要满足以上不等式 2 举例说明