目录
步骤二:写出七个信息流对应的二进制编码,并标出校验位所对应的位置
2、接收到的数据为0100111,使用偶校验,问要求所传信息为多少,是否有错
步骤二:写出七个信息流对应的二进制编码,并将所接收信息从左往右填入
步骤四:使用偶校验检查哪一组出现问题,并得出所对应校验位上的数
一、汉明码的原理
汉明码是检查出一位错、纠一位错的编码,所以其最小码距是3。它是使用奇偶校验码来进行检验和纠错的编码。
二、汉明码的组成
汉明码是由传输的数据位和校验位共同组成的编码
三、汉明码的例题
第一种:根据所传数据算出对应的汉明码
1、使用偶校验算出0011的汉明码
步骤一:算出有几个校验位
k:校验位 n:数据位
首先使用这个公式算出传输的数据有几个校验位,其校验位放在的位置上,即1,2,4,8....
解:由题可见共有四个数据位,带入公式中算得共有三个校验位,校验位的位置分别是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。