奇偶校验码和海明码原理

奇偶校验:

不管是奇校验还是偶校验,监督位都在数据的后面,而且仅一位。如:

信息位

监督位

111001110

1

编码原理:

                                信息位

监督位

1110 0110 00

1110 0110 00

奇校验时

0

1

偶校验时

1

0

上面的形式是10位数据位+1位监督位。

奇校验,要保证插入监督码后”1“的个数为奇数,其中数据位是不变的,所以监督位置1或0;也就是说,若数据位中”1“的个数是偶数,则监督位为1;若数据位中”1“的个数是奇数,则监督位为0。

偶校验,要保证插入监督码后”1“的个数为偶数,其中数据位是不变的,所以监督位置1或0;也就是说,若数据位中”1“的个数是偶数的话,则监督0;若数据位中”1“的个数是奇数,则监督为1。
 

公式表示:

设码组长度为n,前n-1位信息码元,第n位为监督位

在偶校验时   有:

             则监督位:

在奇校验时   有:

             则监督位:

其中表示模2和,等同“异或”运算。

奇偶校验只能发现单个或者奇数个错误,而不能校测出偶数个错误,因而它的校错能力不强。

海明码:

  奇偶校验只能检错,并不能纠错,因为一位的监督码并不足以把错误的位置表示出来。海明码是一种多重(复式)奇偶检错系统。监督位的长度并不一定,信息位越长,监督位越长,因为它还要把错误的位置表示出来。

若信息长为n,信息位数为k,监督位为r=n-k。则要求:

若有两个监督位,那么两个校正字就有4种可能的组合:

00

无错

01

第一位出错

10

第二位出错

11

第三位出错

监督位不是放在信息位的后面,也不是连续的。

监督位在上,n是为整数且假如四位信息码为“1011”,怎么去求校验位的值。
海明码也分为偶校验海明码、奇校验海明码。下面采用偶校验举例。

 对信息码1011”进行海明编码:
第一步:确定校验码的个数和位置。

已知:信息位数k=4,由得最小的校验位数r=3。位置在上。P代表校验位,D代表信息位,如下:

码字位置(二进制)

1(0001)

2(0010)

3(0011)

4(0100)

5(0101)

6(0110)

7(0111)

码位类型

码值

1

0

1

1

第二步:根据关系式求出每一个校验位。

负责校验信息位,在偶校验时有

                         则:=0

负责校验信息位,在偶校验时有

                         则:=1

负责校验信息位,在偶校验时有

                         则:=0

对信息码1011”进行海明编码后为“0110011”。

  在这里的每一个校验位该负责哪几个信息位是有规律的,从上面的表格可以看出来,每一个校验码跟其负责的任一信息位的码字位置进行“与”运算等于1,根据这规律就知道每个校验位负责的所有信息位。

如: 0001)&(0001)=1     (0001)&(0101=1

     (0001)&(0110)=0     (0001)&(0111=1

所以负责的校验信息位是。同理得出

以上是发送方的处理过程,在接收方根据下面3个校验方程对接收到的信息进行奇偶测试:

A==0

B==0

C==0

以A为最低有效位,可构成二进制数CBA.

若CBA=000,即等式右边都等于0,说明没有错;若CBA=001,说明出错;若CBA=100,说明出错。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值