海明码编码原理及其解释

一.纠正一位错的海明码的位数k的选取必须符合下式:

                             

当信息位为8位时,海明码校验码共有4位,而当信息位为20位时,其校验码需要5位。这是理论上进行纠错需要用到的最少位。解释:k位的纠错码能指明的位置最多为个,即从0...01...1,除去0...0表示第0位出错(没有错误),再减去纠错码本身占用k位,则其能编码的最大位数m满足

二.海明码编码的基本思想就是利用纠错码的变化情况指明具体是哪一位编码在传输过程中出错。那么怎样实现这个目标呢?我们考虑到利用二进制来传输的数据每一位的具体位置,然后通过观察描述位置的二进制编码的变化情况就可以检测出具体是哪一位错误了。可能这样子说很抽象那么我们看一下信息位为8位,海明校验码为四位时的具体情况。海明码和信息位的放置规律如图所示


海明码(i=1,2,...,k)排在第位,然后将数据位依照从低到高的顺序填在剩余的空间里,构成H1~H12。其中Ci的确定方法如下:


三.当接收方收到信息T`后,对T`依据同样的异或规则重新计算校验码。然后对接收到的C1C2C3C4和新计算出的C1`C2`C3`C4`进行按位异或运算,如果结果全为0,则传输无误,如果结果不为0,则计算的结果对应的十进制就表明了错误发生的位置,如结果为0101这表示第5位出错也就是D2出错。

四.解释

1).C1C1`进行异或如果传输过程中H3,H5,H7,H9,H11均没出错那么结果一定为0,如果H3,H5,H7,H9,H11中有一位传输过程中出错那么结果一定为1。因为我们假设的前提是传输过程中只能发生一位出错的情况。如果传输过程中没有出错那么就相当于,由于其每一个数字均出现两次那么异或结果一定为0,但是一位出错则单了一位那么结果一定为1,于是便能检测出H3H5H7H9H11中必有一位错误。

2).我们观察C1,H3的二进制编码0011H5的二进制编码0101H7的二进制编码0111H9的二进制编码1001H11的二进制编码1011。发现表示其位置的二进制码最后一位均为1,那么是不是就意味着位置编码最后一位为1的出错时我们能通过检测C1异或C1`发现呢。同理看C2标记的位置0011,0110,0111,1010,1011。意味着表示位置的二进制编码倒数第二位为1的出错时我们能通过检测C2异或C2`发现。

3).于是乎我们能得到这样一个结论对于位置的二进制编码第K位出错则CK异或CK`1,没错就为0。那么我们得到的Cn异或Cn` Cn-1异或Cn-1` ....C1异或C1`这一串数字就表示具体的那个位置出错。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值