数字逻辑过程考核:汉明码的的编码及校验(个人附奇偶校验方法) 您所在的位置:网站首页 汉明码的优缺点 数字逻辑过程考核:汉明码的的编码及校验(个人附奇偶校验方法)

数字逻辑过程考核:汉明码的的编码及校验(个人附奇偶校验方法)

2024-07-10 08:38| 来源: 网络整理| 查看: 265

汉明码的的编码及校验(个人附奇偶校验方法)

一.汉明码实现原理及应用 汉明码是广泛用于内存和磁盘纠错的编码,是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误,这样不仅可以用来检测转移数据时发生的错误,还可以用来修正错误。(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法正确和发现)。

二.预备知识 1.冗余位 “冗余位”是一种二进制位,它被用来添加到需要传输的数据信息中,以确保信息在传输过程中不会发生丢失或者改变。对于“冗余位”究竟需要多少位这个问题,我们有一个公式可以用来计算: 在这里插入图片描述

2.奇校验和偶校验 奇校验:在奇校验检测方式中,对于需要发送的数据信息比特,检查其中1的个数。如果这串比特中1的个数是奇数,为了保证加上“冗余位“后,””整串数据中1的个数最后为奇数,可想而知,冗余位上应该设置为“0”。如果在没有添加“冗余位”之前,数据比特流中的1的个数为偶数,那么为了最后把1的个数凑成一个奇数,冗余位上应该设置为1.

偶校验:在偶校验检测方式中,对于需要发送的数据信息比特,仍然检查其中1的个数。如果这串比特中1的个数是奇数,为了保证加上“冗余位“后,””整串数据中1的个数最后为偶数,可想而知,冗余位上应该设置为“1”。如果在没有添加“冗余位”之前,数据比特流中的1的个数为偶数,那么为了最后把1的个数凑成一个偶数,冗余位上应该设置为0. 图片演示: 在这里插入图片描述

三.汉明码的编码方式 在这里插入图片描述在这里插入图片描述

在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

下面分为两种方法进行校验{奇校验和偶校验(手写)}: 奇校验 在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

四.汉明码的校验和修正及应用 接上面已经写好的汉明码,但是我是接收方 接收者收到了一串汉明码,怎样用汉明码的性质来检错呢?

在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

置反后:10111000101,去掉奇偶校验位得:1011001

同理,当我们使用偶校验时候: 依然是传输数据:1011001(方框中的红笔是奇偶校验位) 在这里插入图片描述在这里插入图片描述 在这里插入图片描述

汉明码是一种编码效率极高的差错控制码,汉明码及扩展汉明码广泛应用于数据存储系统中,也用于通信系统,它的纠错功能很实用,能给人们的数据存储工作和运输带来便捷。

五.汉明码的纠错原理 它的原理可以通过一个例子来说明。 因为在传输过程中,最最最可能的是只错一位数据,所以, 汉明码默认一串数据只错一位 我们假设想传这一列数据1234567,我们先把他们分个组(当然怎么分组的我们等会儿再讨论),如图。 在这里插入图片描述

P1组:1,2,3,4 P2组:2,4,5,7 P3组:3,4,6,7 我们约定,哪一个组出错了,就给这个组做一个1的标志。 要记得,只错一个数据。 比如,这次的情况是,P1组中有一个错了,P2组没错,P3组没错。 嗯,好,现在我们看图,我们看, P2组里谁都没错,可以排除2,4,5,7这几个数据; P3组里谁都没错,可以排除3,4,6,7这几个数据; 那么P1组里我们知道是有错的,那经过P2,P3组的对数据的排除,我们很容易知道,是1这个数据有了错误。

好,那么错一个组的情况我们讨论过了,那么错两组的情况呢? 假设P1中有个错了,P2中有个错了,P3全对了 好,同时属于P1和P2而且不属于P3的数据是哪个?对,看图,是2这个数据。

好,那么三个组的情况呢? 同时属于P1、P2、P3组的数据是谁呢?对,是4这个数据。

好,这种分组,这种方式是不是很爽呢?汉明码就是利用了这种分组,这样它就可以很简单地分辨出哪一个数据出错,这种可以检测出数据出错的能力叫做“检错”。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有