海明码题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
海明码:通常讨论的海明码,是一种可以纠正一位错的编码。
思路:是利用在k位信息位中增加r位冗余位,构成一个长度n=k+r的码子
编码效率:R=k/(k+r)
海明码生成步骤:
1、根据信息位确定校验位长度
规则:满足公式2r>=k+r+1的最小r就是校验位数,其中k为信息位长度
如:信息位为8位,则校验位满足2r>=8+r+1,可得到最小r=4,也就是说校验位要有4位
2、长度确定就可以求校验位
校验位r n的位置为2n(也就是说都是2的倍数),其余位置由信息位填充
例:上述信息位为8位,得到校验位应为4位,在校验位和信息和按照如下表格确定在最终
I1
I2的位置为5=4+1=22+20
I3的位置为6=4+2=22+21
I4的位置为7=4+2+1=22+21+20
I5的位置为9=8+1=23+20
I6的位置为10=8+2=23+21
I7的位置为11=8+2+1=23+21+20
I8的位置为12=8+4=23+22
r n的值等于上述可被r n校验的各个信息位数据的模二相加之和:
r0=I1+ I2+ I4+ I5+ I7(模二相加)
3、纠错和检错机制
题目:信息位8位的海明码,在接收到报文1100 1010 0000,判断传输是否出错,如果是错误的,求出发送端发送的信息位。
1)根据信息位长,可知道校验位长4
2)根据接收到的报文填充如下的表格
3)由表可知:信息位数据位-11000100 校验位数据-1000
4)根据信息位,结合上面分析的验证关系,可计算出发送端的校验位(模二加法)r’3= I8+ I7+ I6+ I5=1+1+0+0=0
r’2= I8+ I4+ I3+ I2=1+0+1+0=0
r’1= I7+ I6+ I4+ I3 + I1=1+0+0+1=0
r’0= I7+ I5+ I4+ I2+ I1=1+0+0+0+0=1
接收端可根据以下关系验证是否出错(模二加法)
S3= r3+ r’3=1+0=1
S2= r2+ r’2=0+0=0
S1= r1+ r’1=0+0=0
S0= r0+ r’0=0+1=1
最后得到监督位:S3 S2 S1 S0 如果结果全0 表示接收正确,非全0则将之转化为十进制,其对应位置就是出错的信息位,将出错的信息位取反即可得到正确的数据上述结果非全0,二进制为:1001,对应十进制为9,即表明接收到的数据的第9位出错,也就是I5出错,将之由0改为1,可得到发送端信息位为:11010100