目录
差错控制编码的基本思想是在发送端被传送的信息中附加一些冗余比特(称为监督码元),这些多余的码元与信息码元之间以某种确定的规则相互关联约束;接受端通过检验这种既定的规则来获知是否有错码产生,进而纠正这些错码。不同的编码方法,有不同的检纠错能力。一般而言,所付出的代价越大(即增加的监督码元越多),纠检错的能力就越强。
在前向纠错(FEC)的系统当中,发送端信道编码器将输入的数据序列变成能够纠正错误的码序列,接收端译码器则根据编码法则检验出错误发生的位置并自动给予纠正。这种纠错方式不需要反向信道反馈,特别适合用于只能提供单向信道的场合当中。由于能够自动纠错,不要求检错和重发,因此时延性小,实时性较好。但值得注意的是,所选择纠错码必须和信道的错误特性密切的配合,否则很难能够达到降低错码率的性能要求;当我们需要纠正较多的错误码时,就要求附加更多的监督码,则导致译码设备复杂,传输效率不如人意。
汉明码是一种高效的线性分组码,特别适用于纠正单比特错误。对于一个(8,4)汉明码,意味着编码后的信息共有8位,其中包含4位信息位和4位校验位。
1.(8,4)汉明码
(8,4)汉明码编码的目标是在给定的4位信息位上添加足够的校验位,使得编码后的8位码字能够检测并纠正单个比特错误。为了实现这一点,我们采用特定的校验位安排,使得任何两位校验位都不同时处于同一个汉明距离为1的位置上。对于(8,4)汉明码,可以将8位分为两组,每组4位,且每组内的两个位置分别对应于信息位的奇偶校验。
(8,4)汉明码是前向纠错码,它可以在无需重新发射的情况下检测出有限个错码,并加以纠正,借此来改善通信系统的性能。在分组编码器中,4个信息比特被编成8个比特,从而增加了4个冗余比特(监督比特),用来检测和纠正错误。(8,4)汉明码,顾名思义就是码长为8位,信息位和监督位各4位的汉明码,与我们熟悉的(7,4)汉明码相比,(8,4)扩展汉明码是由(7,4)汉明码加一位全校验位得到的。它的码字(a7,a6,a5,a4,a3,a2,a1,a0)中的前七位码元(a7,a6,a5,a4,a3,a2,a1)是汉明码的一个码字,a0是全校验位。其码元结构可以由图来表示:
2.(8,4)汉明码的基本原理
2.1基本构造
用S0、S1、S2、S3表示由四个监督方程式计算得到的校正子,并假设四位S0、S1、S2、S3校正子码组与误码位置的对应关系如表所示。
S3S2S1S0 | 错码位置 | S1S2S3 | 错码位置 |
0001 | a0 | 0111 | a4 |
0011 | al | 1011 | a5 |
0101 | a2 | 1101 | a6 |
1001 | a3 | 1111 | a7 |
由表可知,当误码位置在a7、a6、a5、a3时,校正子S3=1;否则S3=0。因此有S3=a7⊕a6⊕a5⊕a3,同理有S2=a7⊕a6⊕a4⊕a2和S1=a7⊕a5⊕a4⊕a1和S0=a7⊕a6⊕a5⊕a4⊕a3⊕a2⊕a1⊕a0编码时a7、a6、a5、a4为信息码元,a3、a2、a1、a0为监督码元。则监督码元可由以下监督方程唯一确定
由上面方程可得到表所示的16个许用码组。在接收端收到每个码组后,计算出S3S2S1S0,如果不全为0,则表示存在错误,可以由表1确定错误位置并予以纠正。
信息位 | 监督位 | 信息位 | 监督位 |
a6a5a4a3 | a2a1a0 | a6a5a4a3 | a2a1a0 |
0000 0001 0010 0011 0100 0101 0110 0111 | 0000 0111 1011 1100 1101 1010 0110 0001 | 1000 1001 1010 1011 1100 1101 1110 1111 | 1110 1001 0101 0010 0011 0100 1000 1111 |
2.2监督矩阵
线性码是指信息位和监督位满足一组线性代数方程的码,现在将它改写成:
可以将上式表示成如下的矩阵形式:
上式还可以简记为 H*AT=0T 或 A*HT=0 其中:
上角“T”表示将矩阵转置。例如HT是H的转置,即HT的第一行为H的第一列,第二行为第二列。我们将H称为监督矩阵,只要监督矩阵H给定,编码时监督位和信息位的关系就完全确定了。由上式都可以看出,H的行数就是监督关系式的数目r,H的每一行中的“1”的位置表示相应码元之间存在的监督关系。
2.3 生成矩阵
由我们所学的代数理论知识可知,H矩阵的的各行应是线性无关的,否则就得不到r个线性不相关的监督关系式,从而也得不到r个相互独立的监督位。假如一矩阵可以写成PIr的形式,则其各行则一定是线性无关的。因为很容易验证到Ir的各行为线性不相关的,所以PIr的各行也为线性无关的。