计算机组成原理中的汉明码(详解)

目录

一、汉明码的原理

二、汉明码的组成

三、汉明码的例题

第一种:根据所传数据算出对应的汉明码

1、使用偶校验算出0011的汉明码

步骤一:算出有几个校验位

步骤二:写出七个信息流对应的二进制编码,并标出校验位所对应的位置

步骤三:进行分组

步骤四:将传输的信息从左往右写入

步骤五:使用偶校验得出校验位是多少

步骤六:得出所传信息的汉明码

第二种:根据所接受到的汉明码进行纠错

2、接收到的数据为0100111,使用偶校验,问要求所传信息为多少,是否有错

步骤一:确定有几个信息流

步骤二:写出七个信息流对应的二进制编码,并将所接收信息从左往右填入

步骤三:进行分组(与上述分组的方法一致)

步骤四:使用偶校验检查哪一组出现问题,并得出所对应校验位上的数

步骤五: 得出哪一个位置出现错误

步骤六:得出所传数据


一、汉明码的原理

汉明码是检查出一位错、纠一位错的编码,所以其最小码距是3。它是使用奇偶校验码来进行检验和纠错的编码。

二、汉明码的组成

汉明码是由传输的数据位和校验位共同组成的编码

三、汉明码的例题

第一种:根据所传数据算出对应的汉明码

1、使用偶校验算出0011的汉明码

步骤一:算出有几个校验位

k:校验位        n:数据位

首先使用eq?2%5E%7Bk%7D%3E%3Dn+k+1这个公式算出传输的数据有几个校验位,其校验位放在eq?2%5E%7Bi%7D的位置上,即1,2,4,8...eq?2%5E%7Bi%7D.

解:由题可见共有四个数据位,带入公式中算得共有三个校验位,校验位的位置分别是1,2,4。所以共有七个信息流

步骤二:写出七个信息流对应的二进制编码,并标出校验位所对应的位置

因为表格会发生错乱,下面使用图片进行代替

 

步骤三:进行分组

分组方法:根据xx1的方式进行分组,从右往左开始数第一位有1的为一组,第二位有1的位第二组,以此类推。

所以我们将1、3、5、7分为第一组

                  2、3、6、7分为第二组

                  4、5、6、7分为第三组

步骤四:将传输的信息从左往右写入

 

步骤五:使用偶校验得出校验位是多少

第一组:因为第一组为1、3、5、7所以在表格上数的1的个数为 1,1的个数为奇数,又因为是使用偶校验进行校验所以第一个校验位上写的数为1。

第二组:因为第一组为2、3、6、7所以在表格上数的1的个数为 2,1的个数为偶数,又因为是使用偶校验进行校验所以第二个校验位上写的数为0。

第三组: 因为第一组为4、5、6、7所以在表格上数的1的个数为 2,1的个数为偶数,又因为是使用偶校验进行校验所以第三个校验位上写的数为0。

所以可得出0011的校验位为 100

步骤六:得出所传信息的汉明码

将所得校验位填入表格中可得所传信息的汉明码。

所以0011使用偶校验得到的汉明码为1000011。

第二种:根据所接受到的汉明码进行纠错

2、接收到的数据为0100111,使用偶校验,问要求所传信息为多少,是否有错

步骤一:确定有几个信息流

所接收的数据有几位就有几个信息流,由题意可得共有7个信息流。

步骤二:写出七个信息流对应的二进制编码,并将所接收信息从左往右填入

 

步骤三:进行分组(与上述分组的方法一致)

分组方法:根据xx1的方式进行分组,从右往左开始数第一位有1的为一组,第二位有1的位第二组,以此类推。

所以我们将1、3、5、7分为第一组

                  2、3、6、7分为第二组

                  4、5、6、7分为第三组

步骤四:使用偶校验检查哪一组出现问题,并得出所对应校验位上的数

第一组:因为第一组为1、3、5、7所以在表格上数的1的个数为 2,1的个数为偶数,又因为是使用偶校验进行校验所以第一个校验位上写的数为0。所以第一组没有问题。

第二组:因为第一组为2、3、6、7所以在表格上数的1的个数为 3,1的个数为奇数,又因为是使用偶校验进行校验所以第二个校验位上写的数为1。所以第二组有问题。

 第三组:因为第一组为4、5、6、7所以在表格上数的1的个数为 3,1的个数为奇数,又因为是使用偶校验进行校验所以第三个校验位上写的数为1。所以第三组有错。

所以所得校验位上的数据为110(校验位)

步骤五: 得出哪一个位置出现错误

汉明码有一个特性,就是校验位所得数的十进制为多少,那汉明码出错的位置就是校验位十进制的数。

上述校验位为110,所以是第6位出现错误。

步骤六:得出所传数据

去除校验位,改正错误的位置,可得所传数据为0101。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左岸2420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值