计算机组成原理-汉明码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

汉明码具有纠错能力和检错能力


一、码距是什么?

码距:一个编码方案中,合法码字间的最小距离

合法码字间的距离:
例如编码方案为 00 01 10 11
00 和 01 每一位的数据不同的数目 为1,即码字之间的距离为1
00 和 11 码字的距离为2
则码距为 1
码距离为 1 时,当传输数据时(00),数据发生改动时则为(01),接收方认为传输的数据为01,则没有检测能力。

二、奇偶校验

1.偶校验

偶数校验就是编码方案中中1的数目如果为奇数,则在编码前面添加1,使编码中1的数目为偶数。

例如:
00 01 10 11
采用偶校验 则更改为 000 101 110 011
码距为 :2
当传输000时,第三位的数据被影响时改为001,则接收方会检测出错误,要求重新传输。

1.奇校验

奇校验与偶校验相似

2.汉明码

由检验位和信息位构成
设欲检测的二进制代码为n位,为使其具有纠错能力,需要添加k位检测位,组成n+k位的代码。

添加的k的位数满足 :2^k >= n+k+1
检测位应放在 2^i-1的位置

设传输的信息位0101,由公式可得检测位是3位,则编码位7位
信息位设为b1,b2,b3,b4对应0,1,0,1
检测位设为 a1,a2,a3

1 2 3 4 5 6 7
a1 a2 b1 a3 b2 b3 b4

          4    2       0       
     b1 = 0     1      1 
     b2 = 1     0      1
     b3 = 1     1      0
     b4 = 1     1      1
     a1 = b1 ^b2^b4 =  0^1^1 =0
     a2 = b1^b3^b4 =   0^0^1 =1
     a3 = b2^b3^b4 =   1^0^1 = 0

故0101的汉明码位0 1 0 0 1 0 1


2.汉明码的纠错

1.若传输的汉明码是0100101,传输过程则变成了0100111
2.则纠错位 pi(i = 1, 2,4,8…)
3.纠错位为p1,p2,p4
4. p1 = a1异或b2异或b3异或b4 = 0
p2 = a2异或b1异或b3异或b4 = 1
p4 = a3异或b2异或b3异或b4 = 1
110=6即第六位出错

总结

汉明码的校验与纠错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值