海明码原理

一、什么是海明码

-->海明码是一种有纠错能力的二进制编码。(海明码又称汉明码,以发明者理查德·卫斯里·汉明Richard Wesley Hamming的名字命名)

注意:海明码分为奇校验海明码和偶校验海明码

 

二、海明码的格式(形式,组成)

-->海明码由数据码,校验码组成,n = r + k  (n为海明码的位数,r为检验码的位数,k为数据码的位数)

-->校验码的位置必须在2^{r}的位置上,如1,2,4,8,16...

-->校验码的位数必须满足 2^{r}-1\geqslant n 或 2^{r}\geqslant k+r+1  (r为检验码的位数,k为数据码的位数,n为海明码的位数)

如:7位数据码,构成一个海明码需要r个校验码,套入上述公式得出r = 4
则:海明码的位数为7 + 4 = 11, 格式为 r r k r k k k r k k k (r为校验码,k为数据码)

 

三、计算确定校验码

-->以上述的7位数据码为例,将其海明码进行编号:

r1 r2 k1 r3 k2 k3 k4 r4 k5 k6 k7  #这里序号从左到右,序号从左还是从右开始都可以,与不同的传输标准有关,提前说明即可

-->假设7位数据码为1101001,海明码为:

r1 r2 1 r3 1 0 1 r4 0 0 1  #这里序号从左到右,序号从左还是从右开始都可以,提前说明即可

-->通过位置的二进制编码计算校验码

海明码

r1

r2

1

r3

1

0

 1 

r4

0

0

1

位置二进制编码

1

10 

11

100

101

110

111

1000

1001

1010

1011

计算r1涉及的数

(位置倒数第一位是1)

 

 

 

 

 

计算r2涉及的数

(位置倒数第二位是1)

 

√  

 

 

 

 

计算r3涉及的数

(位置倒数第三位是1)

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值