非规则码的产生,使规则LDPC码的定义产生了变化。在非规则码中,度的变化范围很大,往往最大度可达几十或上百,因此,我们更广泛地把度的变化很微小的LDPC码都称之为规则的。
3 LDPC码的编码算法
3.1 基于生成矩阵的编码算法 (线性分组码编码)
设 m×n 的较验矩阵H 的所有行都是线性无关的。根据分组码定义,对于 输入信源u,u,编码后得到的码字c,c,满足方程:
H = 0
为了在接受端易于区分信息位和校验位,通常采用系统码。但是,对于任意一个随机构造的校验矩阵H,它具有非系统码的形式,因此首先需要对给定的校验矩阵H进行行列变换,分解成的形式,其中A为m (n - m)维的矩阵, B为mm的满秩矩阵,则码字c=满足
即 Au + Bp = 0
因此,得到校验位p = -Au
其中“-”表示向量- Au的逆元,在二进制编码中逆元是其本身。
3. 2基于校验矩阵的编码算法 (LU 分解法)
利用矩阵 B 的系数特性,对校验位p = -B-1Au的求解采用以下方法:首先对 B 矩阵进行 LU 分解,即 B = LU,其中 L 为下三角矩阵,U 为上三角矩阵,则校验位满足LUp = -Au,然后通过以下步骤计算校验位:
1.z = Au,由于A是稀疏矩阵,所以计算复杂度正比于m。 2.令Up = y,则Ly = -z,通过前向递归运算得到y 的值。 3.通过后向递归运算,解方程Up = y 得到校验位p。
3.3基于校验矩阵的编码算法(RU算法)
在对LDPC码进行编码的时候,人们希望校验矩阵是下三角矩阵,如图3.1
所表示。但在实际情况中,校验矩阵往往不能化为下三角矩阵。Richardson和Urbankc在提出了一种很好的编码算法,即RU算法。
RU算法仅仅通过行列置换将一般的低密度奇偶校验矩阵化为一个近似
下三角矩阵,可以使编码复杂度从高斯消元法的o(m2)降为o(n+92),其中g为近似下三角矩阵与下三角矩阵的差距,并且在最恶劣的情况下,它也只是与码长行的一小部分成比例。
首先,通过行变换与列变换的方法将奇偶检验矩阵重新排列为近似下三角形式,如图3.2所示。由于原矩阵J5r非常稀疏,而且在矩阵变换中只有行列交换,因此变换后的校验矩阵仍是稀疏矩阵,A、B、C、D、E、T分别是(m-g)(n-m)、(m-g)g、g(n-m)、g g、g(m-g)、(m-g)(m-g)维稀疏矩阵。并且T是下三角矩阵矩阵且对角线上的元素全部为l。
H= (3-2)
长度为k=n-m的信源向量s被编码成一个码字向量x=(s,,),、分别定义一
个校验向量,长为g,长为m-g。编码步骤如下:
1、
计算信源向量的上校正子
=A (3-3) 2、
找出第二个校验向量的临时值,使得上校正子为零
= (3-4)
通过回代算法可以在线性时间内得出这个向量,即计算的第一个比特,然后是第二个比特,然后是第三个,如此等等。
3、计算向量的下校正子
(3-5) 4、现在准备求第一个检验向量。
定义矩阵F=-EB+D并求出它的逆矩阵,这个计算只需要完成一次 而它的复杂度O(),这个逆矩阵是一个gxg维高密度矩阵。
设第一个校验向量为
(3-6)
这个操作的复杂度为o()。注意这时找第一个校验向量的正确值。
5、抛弃临时检验向量西并找出新的上校正子
(3-7)
这也可以在线性时间内完成。
6、求出第二个检验向量的值,使得上校正子为零
(3-8)
这个向量可以用回代算法在线性时间内求出。 计算,的复杂度如表3,1和表3.2所示。
表3.1计算的复杂度
操 作 A 复 杂 度 O(n) O(n) O(n) O(n) 矩阵的求逆运算 高密度矩阵和向量相乘 备 注 稀疏矩阵和向量相乘 稀疏矩阵和向量相乘 稀疏矩阵和向量相乘 向量的减法运算
表3.2计算的复杂度
操 作 A A+ 复 杂 度 O(n) O(n) O(n) 备 注 稀疏矩阵和向量相乘 稀疏矩阵和向量相乘 稀疏矩阵和向量相乘 向量的加法运算 - (A+) O(n) 稀疏矩阵和向量相乘 例 2.4 一个(12,3,6)LDPC 码的校验矩阵如下:
将列重新按下序排列:1,2,3,4,5,6,7,10,11,12,8,9 得到一个g =2的近似下三角矩阵为
用高斯消元法消去矩阵 E ,得到
可以看到
矩阵U 是奇异矩阵,这种奇异性可以通过交换列5,8 来消除。于是最终列的排序为:1,2,3,4,10,6,7,5,11,12,8,9。对应的等价矩阵为
假设待编码的信息比特为s = (1 0 0 0 0 0),按照上述步骤计算:
-1TT????-ETAs?Cs??????01? -1TTT?U-1?-ETAs+Cs?01=P ??1??TT根据得到的计算
TT??As?????Bp1????1001? TTTT?1??As?Bp1????1010?=p2
TT因此编码得到的码字为
?sp1p2???100000011010?
将上述码字代入式(2.4)进行检验,得到HcT = 0,因此满足校验方程。上述有效编码方法,利用了校验矩阵的稀疏性,适用于任何基于稀疏校验矩阵的编码。
4 LDPC码的译码概述
LDPC码具有良好性能的重要原因之一是LDPC码采用了基于置信传播的迭
代译码算法,这是一种迭代概率译码算法,是LDPC码与传统纠错码的重要区别。