汉明编码的校验,个人学习笔记

本小妞迷上赌 提交于 2020-01-06 20:40:06

根据汉明编码的纠正

首先了解汉明码的组成,设欲检测的二进制代码为n位,需要添加k位检测位,组成n+k位的代码
他们的关系是 2^k>=n+k+1

代码长度n与检测位数k的关系

n k
1 2
2~4 3
5~11 4
12~26 5

确定K位后,设n+k位二进制代码从左向右的顺序依次位1,2,3,4,5,……n+k位

(1)将k位的检测位记作Ci(i=1,2,4,8,16……),分别安插在n+k位二进制代码的1,2,4,8位上。
(2)C1即二进制代码中第一位为1的,如1,11,101,111,1001,1011等(1,3,5,7,9,……)
C2即二进制代码中第二位为1的,如10,11,110,111,1010,1011等(2,3,6,7,10,11)
C4即二进制代码中第三位为1的,如100,101,111,1100,1101等(4,5,6,7,12,……)
C8即二进制代码中第四位为1的,如1000,1001,1011,1111等(8,9,10,11,12,……)

(3) 实际C1就是安排在n+k位二进制代码的第1位上,C2是第2位,C4是第4位,C8是第8位,以此类推
在配奇/配偶时,C1=第1,3,5,7,9位相加
C2=第2,3,5,7,9位相加以此类推

安插顺序如下,例如欲检测的代码为4位,则需要安插3位检测位,计算方法为2^k>=n+k+1,
即2 ^k>=k+4+1,k=3。
所以安插的检测位为C1,C2.C4
C1检测第1位,C2检测第2位,C4检测第4位
原二进制代码设为B4B3B2B1
在这里插入图片描述

奇偶检测任务

配奇/配偶?
配奇就是要求检测位上的“1”的个数为奇
配偶就是要求检测位上的“1”的个数为偶

例题

设欲检测码为1100111,按配奇原则来配置汉明码,求汉明码
因为欲检测二进制代码为7位,则2^k>=n+k+1,得出k=4
那么安插的检测位为
在这里插入图片描述
在这里插入图片描述
C1=第1,3,5,7,9,11位相加,即C1+1+1+0+1+1=1,所以C1=1
C2=第2,3,6,7,10,11位相加,即C2+1+0+0+1+1=1,所以C2=0
C4=第4,5,6,7位相加,即C4+1+0+0=1,所以C4=0
C8=第8,9,10,11位相加,即C8+1+1+1=1,所以C8=0
所以1100111的汉明码为10101000111
在这里插入图片描述

汉明码的纠错过程

已知接收到的汉明码为0100111(按配偶原则),则欲传送的信息是?
因为接收到的汉明码是7位,由上表可求得需插入的检测位k=3,每个检测位上“1”的个数为偶
C1=第1,3,5,7位相加,即C1+B4+B3+B1=0,0+B4+B3+B1=0,其中两个1或无1
C2=第2,3,6,7位相加,即C2+B4+B2+B1=0,1+B4+B2+B1=0,其中一个1或三个1
C4=第4,5,6,7位相加,即C4+B3+B2+B1=0,0+B3+B2+B1=0,其中两个1或无1
得出结果是B4=0,B3=1,B2=0,B1=1
所以欲传送的信息是0101
在这里插入图片描述
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!