基于改进Tanner图的LDPC迭代编码方法

文档序号:7535471阅读:483来源:国知局
专利名称:基于改进Tanner图的LDPC迭代编码方法
技术领域
本发明涉及LDPC编码领域,尤其涉及基于改进Tanner图的LDPC迭代编码方法。
背景技术
LDPC码又称为Gallager码,是由Gallager于1960年首先提出并进行研究的。Gallager指出,利用迭代译码算法(或消息传递算法),LDPC码可以较低的复杂度逼近信道容量。这是一项很重大的发现,但是,在随后的三十多年里,除了几位作者,人们一直未能给予这项发现以足够的广泛重视。直至1993年,Berrou等人发现了性能近Shannon限的Turbo码以后,人们才重新发现了具有相似特征和性能的LDPC码。近年来,LDPC码的研究取得了很大的进展,其中MacKay等人拓展了Gallager关于LDPC码的定义,使其包含了“不规则码”,而Gallager当初的定义仅包含了规则码”。
LDPC码是一类特殊的线性奇偶校验块码,其奇偶校验矩阵是“稀疏”的只有很小数目的矩阵元素为1,其它元素都为0。规则码的奇偶校验矩阵具有如下特征每列包含j个元素1,每行包含k个元素1,其中j和k都是较小的正整数(k>j),且对于一类规则LDPC码来说,j和k都是固定的。若码块长度为n个比特,则规则LDPC码可以表示为(n,j,k)码。例1给出了一个(12,3,6)码的校验矩阵(此矩阵仅仅作为一个示例来说明LDPC码的原理,并非实际可用的码)。
例1一个(12,3,6)规则LDPC码的奇偶校验矩阵HH=111001100010111110000001000001110111100100011101010110111000001011001110....(1)]]>
在研究LDPC码时,通常不是关注于特定的码,而是着眼于码的全集(ensembles)。码的全集与Tanner图(双向图)的全集是一一对应的。譬如,例1中矩阵构造的LDPC码可以用图1中的Tanner图来等价地表示。左边的圆形点表示变量(variables),而右边的方形点表示约束(constraints)。换句话说,左边结点对应于校验矩阵H的每列,右边结点对应于H的每行,而左边结点和右边结点之间的连线对应于H中的非0元素(即1)。
若Tanner图中一个结点有i根连线,便说该结点的度(degree)为i。规则码的Tanner图中,左边结点(变量结点)的度均为j,右边结点(校验结点)的度均为k。而不规则码的Tanner图中,每个结点(变量结点或校验结点)的度不一定相同。LDPC码(包括规则码和不规则码)的全集可以用一对“度分布函数”(λ,ρ)来表示。其中λ表示变量结点度的分布,ρ表示校验结点度的分布。度分布函数γ(x)=∑iγixi-1是具有非负实系数的多项式,其系数满足γ(1)=1,并且系数γi的含义是连接到度为i的结点(变量结点或校验结点)的连线数与Tanner图中总的连线数的比值。LDPC码的码率r(λ,ρ)定义为r(λ,ρ)=1-∫01ρ(x)dx∫01λ(x)dx...(2)]]>在二进制输入加性白高斯噪声信道下,Chung等人构造了一类码率为1/2的不规则LDPC码,该码的最好性能门限与Shannon限仅差0.0045dB。一般说来,LDPC码相对于Turbo码来说,有以下优点1)LDPC码的译码复杂度较Turbo码低;并且,由于LDPC码译码算法中一次迭代的计算复杂度远比Turbo码译码算法中一次迭代的计算复杂度低,因此可以通过改变最大迭代次数来获得“复杂度-性能”的最佳折衷;此外,LDPC码译码可以高度并行操作。2)二进制LDPC码(本文仅考虑二进制码)的最小距离随着码块长度依逼近1的概率线性增大。3)可以根据任意码块长度和任意码率很容易地设计性能优越的LDPC码。4)LDPC码无“错误地板”现象,这使其可以应用于短帧业务。5)由于校验矩阵是随机生成的,从而已经对编码比特进行了有效的交织,所以无须额外的交织器。
但是,LDPC码却具有较高的编码复杂度,这是其经常遭受抨击的一个最主要原因。Turbo码具有线性编码复杂度,而直接实现LDPC码编码器的复杂度却与码块长度的平方成正比。除了一些文章,大部分文献都研究LDPC码的译码算法,本发明考虑其编码算法,并首次提出了改进Tanner图及基于改进Tanner图的迭代编码方法的概念。对Tanner图进行适当改进后,根据特定的校验比特初始化方案以及校验比特更新方案,迭代编码。适当选择初始化方案和更新方案可以得到较低的编码复杂度和编码延时。

