Hamming纠错原理

  Hamming码是一种多重(复式)奇偶检错系统,是由Richard Hamming于1950年提出、目前还被广泛采用的一种很有效的校验方法。它将信息用逻辑形式编码,只要增加少数几个校验位,就能检测出一位出错并自动改正,即实现自动纠错。它的实现原理,是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

一.校验位的位数 

校验位的位数与有效信息的长度有关。设N为校验码的位数,K是有效信息位,r为校验位,若要能够自动纠正一位传输错误,海明码应满足N=Kr2r1。若r=3,则N=Kr7,所以K4;若要传输的是7ASCII码,则需要至少4位校验位。

二.分组原则

在海明码中,位号数(123……n)为2n的那些位,即:1(20)2(21)4(22)8(23)…2r-1位,作为奇偶校验位,记作: P1P2P3 P4…Pr,余下各位则为有效信息位。

例如:当N=11K=7r=4时,相应海明码可示意为:

位号

1

2

3

4

5

6

7

8

9

10

11

P占位

P1

P2

×

P3

×

×

×

P4

×

×

×

其中×均为有效信息,海明码中的每一位分别被P1P2P3P4Pr中的若干位所校验,其规律是:第i位由校验位位号之和等于i的那些校验位所校验。如第7位,由P1,P2,P4(因为7 = 1 + 2 + 4)所检验。

 从而,可以得出每个检验位检验的位号如下表所示:

检验位位号

被检验位位号

P1

1, 3, 5, 7, 9, 11

P2

2, 3, 6, 7, 10, 11

P3

4, 5, 7, 7

P4

8, 9, 10, 11

三.编码、查错、纠错原理

1.编码原理(采用偶校验)

    若有效信息为1001000,先将它们依次填入3,56,79,10,11位。

位号

1

2

3

4

5

6

7

8

9

10

11

P占位

P1

P2

1

P3

0

0

1

P4

0

0

0

再依次计算P1,P2,P3,P4的值。如P1的取值应保证1, 3, 5, 7, 9, 116个位上1的个数为偶数,故P1的值应为0;类似的P2P3P4的值分别为0,10

位号

1

2

3

4

5

6

7

8

9

10

11

P占位

0

0

1

1

0

0

1

0

0

0

0


2.查错与纠错

因为分四组校验,每组产生一位检错信息,共4位检错信息,构成一个指误字,记为:G4G3G2G1。其中:Gi由被Pi所检验的那些位中1的个数来决定,若1的个数为偶数,则Gi的值为0(因为编码时采用的是偶检验),否则为1。如G11, 3, 5, 7, 9, 11位中1的个数来决定。

G4G3G2G10000,则表示没有出错;如有错,则G4G3G2G1形成的十进制数,即为错误所在位。由于每一位要么为0,要么为1,故可以实现自动纠正。

假设接受方收到的数据为:00110010000,计算可得G1G2G3G40000,表明数据是正确的,去掉校验位后,可得实际数据为:1001000

假设接受方收到的数据为:00110110000,计算可得G4G3G2G10110,表明第6位出现了错误,故可纠正为0

  注意:Hamming纠错码只能准确纠正仅有一位出错的情况。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值