汉明码编码的纠错原理

汉明码编码的纠错原理

 

1.        简介:

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。

2.        汉明码的定义和汉明码不等式:

设:m=数据位数,k=校验位数为,n=总编码位数=m+k,有Hamming不等式:


1.   汉明码不等式含义:

a)      总数据长度为N,如果每一位数据是否错误都要记录,就需要N位来存储。

b)      每个校验位都可以表示:对或错;校验位共K位,共可表示2k种状态

c)        总编码长度为N,所以包含某一位错和全对共N+1种状态。

d)      所以2k≧N+1

e)        数据表见下


2.   Hamming码缺点:

无法实现2位或2位以上的纠错,Hamming码只能实现一位纠错。

3.   以典型的4位数据编码为例,演示汉明码的工作过程

a)   数据存储格式:


依照此前的汉明码不等式计算出,当数据位为4位时,汉明码校验位至少为3位,如上方式排列

可以看的出D8、D4、D2、D1中的数字都是2的整数幂

b)   汉明校验码的插入规律:

l  设:编码位代号k,校验码位代号p,数据位代号n

l  某个校验码Pp将处于整个编码的第k位

l  k=2^(p-1)=2的(p-1)次方

l  以数据位为5的一组9位数编码为例,如下:


c)   校验位与数据位的对应关系:

注:^是逻辑运算符异或.

P1=D8^D4^D1

P2=D8^D2^D1

P3=D4^D2^D1

小解释:数据位共4位每行等式都缺少一位,而缺少的这位数据位正好是DX,等式左边的校验位为PY,X=2y.

d)   校验位如何参与计算:

P1’=P1^D8^D4^D1

P2’=P2^D8^D2^D1

P3’=P3^D4^D2^D1

从高到低排列的二进制数:P3’ P2’ P1’表示的就是出错的编码位,从000-011-101-110-111共5种组合,可表示原数据位D8D4D2D1某一位错&没错的一共5种状态.

e)   设有一数字为:1101,带入运算:

l  D8=1、D4=1、D2=0、D1=1,

l  P1 =1,P2=0、P3=0。

l  汉明码处理的结果就是1010101

l  假设:D8出错,P3’P2’ P1’=011=十进制的3,即表示编码后第三位出错,对照存储格式表,果然就是D8错误.

l  假设:D4错误,P3’P2’ P1’=101=十进制的5,即表示编码后第五位出错,对照存储格式表,果然就是D4错误.

 

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
汉明码是一种用于数据传输的纠错编码,通过添加冗余的校验位来检测和纠正传输中的错误。 汉明码原理是采用二进制反射码的形式,在数据位上加上冗余的校验位。每个校验位检查一定数量的数据位,校验位的值为所有被检查的数据位的和的奇偶性。如果某个数据位在传输过程中发生了错误,检验位就会检测到错误并进行纠正。 汉明码的分析主要从以下几个方面来看: 1. 错误检测能力:汉明码的错误检测能力是通过添加的校验位来实现的。对于一个n位的汉明码,它可以检测到所有单一错误,但无法检测到所有的双重错误。通常情况下,汉明码的检测能力与其校验位的数量有关,校验位越多,检测能力越强。 2. 纠错能力:汉明码纠错能力是通过校验位的奇偶性来实现的。如果发现一个校验位的值与实际的数据位值不一致,那么就可以确定这个数据位存在错误,并进行纠正。但是,汉明码只能纠正单一错误,无法纠正多个错误。 3. 编码效率:汉明码编码效率与其校验位的数量有关。校验位越多,编码效率越低。因此,为了提高编码效率,需要在错误检测和纠错能力之间进行权衡,选择适当的校验位数量。 总的来说,汉明码是一种简单而有效的纠错编码,可以在数据传输过程中检测和纠正错误,提高数据传输的可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值