专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

海明码是什么意思(海明码纠错校验例题详解)

来源:小易整编  作者:小易  发布时间:2023-02-14 05:22
摘要:海明码是什么意思(海明码纠错校验例题详解)一、什么是海明码海明码是在原数据中的一些固定位置,插入一个0(或1),以进行奇(或偶)校验位,虽然使原数据变长,但可使其拥有纠错能力。能侦测并更正一个比特的错误;若有两个比特出错,则只能侦测,不能更...

海明码是什么意思(海明码纠错校验例题详解)

一、什么是海明码

海明码是在原数据中的一些固定位置,插入一个0(或1),以进行奇(或偶)校验位,虽然使原数据变长,但可使其拥有纠错能力。

能侦测并更正一个比特的错误;

若有两个比特出错,则只能侦测,不能更正;

若有三个或更多的比特出错,则不能侦测,更不能更正。

二、海明码简述

  • 假设 数据位为 n 位,校验位有 k 位,则海明码有 n + k 位,且 n 和 k 需满足 2 − 1 ≥ n + k 等式( 可以用 2k − 1 > n 简化计算 )。如:

当 n = 8 时,则 k = 4 ;

当 n = 16 时,则 k = 5 。

  • 用符号 D 代表数据位,P 代表校验位,H 代表海明码,则 P = 2−1 ,也就是说 第 i 个校验位在海明码的第 2−1 个位置上。当确定好校验位在海明码的位置之后,剩下的位置则由数据位进行填充。(也就是2的幂次方位上)

  • 每一位海明码都会被校验到,其中,被校验的海明码它的下标等于参与校验的所有检验码下标之和( 对应存放 D 时 ),而校验位由自身校验( 对应存放 P 时 )。

海明码是什么意思(海明码纠错校验例题详解)

如上:校验位p由自己校验,数据位H(x)由最靠近自己的校验位P(i)对应的数据位H(i)加上最近的检验位P(i)前面的校验位P(j)对应的数据位H(j),即H(x)=H(i+j)

如:H11前一位P4对应H8,则应该加上H3,由于H3是数据位,则往前推,加上H2和H1,分别对应P4 P2 P1

海明码是什么意思(海明码纠错校验例题详解)

海明码是什么意思(海明码纠错校验例题详解)

异或运算的规则是:

0 ⨁ 0 = 0 0 ⨁ 1 = 1

1 ⨁ 1 = 0 1 ⨁ 0 = 1

三、海明码纠错

接收端在接收到海明码后,对将校验位 P 与其相对应的数据位 D 进行异或运算,并根据运算结果生成编码结果 G4G3G2G1(这里还是以数据位 8 位时举例,若是 16 位,则结果为 G5G4G3G2G1)。

海明码是什么意思(海明码纠错校验例题详解)

注意观察 P 和后面的 D 组数据之间的关系,如果进行偶检验,没有错误时,G4、G3、G2、G1 应该全为0( 奇校验时无错全为1 )。不全为0则说明发生了错误,且 G4、G3、G2、G1的值化成十进制值 m 就指出了海明码的第 m 个位置出现了错误,如 G4、G3、G2、G1 = 1110 说明海明码 H7出现了错误。

四、示例

若要传输的值为10101101,则根据上述校验值P(a)为0100,假设传输中出现差错,接收方,接收值为10100101,则当前校验值P(b)为0011,P(a)与P(b)异或运算后值G为0111,换算为十进制值为7,则可知第七位H7出错,将该位求反,即0求反为1,接收差错值可由10100101纠错为正确值10101101


H12

H11

H10

H9

H8

H7

H6

H5

H4

H3

H2

H1


D7

D6

D5

D4

P4

D3

D2

D1

P3

D0

P2

P1

数据

1

0

1

0


1

1

0


1



校验值A





0




1


0

0

接收值

1

0

1

0


0

1

0


1



接收后校验值B





0




0


1

1

AB异或运算G





0




1


1

1


本文地址:IT问答频道 https://www.hkm168.com/itwenda/903075.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • c语言是什么意思

    c语言是什么意思

    一:c语言是什么意思C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言,以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低...

  • 2k屏幕是什么意思

    2k屏幕是什么意思

    2k屏幕是指分辨率能够达到2560*1440的屏幕。2k是一个通用术语,指屏幕或者内容的水平分辨率达约2000像素的分辨率等级;又因“16:9”的比例是高清晰度视频规格的国际标准,所以2k分辨率在视频制作、显示屏等领域常见格式为2560*1...

  • nargin在matlab里面啥意思

    nargin在matlab里面啥意思

    nargin为“numberofinputarguments”的缩写。在matlab中定义一个函数时,在函数体内部,nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入helpnargin或者docnarg...

  • HTML5中nav是什么意思

    HTML5中nav是什么意思

    在html5中,nav全称“navigation”,中文意思为“导航”,是一个导航标签,用于表示html页面中的导航;nav标签会定义一个含有导航链接的区域,语法“链接...”。本教程操作环境:windows7系统、HTML5版、Dell...

  • wifi连接速度什么意思

    wifi连接速度什么意思

    wifi中的连接速度是数据理论传输速度。wifi连接速度与上网速度不是同一个概念,wifi连接速度必须大于上网速度才稳定。wifi连接速度是路由器与上网设备连接的速度,一般现在主流的路由器都在150M以上,而上网速度是指运营商提供的网络接口...

  • 天马屏是什么意思

    天马屏是什么意思

    天马屏是指用天马微电子股份有限公司生产的液晶面板所装配的屏幕;天马微电子股份有限公司是一家在全球范围内提供客制化显示解决方案和快速服务支持的创新型科技企业。本教程操作环境:MIUI12.5系统,小米11手机。天马屏是什么意思?天马屏是指用天...

  • 手机盾是什么意思

    手机盾是什么意思

    手机盾就是用手机实现传统u盾(usbkey)功能的手机密码技术,不依赖硬件密码芯片,用软件实现可靠的密码设备、密码运算和ca数字证书等全部功能,是实现移动互联网应用安全的核心技术。手机盾为移动互联网应用提供了密码运算支撑能力,用于身份认证、...

  • root是什么意思

    root是什么意思

    root具有设备系统中的所有权限,是存在于unix中和类unix中中的唯一用户,并且掌握系统底层以及系统文件,可以对系统进行启动或停止等功能。本教程操作环境:linux5.9.8系统、DellG3电脑。root是什么?很多人都听说过roo...

  • 周排行
  • 月排行
  • 年排行

精彩推荐