发明内容
为此,本发明提出了一种一种基于改进Tanner图的LDPC迭代编码方法,其特征在于,该改进Tanner图是将Tanner图中原来的两列结点变形成三列结点,系统比特结点在最左列,中间一列为约束结点,最右列为奇偶校验比特结点,结点之间的连线保持不变;该方法包括步骤1)利用改进Tanner图,计算出仅存在系统比特结点时约束结点所对应的比特值;2)根据特定的初始化方案初始化奇偶校验比特值;3)根据特定的更新方案更新奇偶校验比特,直至得到满足校验矩阵的奇偶校验比特矢量。本发明提供了五种校验比特初始化方案和三种校验比特更新方案。通过适当选择初始化方案和更新方案可以得到较低的编码复杂度和编码延时。


下面参考附图详细描述本发明,其中图1是一个(12,3,6)规则LDPC码的Tanner图表示;图2是具有下三角形式的等价奇偶校验矩阵;图3是具有近似下三角形式的奇偶校验矩阵;
图4是(12,3,6)码的改进Tanner图。
具体实施例方式
下面分四部分介绍本发明,其中第一部分提出了改进Tanner图及迭代编码方案,也附带介绍了通常的编码方案。第二部分提出了一些校验比特初始化方案和校验比特更新方案。第三部分通过(12,3,6)码介绍了其中一对初始化方案和更新方案的编码步骤,并给出了该对方案的编码复杂度和编码延时。最后,第四部分给出了结论。
1.迭代编码当且仅当x满足HxT=0T时,x为LDPC码的一个码字,其中T表示“转置”,H是校验矩阵,x为码字矢量,0为全0矢量。可以记x=(s,p),其中s为系统比特矢量(即输入编码器的信息比特矢量),p为编码器生成的奇偶校验比特矢量。
已知校验矩阵H时,人们常常利用的方法是,根据GHT=0,利用高斯消去法,将H表示成H=[-P|Im],从而得到G=[In-m|P],进而利用x=sG得到编码后的码字,其中n-m为输入的信息比特长度,n为码字长度,m是校验比特长度,G为生成矩阵。当校验矩阵维数较大时,这种方法非常复杂。并且,当H“稀疏”时,G非常“稠密”,从而计算复杂度大大增加。此外,在实际系统中,还须存储G。
另一种方法是,通过高斯消去法,将H转化成如图2所示的下三角形式,然后将s作为系统比特直接输出,并且通过“回代法”得到校验比特p,从而得到x。这种方法也具有较大的计算复杂度和处理延时。
有文献提出,不必将H转化成图2的形式,只要能将H转化成图3的形式,再通过一些矩阵运算,就可以得到线性编码复杂度。这些编码方案都必须处理具体的校验矩阵,涉及繁杂的矩阵运算,并且需要太多的存储空间,从而不易被人接受。
1.1改进Tanner图参考图1所示的Tanner图,变量结点是由系统比特结点s和奇偶校验比特p结点组成的。编码时,s为已知的输入信息比特,p为待求的奇偶校验比特。倘若将Tanner图进行如下改进将两列结点变成三列结点,最左边结点为s结点,中间结点为原来的约束结点(校验结点),最右边的结点为p结点,结点之间的连线保留。例如,图1中的(12,3,6)码的改进Tanner图可以表示成图4。
如图4所示,左边结点s1~s6即原来的v1~v6(图1左列上6个结点),右边结点p1~p6即原来的v7~v12(图1左列下6个结点),中间结点c1~c6不变,该码的码率为1/2。
1.2迭代编码算法根据改进Tanner图,可以得到如下编码算法。
0)[预处理]由s比特的值得到c={c1,c2,...,cm}结点的值。如图4所示,c1=(s1+s2+s3+s6)mod2。
1)[校验比特初始化,具体方案见第二部分]根据特定的初始化方案给p比特赋初值d∈Fm,F=GF(2)。
2)[校验比特更新方案,具体方案见第二部分]检验各个约束结点处的约束关系是否满足;如图4所示,若c1+p1+p5=0 mod 2,则c1结点处的约束关系满足,否则,约束关系不满足;若约束关系不满足,则应根据特定的校验比特更新方案反转某些奇偶校验比特的值,使约束关系得到满足。反复执行这些操作,直至所有约束关系都满足,编码结束。
2.一些特定的奇偶校验比特初始化方案和更新方案本节提出了一些特定的初始化方案和更新方案。不同的初始化方案和不同的校验比特更新方案将会得到不同的编码复杂度和编码延时。
2.1校验比特初始化方案校验比特初始化方案的目的是,尽量减小校验比特更新步骤的迭代次数,从而减小编码延时。
方案1)由于约束结点数与校验比特结点数相同,因此,可以令p=c,即pi=ci,1≤i≤m。
方案2)根据改进Tanner图,按以下步骤进行校验比特初始化操作。先寻找与校验比特结点连线最少的约束结点,若该约束结点与校验比特结点仅有一根连线,则直接把该约束结点的值赋给与其相连的校验比特结点,然后(或者最小连线数目不为1时),根据约束关系及已有的校验比特初始值,按与校验比特结点连线数目从小到大的顺序,依次处理各个约束结点,从而得到其它初始值;在此过程中,若无法确定具体的初始值,则可以将约束结点的值,按照校验比特结点不重复赋值的原则,任意赋给与其相连的其中一个校验比特结点。该处理过程,从某种意义上说,与求解方程组有点类似。
方案3)由于LDPC码的最小距离随着码块长度增加而增大,若设最小距离与码长的比值为δ,则初始化校验比特矢量中比特0的个数,一般情况下(除了码字为全0时),不应超过(1-δ)n。因此,可以根据s比特值和δ,随机生成初始化矢量d。
方案4)较为简单的初始化方案是,因为δ值一般较小,如(n,3,6)码的δ=0.023,因此可以令p=0(全0向量)。
方案5)仿真中发现,也可以令p=1(全1向量)。
2.2校验比特更新方案校验比特更新方案直接影响到编码复杂度和编码延时。并且,应该指出的是,初始化方案影响更新方案的效率;也就是说,应恰当选择初始化方案和更新方案,使前者对后者的贡献最大化。
方案1)按照与校验比特结点连线数目从小到大的顺序,依次处理各个约束结点。当检测到约束关系满足时,称与当前约束结点相连的其中任意一个校验比特结点值为“临时正确”。当检测到约束关系不满足时,按照“临时正确”校验比特结点值不反转的原则,反转与当前约束结点相连的其中任意一个校验比特结点的值,并将该校验比特结点的值记为“临时正确”。若一个约束关系不满足,且与当前约束结点相连的校验比特结点值都是“临时正确”值,则必须任选一个校验比特结点并反转该结点值。
方案2)定义U(p)为与某个p结点相连的不满足约束关系的约束点数,则可以得到一种校验比特更新方案为a)计算所有的U(pi),1≤i≤m,并找出U值最大的p结点(一个或多个);b)同时反转a)中U值最大的p结点值;c)重复a)和b),直至所有U值都等于0。
方案3)即方案2)的改进,将b)步改为随机选择一个U值最大的p结点,并反转该结点值。
此外,还可以通过对上述初始化方案或更新方案进行略微改进,以降低计算复杂度和处理延时。如保存约束结点与校验比特结点连线数目的排列次序,等等。
3.编码复杂度和编码延时由于存在多种初始化方案和更新方案,本节并不打算考虑所有方案,而仅仅分析了初始化方案4)和更新方案2)。首先,以例1中的(12,3,6)码来简单说明迭代编码操作步骤;接着,对该对初始化方案和编码方案进行编码复杂度分析;最后,给出了例1中的(12,3,6)码的编码延时。
3.1迭代编码操作步骤当例1中的(12,3,6)码的输入信息比特s={s1,s2,s3,s4,s5,s6}={0,0,1,0,0,1}(用十进制记该信息比特序列时,该输入序列记为9)时,迭代编码操作步骤如表1所示(根据图4所示的改进Tanner图)。由s得到c,对p赋初值0,然后计算U(pi),1≤i≤m(注意每次计算U值之前,都将U值置为0),反转最大的U值对应的奇偶校验比特的值。由表1可知,对该输入比特序列进行编码只需4次迭代。

表1迭代编码操作步骤3.2编码复杂度分析根据编码步骤,我们可以得到初始化方案4)和更新方案2)对应的编码复杂度。
0)[预处理]共需计算m个c结点的值,计算每个结点值时需要(k1-1)个XOR(异或,模2加)操作,因此需要m×(k1-1)次操作(k=k1+k2,这里的操作仅仅包含模2加、加、比较、赋值操作)。
1)[初始化操作]给每个校验比特赋初值0,共需m次操作。
2)[更新]每次更新操作中,先将U值置为0(需m次操作),接着计算c结点值是否与连接到该c结点的所有p结点值之模2和相等(需m×k2次操作);设相等的概率为β,则不相等的概率为(1-β);若不相等,对每一个连接到该c结点的p结点的U值加1(需(1-β)×m×k2次操作);然后,寻找最大的U值(最多需2m-1次操作);判断最大U值是否等于0(需1次操作),若等于0,编码结束,否则,反转所有具有最大U值的p结点值(最多需2m次操作),执行下次更新。
由以上分析可知,迭代编码最多需要(5+k)×m+(1-β)×m×k2次操作。对(n,3,6)码来说,取k2=k,β=0,则最多需8.5n次操作,即O(n),所以,迭代编码具有线性复杂度;在编程实现时,也无须多的暂存空间。并且,实际操作要远远少于8.5n次运算。此外,上述更新过程还有可以优化的地方。所以,迭代编码具有线性复杂度,也无须多的暂存空间,且免去了矩阵操作。
3.3编码延时本小节以例1中的(12,3,6)码来说明编码延时(迭代次数)。需要指出的是,该码并非实际可用的LDPC码,因其对某些输入信息比特序列无法进行编码。该码的输入比特序列共有64个,其中40个序列无法编码,其余可以编码的24个序列所需的迭代次数统计如下(表2)。

