其中码字向量C=[Cn-1,Cn-2,...,C0],C是C得转置。H是一个r行n列矩阵,
在hη中,i代表行号,j代表列号。
H称为线性分组码的一致校验矩阵(Parity Check Matrix),其意义为:
(1) H矩阵的每一行代表一个线性方程的系数,表示求一个校验元的线性方程。
(2) H矩阵必须有r行,且各行之间必须线性无关。
(3) 若C中各元素是满足由H所确定的r个线性方程的解,故C是一个码字;反之,若C中各元素组成一个码字,则一定满足由H所确定的;个线性方程。故C是方程 和 的解的集合。显然,H一定,便可由信息元求出校验元,编码问题迎刃而解。
3.2.2 生成矩阵
由于(n,k)线性分组码的2k个码字组成了n文向量空间的一个k文子空间,因此这2k个码字完全可以由k个独立的向量所组成的基底张成。设此k个向量为;
将他们写成矩阵形式;
(n,k)码中的任何码字,均可由这组基底的线性组合生成。即
式中m=(mn-1mn-2...mn-k)是k个信息元组成的信息组。
这就是说,每给定一个信息组,通过式(3-6)便可求得其相应的码字。故称k个基底所构成的k×n阶矩阵G为(n, k)码的生成矩阵(Generator Matrix),并称这k个线性无关的基底为生成码(n,k) .G 的含义为:
(1)一般(n,k) 码的生成矩阵是一个k行n列的矩阵。
(2)一个(n,k) 码生成矩阵的k行就是k个线性无关的码字,它们的线性组合生成(n ,k)码全部qk个码字。因此,找到了G,也就解决了编码问题。
(3)作为码的生成矩阵G可以不止一种形式,但都生成同一个(n,k)码。
(4) H和G彼此正交,即GHT=0或HGT=0。
3.3 线性分组码的译码
只要找到了H矩阵或G矩阵,便解决了编码问题。经编码后发送的码字,由于信道干扰可能出错,收方要发现或纠正错误,这就是译码问题。
设发送的码字为 ,信道产生的错误模式为E=(en-1en-2...e1e0),而接收码字为 ,那么R=C+E,即有 ,el∈GF(q)或GF(2)。译码的任务就是要从R中求出E,从而得到C=R-E。
由于(n,k)码的任何一个码字C均满足式(3-2)或(3-3),将接收码字用二式之一进行检验,如RHT=(C+E)HT=CHT+EHT=EHT。
定义3.5;设(n,k)码的一致校验矩阵为H,R是发送码字C的接收向量,称;
S=RHT=EHT
为接收向量R的伴随或校正子(Syndrome)。
显然 ,若 E=0,则S=0,那么R就是C;若E≠0,则S≠0,如能从S得到E,则由C=R-E即可恢复发送的码字。可见,S仅与E有关,它充分反映了信道千扰的情况,而与发送的是什么码字无关。
可以 将(n ,k)码的一致校验矩阵写成列向量的形式;
式中hn-i对应H矩阵的第i列,它是一个r=n-k重列向量。若码字传送发生t个错误,且是码字的第i1,i2,...,it位有错,则错误模式可表示成E=(0...ei1 0...ei2 0...eit 0...0),那么伴随式;
这说明:S是H矩阵中E不等于0的那几列hn-i的线性组合。因hn-i是r重列向量,故S也是一个r重向量。当传输没有错误时,即E的各位均为0时,S是一个r重全零向量。
值得注意的是,若E本身就是一个码字,即E∈Vnk,则S必然等于0。此时的错误不能被发现,也无法纠正,称之为不可检错误模式。
由上述讨论可以得出,译码的步骤为:
(1) 计算接收向量的伴随式Si=RiHT;
(2) 找到对应的错误模式Ej;
(3) 通过Ri-Ej=Ci;从而实现纠错。
3.4 李德-索罗蒙(RS)码
3.4.1 RS码基本原理
李德-索罗蒙(Reed-Solomon)码是根据它的两个发明人Reed和Solomon的名字命名的。它是一种重要的线性编码方式,有较强的纠错能力,被DVB标准采用。在(n, k)RS码中,输入信号分成k•m比特为一组,每组包括k个符号,每个符号由m个比特组成。 Matlab的线性分组码及其子码的设计与仿真(9):http://www.youerw.com/tongxin/lunwen_2568.html