海明码,码距,海明校验码

海明校验码是由RichardHamming于1950年提出、目前还被广泛采用的一种很有效的校验方法。它的实现原理,是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新的码字的码距比较均匀地拉大。
这种海明校验的方法只能检测和纠正一位出错的情况。所以如果有多个错误,就不能查出了。

什么是码距?

两个码组对应位上数字的不同位的个数称为码组的距离,简称码距,又称海明(Hamming)距离。
计算码距的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数。
例如110和011这两个位串,对它们进行异或运算,其结果是:
110⊕011=101;
异或结果中含有两个1,因此110和011之间的码距就等于2。
简单来说,就是,两对应相同位数的不同即码距+1,从首位开始对应;
例如00110和00100码距为1,12345和13344码距为2,Caus和Daun码距为2,1011001和10110110码距d=2

校验码

海明校验码公式(假设为k个数据位设置r个校验位
2^r-1>=k+r(能得知r和k的关系)

码:101

k=3
2^r-r>=k+1=4
易错点:2^r=r个2相乘,不是2乘r
选最小的码距
最小r为3
海明码长度:r+k=3+3=6

注意:海明校验码是放在2的幂次位上的,即“1,2,4,8,16,32······
所以校验码位数有规律,相对码位对应相对的校验码位数
1: 2
2~4: 3
5~11: 4
12~26: 5
27~57: 6
58~120:7

海明吗1234567
1,2,4是校验位,3,5,6,7是数据位
那么101:
信息位的位置分配是从高位到低位依次存放
第一个1是表格的第6位

123456
101
r1r2r3

校验原则:被校验的海明位的下标等于所有参与校验该为的校验位的下标之和

1r1
2r2`
3=1+2r1,r21
4r3
5=4+1r3,r10
6=4+2r3,r21

同0,异1

r1:101 =1//101是校验了3、5、6
r2:10=1
r3:01=1

按照从低位到高位的排列顺序得到海明码:111101

那么码为1,怎么求海明码?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值