表2编码延时按输入比特序列等概计算,对一个序列进行编码,统计意义上,需要3.08次迭代。可见,延时很小;对其它LDPC码的研究也表明,编码延时存在一个很小的上限(对迭代编码方案的理论分析将另文给出)。况且,也许还存在比上述初始化方案和更新方案更有效的方案。
4.结论LDPC码性能非常优越,但直接实现其编码器的复杂度较高,本文首次提出了一种基于改进Tanner图的迭代编码方案。根据不同的校验比特初始化方案和不同的校验比特更新方案,可以多种方法得到校验比特序列,然后输出信息比特序列和校验比特序列,编码即完成。由本文第三部分的分析可知,迭代编码具有线性编码复杂度,以及很小的编码延时。
权利要求
1.一种基于改进Tanner图的LDPC迭代编码方法,其特征在于,该改进Tanner图是将Tanner图中原来的两列结点变形成三列结点,系统比特结点在最左列,中间一列为约束结点,最右列为奇偶校验比特结点,结点之间的连线保持不变;该方法包括步骤1)利用改进Tanner图,计算出仅存在系统比特结点时约束结点所对应的比特值;2)根据特定的初始化方案初始化奇偶校验比特值;3)根据特定的更新方案更新奇偶校验比特,直至得到满足校验矩阵的奇偶校验比特矢量。
2.根据权利要求1的LDPC迭代编码方法,其特征在于,所述初始化方案是令奇偶校验比特结点的值等于约束结点的值。
3.根据权利要求1的LDPC迭代编码方法,其特征在于,所述初始化方案包括下述步骤寻找与奇偶校验比特结点连线最少的约束结点;若该约束结点与校验比特结点仅有一根连线,则直接把该约束结点的值赋给与其相连的校验比特结点;然后,或者在最小连线数目不为1时,根据约束关系及已有的校验比特初始值,按与校验比特结点连线数目从小到大的顺序,依次处理各个约束结点,从而得到其它初始值;若无法确定具体的初始值,则将约束结点的值,按照校验比特结点不重复赋值的原则,任意赋给与其相连的其中一个校验比特结点。
4.根据权利要求1的LDPC迭代编码方法,其特征在于,所述初始化方案是,设LDPC码的最小距离与码长的比值为δ,初始化奇偶校验比特矢量中比特0的个数,除了码字为全0时,不超过(1-δ)n,再根据系统比特值和δ,随机生成校验比特初始化矢量。
5.根据权利要求1的LDPC迭代编码方法,其特征在于,所述初始化方案是令奇偶校验比特为全0向量。
6.根据权利要求1的LDPC迭代编码方法,其特征在于,所述初始化方案是令奇偶校验比特为全1向量。
7.根据权利要求1的LDPC迭代编码方法,其特征在于,所述更新方案包括下述步骤按照与校验比特结点连线数目从小到大的顺序,依次处理各个约束结点;当检测到约束关系满足时,称与当前约束结点相连的其中任意一个校验比特结点值为“临时正确”;当检测到约束关系不满足时,按照“临时正确”校验比特结点值不反转的原则,反转与当前约束结点相连的其中任意一个校验比特结点的值,并将该校验比特结点的值记为“临时正确”;若一个约束关系不满足,且与当前约束结点相连的校验比特结点值都是“临时正确”值,则必须任选一个校验比特结点并反转该结点值。
8.根据权利要求1的LDPC迭代编码方法,其特征在于,所述更新方案包括下述步骤1)定义U(p)为与某个校验结点相连的不满足约束关系的约束点数,计算所有的U(p),并找出U值最大的校验结点;2)反转1)中U值最大的校验结点值;3)重复1)和2),直至所有U值都等于0。
9.根据权利要求1的LDPC迭代编码方法,其特征在于,所述更新方案包括下述步骤1)定义U(p)为与某个校验结点相连的不满足约束关系的约束点数,计算所有的U(p),并找出U值最大的校验结点;2)随机选择一个U值最大的校验结点,并反转该结点值;3)重复1)和2),直至所有U值都等于0。
全文摘要
本发明公开了基于改进Tanner图的LDPC迭代编码方法。本发明利用改进Tanner图,对约束结点进行预处理,根据特定的校验比特初始化方案以及特定的校验比特更新方案,迭代编码,最终得到满足校验矩阵的奇偶校验比特矢量,编码结束。本发明能够降低编码复杂度,减小存储空间,避免矩阵操作,直接降低LDPC编码器的成本。本发明可用于一切需要用硬件或软件实现LDPC编码器的场合,尤其是未来移动通信系统中,如基站,移动终端等设备。
文档编号H03M13/00GK1540871SQ0312205
公开日2004年10月27日 申请日期2003年4月24日 优先权日2003年4月24日
发明者张平, 宋挥师, 张 平 申请人:北京邮电大学, 北京三星通信技术研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1