第二章 汉明码校验原理 4
种状态。
2.1.2 构造汉明码冗余位和监督关系式的方法
一个简单奇偶校验码的设计思路为:若信息位为k?n?1位,表示为a1~an?1,加上一位偶校验位(冗余位) a0,构成一个n位的码字a0~an?1,在接收端校验时,可按以下关系式来计算:
s?a0?a1?a2?若s?0,则无错;若s?1,则有错。
?an?1
(2-2)
上式(2-2)可称为监督关系式,s称为校正因子。在奇偶校验情况下,只有一个监督关系式和一个校正因子,其取值只有两种(0或1),分别代表了无错和有错的情况,而不能指出差错所在的位置。若增加冗余位,也相应地增加监督关系式和校正因子,就能区分更多的情况。
对于k?7时汉明码冗余位和监督关系式的具体构造过程和方法如下: 因为2r?k?r?1且k?7,所以r?4,即至少需要4位冗余码,对应产生4个校正因子和4个监督关系式,形成24?16种不同取值,用其中11种分别表示无错和
a0~a10中一位错的情况。构造表如下表2.1所示。
表2.1 冗余和监督关系式的构造表
a0a1a2a3a4a5a6a7a8a9a10
s0 1 0 0 0 0 0 0 0 1 1 1 s1 0 1 0 0 0 1 1 1 0 0 0 s2 0 0 1 0 1 0 1 1 0 1 1 s3 0 0 0 1 1 1 0 1 1 0 1由表2.1可知冗余码为:
a0?a8?a9?a10 a1?a5?a6?a7
(2-3) (2-4)
第二章 汉明码校验原理 5
监督关系式为:
a2?a4?a6?a7? a9(2-5) (2-6)
a3?a4?a5?a7?a8?a10
s0?a0?a8?a9?a10
(2-7) (2-8) (2-9) (2-10)
s1?a1?a5?a6?a7 s2?a2?a4?a6?a7?a9 s3?a3?a4?a5?a7?a8
2.1.3 构造校正因子和监督关系式时应遵循的原则
汉明码是线性分组码,[n,k]线性分组码的编码设计就是在满足给定条件(如码距)下,如何从已知的k个信息元中求出r?n?k个校验元。要计算出校验元,就要先求出汉明码校验矩阵。
在上表2.1中,构造4个校正因子和4个监督关系式的过程中,必须应遵守的原则是:表2.1中共有11列,每一列应保证各不相同,即s0s1s2s3的16种组合中, 取
\组合表示无错,剩下15种中取其中11种用来表示a0~a10中某一位出错的情况。
2.1.4 错码与S0S1S2S3的对应关系
表2.2 错码与校正因子s0s1s2s3的对应关系表
s0s1s2s3000010000100001000010011010101100111100110101011
一位错无错a0a1a2a3a4a5a6a7a8a9a10因为每一个校正因子都是由一个冗余码和构成该冗余码的表达式构成,如:
a0?a8?a9?a10,且s0?a0?a8?a9?a10正好是由两个相等的两部分构成的,所以在
第二章 汉明码校验原理 6
所接收的码字是正确的情况下,每一个校正因子都应该是“0”,当然s0s1s2s3的16种组合中,“0000”组合表示无错,而当一位出错时,如a7出错时, 因为a7同时出现在(2-8) 、(2-9)、(2-10) 三个表达式中,所以s1s2s3同时都受到影响,都由“0”变成了“1”,而s0没变,仍是“0”,在接收方,正是通过重新计算s0s1s2s3,根据s0s1s2s3?0111,可知是a7错。
值得注意的是,由于是采用偶性测试的办法。所以接收方如果同时出现了偶数个错误,那么将不能正确地被检出,但是出现这种情况概率很小。
2.2汉明码校验方法的实现
2.2.1 汉明编码
设要传输的(12,8)汉明码为C,C??C1C2? 其中C1??c1c2
c3c4c5c6c7c8?为已知有效数据;
C2??c9c10c11c12?为检验码。 检验规则矩阵为:
?0?0H???1??101010110011010111010101111001000010000100?0?? 0??1?
因为
HCT?0
(2-11)
则:
?c5?c6?c7?c8?c9 ??c?c?c?c?c ??234810??0 ?c1?c3?c4?c6?c7?c11???c?c?c?c?c?c?1245712?(2-12)
第二章 汉明码校验原理 7
因为ci?0,1(i?112),这里的加法运算等价于逻辑异或。 故:
?c9??c5?c6?c7?c8 ??c??c?c?c?c ?348? ?10???2?c11??c1?c3?c4?c6?c7?????c?c?c?c?cc2457??12??1 (2-13)
这样用式(2-13)计算出c9,c10,c11,c12四位汉明检错位,就完成了八位数据的汉明编码。
2.2.2 汉明解码与纠错
已知发送端送出的汉明码为C,假设接收端收到的信息为R,且R??R1其中:
R2?,
R1??r1r2r3r4r5r6r7r8?为收到的八位信息;
R2??r9r10r11r12?为收到的检验码。 设信道中的干扰向量为E。且
E??e1e2e3e4e5e6e7e8e9e10e11e12? ei?0,1;有错位ei?1,否则ei?0;i?1~12。 则
R?C?E (2-14) (2-15)
C?R?E
根据汉明编码规则,取S为伴随向量
S??s1s2s3s4?
则
ST?HRT?HET
(2-16)
所以,伴随向量仅与干扰向量的变化有关。这样根据E的变化,就可以得出伴随向量S对应于错误向量E的一位错误代码表。
相关推荐: