G =[I r ,P ]= [I r ,Q T ]或H =[Q ,I r ]= [P T ,I r ] 一般的生成矩阵G 和监督矩阵H 通过初等行变换可以转化为标准的G 阵和H 阵。 (2) 线性分组码的译码 线性分组码可以通过计算伴随式(或监督子)S =RH T 进行译码。如果S=0,则接收码字无错码,否则有错。 因为H ? A T = 0T 和R =A ⊕E ,所以 S T =HR T =H(A ⊕E)T =HE T (9-5) 将H=(h 1,h 2,…,h n )代人式(9-5),可以得到 S T =h(9-6) 式(9-6)中,h i 表示监督矩阵H 的第i 列,i =1,2,…,n 。 由式(9-6),可以得到如下结论:
a.监督子仅与错误图样有关,而与发送的具体码字无关; b.若S =0,则判断没有错码出现,它表明接收的码字是一个许用码字,当然如果错码超过了纠错能力,也无法检测出错码。若S≠0,判断有错码出现; c.在纠错能力范围内,不同的错误图样具有不同的监督子,监督子是H 阵中“与错误码元相对应”的各列之和。对于纠一位错码的监督矩阵,监督子就是H 阵中与错误码元位置对应的各列。 (3) 汉明码 汉明码是能够纠正单个错误而且编码效率高的线性分组码。关于线性分组码的分析方法全部适用于汉明码。 一般说来,如果希望用r 个监督码元构造的(n ,k )线性分组码能够纠正一位错码,则要求 21r n -≥ (9-7) 汉明码满足条件 21r n -= (9-8) 汉明码的监督矩阵H 的列是由所有非零的互不相同的(n-k )重二元序列组成。如果码字中哪一位发生错误,其伴随式就是H 中该列的列矢量。 5. 循环码 在线性分组码中,有一种重要的码称为循环码(cyclic code)。它是在严密的代数学理论基础上建立起来的。这种码的编码和解码设备都不太复杂,而且检纠错的能力较强。循环码除了具有线性码的一般性 质外,还具有循环性。循环性是指任一码组循环一位(即将最右端的一个码元移至左端,或反之)以后,仍为该码中的一个码组。 (1) 码多项式 在代数编码理论中,为了便于计算,通常用多项式去描述循环码,它把码组 中各码元当作是一个多项式(poly-nomial)的系数,即把一个长度为n 的码组表示成 121210()n n n n T x a x a x a x a ----=++++ (9-9) 在循环码中,若T (x )是一个长为n 的许用码组,则x i ﹒T (x )在按模x n +1运算下,也是该编码中的一个许用码组,即若 ) (模)1()()(+'≡?n i x x T x T x (9-10) 则T '(x )也是该编码中的一个许用码组。 (2) 生成多项式 在一个(n , k )循环码中,有一个且仅有一个次数为(n-k )的多项式: 111()11n k n k n k g x x a x a x -----=?+++ (9-11) 称此g (x )为该循环码的生成多项式。g (x )表示该循环码的前(k -1)位皆为“0”的码组。g (x )有如下性质: a. g (x )是一个常数项为1,最高次数为(n -k )次,且是x n +1的一个因式。 b. 所有码多项式T (x )都可被g (x )整除,而且任意一个次数不大于(k -1)的多项式乘g (x )都是码多项式。 (3) 生成矩阵G 在循环码中,一个(n , k )码有2k 个不同的码组。若用g (x )表示其中前(k -1)位皆为“0”的码组,则g (x ),xg (x ),x 2g (x ),?,x k-1g (x )都是码组,而且这k 个码组是线性无关的。因此它们可以用来构成此 循环码的生成矩阵G 。一旦确定了g (x ),则整个(n , k )循环码就被确定了。 因此,循环码的生成矩阵G 可以写成 12()()()()()k k x g x x g x x xg x g x --?????? ? ?=???????? G (9-12) 由于上面的生成矩阵不是标准阵,这样编码得到的码字一般不是系统码。 (4) 系统循环码的编码思路 a. 用信息码元的多项式m (x )表示信息码元。 b. 用x n - k 乘m (x ),得到 x n - k m (x )。 c. 用g (x )除x n - k m (x ),得到商Q (x )和余式r (x ),即 ()()()()() n k x m x r x Q x g x g x -=+ (9-13) d. 编出的码组()T x 为 ()()()n k T x x m x r x -=+ (9-14) (5) 循环码的译码 接收端可以将接收码组R (x )用原生成多项式g (x )去除。当传输中未发生错误 时,接收码组与发送码组相同,即R (x ) = T (x ),故接收码组R (x )必定能被g (x )整除;若码组在传输中发生错误,则R (x ) ≠ T (x ),R (x )被g (x )除时可能除不尽而有余项,从而发现错误。 纠正错码相对复杂。因此,原则上纠错可按下述步骤进行: a. 用生成多项式g (x )除接收码组R (x ),得出余式r (x )。 b. 按余式r (x ),用查表的方法或通过某种计算得到错误图样E (x );例如,通过计算校正子S 和表中的关系,就可以确定错码的位置。 c. 从R(x )中减去E (x ),便得到已经纠正错码的原发送码组T (x )。 6. 卷积码 卷积码是指把信源输出的信息序列,以k 个信息码元划分为一组,通过编码器输出长为n (≥k )的码段。与线性分组码不同的是:卷积码的子码中(n -k )个监督码不仅与本组的信息码元有关,而且也与其前 m 组的信息码元有关。一般用(n ,k ,m )表示,其中m 为编码存储器,它表示输入信息在编码器中需存储的单位时间。编码效率R =k /n 。 类似于线性分组码,卷积码的输入序列A =[…a k-2 a k-1 a k a k+1…],输出序列0:10:20:31:11:21:32:12:22:3[,,,,,,,,,]C c c c c c c c c c =,监督矩阵H ∞和生成矩阵G ∞具有下列关系 ,0,0T T T C MG H C G H ∞∞∞∞==?= (9-15) 卷积码可以采用解析表示法,即采用码的生成矩阵、监督矩阵和码的多项式 来计算分析。此外,由于卷积码的特点,还可以采用图形表示法来研究,即从树状图、网格图和状态图的观点进行研究。 卷积码的译码方法主要有三种:序列译码、大数逻辑解码(门限译码)和概率解码(最大似然译码)。 9.1.2 难点 本章的难点主要有汉明码的特点及检验接收码组B 是否出错的方法。