海明码是一种多重奇偶检错系统,具有检错和纠错功能,由信息位和奇偶校验位组成,每个奇偶校验位和信息位被编在传输码字的特定位置上。
设海明码检验位为k,信息位为m,则应满足k+m+1≤2k。
下面以原始信息101101为例,对海明码进行推导:
(1)确定m与k的值
由于m为信息位,根据原始信息知m=6,由此k+m+1≤2k推出k≥4,即k取最小值4,总的传输码字长度为10。
(2)推导海明码
将校验位k的位置确定在1、2、4、8这4个位置上,其余位置填入信息位,得到如下所示:
K1 | K2 | K3 | K4 | ||||||
1 | 0 | 1 | 1 | 0 | 1 | ||||
L1 | L2 | L3 | L4 | L5 | L6 | L7 | L8 | L9 | L10 |
其中K1~K4为校验位,L1~L10为位置标记。
确定校验位值举例说明:
3 = 1 + 2
5 = 1 + 4
6 = 2 + 4
7 = 1 + 2 + 4
9 = 1 + 8
10 = 2 + 8
第3、5、7、9共4位使用了校验位K1
第3、6、7、10共4位使用了校验位K2
第5、6、7共3位使用了检验位K3
第9、10共2位使用了校验位K4
补全校验位,则传输码字为:
K1 | K2 | K3 | K4 | ||||||
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 |
L1 | L2 | L3 | L4 | L5 | L6 | L7 | L8 | L9 | L10 |
检错:
若接收到的码字为0010111101,重新计算K1~K4:
则K4K3K2K1=0101,转换为十进制为5,即第5位发生错误,将其翻转后得到原传输码字0010011101。