由于LDPC好码的构造比较复杂,而且现有的置信传播迭代译码算法还比较复杂,所以工程应用很少。
3 线性分组码
3.1 线性分组码的基本概念
线性分组码中的分组是指编码方法是按信息分组来进行的,而线性则是指编码规律即监督位与信息位之间的关系遵从线性规律。
线性分组码是一组固定长度的类奇偶校验码组,可表示为(n , k),通常它用于前向纠错。编码器将一个k比特信息分组(信息矢量)转变为一个更长的由给定元素符号集组成的n比特编码分组。当这个符号集包含两个元素(0和1),与二进制相对,称为二进制编码。
在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。当分组码的信息码元与监督码元之间的关系为线性关系时,这种分组码就称为线性分组码。
对于长度为n的二进制线性分组码,它有2n种可能的码组,从2n种码组中,可以选择M=2k个码组(k<n)组成一种码。这样,一个k比特信息的线性分组码可以映射到一个长度为n码组上,该码组是从M=2k个码组构成的码集中选出来的,这样剩下的码组就可以对这个分组码进行检错或纠错。
线性分组码是建立在代数群论基础之上的,各许用码的集合构成了代数学中的群,它们的主要性质如下:
(1)任意两许用码之和(对于二进制码,这个和的含义是模二和)仍为一许用码,也就是说,线性分组码具有封闭性;
(2)码组间的最小码距等于非零码的最小码重。
3.2 几种主要的线性分组码
线性分组码种类众多,下面对其中的典型代表进行简单介绍。
3.2.1汉明码
当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R. W. Hamming发明,因此定名为汉明码。
与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。汉明码利用奇偶块的机制降低了前向纠错的成本。
进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0,反之,增加一个1作为校验位。通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。
利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。校验位的数目与传输数据的总位数有关,可以通过汉明规则进行计算:
(3-1)
d表示传输数据位数目,p表示校验位数目。两部分合称汉明码字,通过将数据位与一个生成矩阵相乘,可以生成汉明码字。
3.2.2循环码
循环码是有循环移位特性且能纠错的分组码,循环码是线性分组码的一个重要子类,且任一个码字循环移位以后,仍为该码中的一个码字。
码元位置多项式变换:一个序列或向量的多项式描述,即: Matlab循环码在不同信道中性能仿真研究+流程图(8):http://www.youerw.com/tongxin/lunwen_351.html