海明纠错码

一个重要的不等式

海明纠错码允许最多一位出错并用数个不同带有不同参数的异或函数的出错组合,来唯一标识出错的位号。这是我认为海明纠错码的核心原理。4个异或函数组成 4 2 4^2 42不同的情况。能够标识16个数据位,当然,没必要用到所有的组合,选取若干满足需求就可以了。

一个n位码字通常包含m位数据位和r位检验位。每个有效码字(n位01组合是有含义的)对应与其海明距离为1的n种编码。m位数据位可组成 2 m 2^m 2m位有效码字,而n位可组成 2 n 2^n 2n种组合情况。那么有 2 m ∗ ( n + 1 ) < = 2 n 2^m*(n+1)<=2^n 2m(n+1)<=2n,进而可推导出: 2 r > = m + r + 1 2^r>=m+r+1 2r>=m+r+1,看那!这给出了m位数据位所需的最少检验位。

检验位分配和用法

检验位怎么分配呢?海明码的检验位不是连续的,而是分配在位号为2的整数幂的位上( 1 = 2 0 , 2 = 2 1 . . . . 1=2^0,2=2^1.... 1=20,2=21....),位号从1开始。

检验位的用法用实例来说明比较好:

有个码字为11位,7个数据位,4个检验位。假如检验11位正不正确,就把它化成2的整数幂的和形式:11=1+2+8,位号11的检验将与检验位1,2,8有关。

检验位的分配表格
r k 代 表 检 验 位 , d k 代 表 数 据 位 r_k代表检验位,d_k代表数据位 rkdk

位号 r 1 r_1 r1 r 2 r_2 r2 r 4 r_4 r4 r 8 r_8 r8
r 1 r_1 r11000
r 2 r_2 r20100
d 3 d_3 d31100
r 4 r_4 r40010
d 5 d_5 d51010
d 6 d_6 d60110
d 7 d_7 d71110
r 8 r_8 r80001
d 9 d_9 d91001
d 10 d_{10} d100101
d 11 d_{11} d111101

PS:
1代表检验位,0代表非本位的检验位

这个表格怎么看?

11=1+2+8,检验位1,2,8是第11位的校验位。则看 d 11 d_{11} d11那一行, r 1 , r 2 , r 4 = 1 r_1,r_2,r_4=1 r1,r2,r4=1

设下出错情况

要强调奇校验和偶校验的概念,还是原来的11位码字。
如果要传输码字1000001,计算校验位1,2,4,8。
这是一个典型的问题:
我们做出一个异或函数,这个异或函数的参数是校验位 r k r_k rk参与校验的所有码位(上表中纵向来看, r 1 r_1 r1列中不为1的位)和校验位。我们把此集合称为 G r k G_{r_k} Grk
即异或函数 X O R ( G r k ) XOR(G_{r_k}) XOR(Grk)的表示如下:
X O R ( G r k ) = r k ⊕ d 1 ⊕ d 2 . . . . ⊕ d n XOR(G_{r_k})=r_k\oplus d_1 \oplus d_2....\oplus d_n XOR(Grk)=rkd1d2....dn
G r k . s i z e = n , d i ∈ G r k , i ∈ [ 1 , n ] G_{r_k}.size=n,d_i \in G_{r_k},i\in[1,n] Grk.size=n,diGrk,i[1,n]

如果采用奇校验,则 X O R ( G r k ) = 1 , k ∈ [ 1 , r ] XOR(G_{r_k})=1,k\in[1,r] XOR(Grk)=1,k[1,r];
如果采用偶校验,则 X O R ( G r k ) = 0 , k ∈ [ 1 , r ] XOR(G_{r_k})=0,k\in[1,r] XOR(Grk)=0,k[1,r];
你可以看到,校验位的结果是由参数中1的个数所决定的。本例中,校验位 r 8 r_8 r8校验 d 9 , d 10 , d 11 = 001 d_9,d_{10},d_{11}=001 d9,d10,d11=001,若采用奇校验,则 r 1 = 0 r_1=0 r1=0,因为要保持异或函数结果为1。偶校验 r 8 = 1 r_8=1 r8=1

根据上述方法,采用偶校验可以算出完整的码字:00100001001

纠错

就像原来说的那样,4个校验位有16种错误组合。假如接收方的码字种最多被限制一个位出错,则表格从横向来看,一种错误组合可唯一标识一个码位出错。

d 7 = 0 d_7=0 d7=0出错变成1,参与计算异或函数 X O R ( G r 1 ) , X O R ( G r 2 ) , X O R ( G r 4 ) = 1 XOR(G_{r_1}),XOR(G_{r_2}),XOR(G_{r_4})=1 XOR(Gr1),XOR(Gr2),XOR(Gr4)=1,对应校验位 r 1 , r 2 , r 4 r_1,r_2,r_4 r1,r2,r4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值