一种基于矩阵格的BIBD-LDPC码构造方法与流程

文档序号:14776224发布日期:2018-06-23 03:24阅读:571来源:国知局
一种基于矩阵格的BIBD-LDPC码构造方法与流程

本发明涉及通信技术领域,具体是一种基于矩阵格(Rectangle Lattice,简称RL)的平衡不完全区组设计(Balanced Incomplete Block Design,简称BIBD) -低密度奇偶校验(Low Density Parity-Check,简称LDPC)码构造方法。



背景技术:

LDPC码是由Gallager博士于1962年首次提出的一种线性分组码,LDPC码在采用置信传播算法译码时,具有逼近香农限的优异译码性能,被广泛应用于 DVB-S2、WiMax及深空通信等多种通信标准中。然而LDPC码在高信噪比区域的错误平层问题严重地限制了其在某些特殊领域的应用。一般地,陷阱集是造成错误平层的主要原因,而基本陷阱集的危害在所有陷阱集中最为严重,为此许多专家学者展开了大量的研究,通过分析陷阱集与错误平层之间的密切关系,探讨如何通过限制陷阱集的产生达到降低甚至消除错误平层。

从改进LDPC码的角度出发,Tao X等分析了坦纳图中八环与小陷阱集的关系,发现通过避免特定的八环能够完全消除小陷阱集,进而构造出低错误平层的 LDPC码,但是却加大了码的设计复杂度;Heng Tang等人提出通过组合特性来搜索出码字中可能存在的所有陷阱集,然后对这种特殊结构进行分析;Abu-Surra S 等人提出一种类似的方法,在增大原始Tanner图的基础上,采用重量枚举的方法对陷阱集的数量及种类进行统计,但是该方法会造成计算机资源的大量消耗,极大地缩小了应用范围;M.Ivkovic等人以增加陷阱集大小为目标,在两个或两个以上相同的复制码之间进行边的置换,消除小陷阱集。以上试图通过改进码字拓扑结构以达到降低错误平层的方法,原理是抑制陷阱集的生成,适用于任何码字,但是却加大了码的设计复杂度,且无法根除陷阱集,对错误平层的改善有限; Vasic B等人提出了采用Tanner图覆盖的方法来消除LDPC码中的陷阱集,错误平层有所改善,不过需要提前得知陷阱集的组合特性;Asvadi等人基于环提升思想,通过消除LDPC码中的短环进而避免大部分陷阱集;Khazraie S等人以PEG 算法为基础,在每次添加新边时都会搜索是否会生成基本陷阱集,然而寻找陷阱集任务量过于庞大,虽然至今为止已经有许多高效的搜索算法相继出现,仍然造成了计算机资源的浪费。



技术实现要素:

本发明的目的是针对现有技术的不足,而提供一种基于矩阵格的BIBD-LDPC 码构造方法。这种方法将码字构造问题转化为矩阵格中的建立新边问题,依次消除陷阱集,在保证较少存储空间的条件下,构造出具备低错误平层特性的LDPC 码。

实现本发明目的的技术方案是:

一种基于矩阵格的BIBD-LDPC码构造方法,包括如下步骤:

1)初始化:对于(v,k,λ)-BIBD中的有序列(V,B),其中V是由v个元素组成的集合,被分为b个子块,所有的子块构成集合B,若集合B中的所有子块能够按照其对应矩形格中斜率分为m个平行类,则称B是可分解的,每个平行类称为可分解类,令B(s)为可分解类,对应于某一斜率s,B'为由一系列可分解类的集合,对应于斜率集Ψ,表示为B'=∪s∪ΨB(s),Ψ'为不可分解类所对应斜率组成的集合,初始化s=0,Ψ={s},B'=B(s),Ψ'={1,2,…,m-1};

2)添加直线:如果集合Ψ'中含有矩阵格中某一或若干斜率,逐次向可分解类中添加直线;

3)检测添加直线后BIBD-LDPC码的围长:若围长不小于10,则将该直线的斜率添加到斜率集Ψ中;否则斜率加1,继续添加直线;

4)检测直线组的斜率是否满足陷阱集约束条件公式(1)、(2)、(3)和公式 (4):检测直线组的斜率是否满足陷阱集约束条件,若满足,则将该直线的斜率添加到斜率集Ψ中;否则斜率加1,继续添加直线;

5)得到最大斜率集:当斜率集Ψ中的元素个数饱和后停止添加,此时得到的斜率集Ψ即是最大斜率集Ψ;

6)构造BIBD-LDPC码:根据最大斜率集Ψ按照BIBD设计方案构造LDPC码,令函数κ(Ψ,m)表示所选取的斜率是否满足上述步骤2)、3)、4)约束,g(V,B) 表示有序对(V,B)对应LDPC的围长,围长不小于10。

步骤4)中所述的陷阱集约束条件公式(1)为:

s0+s4-2s1=0(mod m),其中s0、s1、s4为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(2)为:

(s0-s1)-(s3-s2)≠0(mod m),其中s0、s1、s2、s3、为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(3)为:

其中s0、s1、s2、s3、s4为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(4)为:

公式中的s0、s2、为k=3,m=5时矩阵格内直线的斜率,sx为由(4,4)陷阱集生成(5,3)陷阱集时添加直线lx的斜率。

这种方法将码字构造问题转化为矩阵格中的建立新边问题,依次消除陷阱集,在保证较少存储空间的条件下,构造出具备低错误平层特性的LDPC码。

附图说明

图1为实施例的方法流程示意图;

图2为实施例中(15,3,1)-BIBD对应的校验矩阵H;

图3为实施例中m=5和k=3时的矩阵网格示意图;

图4-1、图4-2、图4-3、图4-4、图4-5、图4-6、图4-7、图4-8、图4-9为实施例中四种陷阱集在矩形格中的表示图;

图5为实施例中由(4,4)陷阱集所衍生的各种子陷阱集关系图;

图6为实施例中(4,4)陷阱集生成(5,3)与(6,4)陷阱集的点线图表示;

图7为实施例中Mackay码在三种不同译码算法下的误码率比较图。

具体实施方式

下面结合附图和实施例对本发明内容作进一步的阐述,但不是对本发明的限定。

实施例:

参照图1,一种基于矩阵格的BIBD-LDPC码构造方法,包括如下步骤:

1)初始化:对于(v,k,λ)-BIBD中的有序列(V,B),其中V是由v个元素组成的集合,被分为b个子块,所有的子块构成集合B,若集合B中的所有子块能够按照其对应矩形格中斜率分为m个平行类,则称B是可分解的,每个平行类称为可分解类,令B(s)为可分解类,对应于某一斜率s,B'为由一系列可分解类的集合,对应于斜率集Ψ,表示为B'=Us∈ΨB(s),Ψ'为不可分解类所对应斜率组成的集合,初始化s=0,Ψ={s},B'=B(s),Ψ'={1,2,…,m-1};

2)添加直线:如果集合Ψ'中含有矩阵格中某一或若干斜率,逐次向可分解类中添加直线;

3)检测添加直线后BIBD-LDPC码的围长:若围长不小于10,则将该直线的斜率添加到斜率集Ψ中;否则斜率加1,继续添加直线;

4)检测直线组的斜率是否满足陷阱集约束条件公式(1)、(2)、(3)和公式 (4):检测直线组的斜率是否满足陷阱集约束条件,若满足,则将该直线的斜率添加到斜率集Ψ中;否则斜率加1,继续添加直线;

5)得到最大斜率集:当斜率集Ψ中的元素个数饱和后停止添加,此时得到的斜率集Ψ即是最大斜率集Ψ;

6)构造BIBD-LDPC码:根据最大斜率集Ψ按照BIBD设计方案构造LDPC码,令函数κ(Ψ,m)表示所选取的斜率是否满足上述步骤2)、3)、4)约束,g(V,B) 表示有序对(V,B)对应LDPC的围长,围长不小于10。

步骤4)中所述的陷阱集约束条件公式(1)为:

s0+s4-2s1=0(mod m),其中s0、s1、s4为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(2)为:

(s0-s1)-(s3-s2)≠0(mod m),其中s0、s1、s2、s3、为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(3)为:

其中s0、s1、s2、s3、s4为k=3,m=5时矩阵格内直线的斜率。

步骤4)中所述的陷阱集约束条件公式(4)为:

公式中的s0、s2、为k=3,m=5时矩阵格内直线的斜率,sx为由(4,4)陷阱集生成(5,3)陷阱集时添加直线lx的斜率。

本技术方案设计的原则是:集合Ψ应含有尽量多的元素s,这直接影响LDPC 码的围长,要求围长不小于10。

如果直接采用暴力搜索的方式寻找(15,3,1)-BIBD所对应矩阵格中的最大Ψ,整个搜索算法的复杂度为v的指数级,可行性不大,鉴于此,本技术方案提出一种多项式算法来生成最大斜率集Ψ,算法步骤包括斜率的选取、判断、再判断和剔除,确保只有满足陷阱集约束条件的斜率才能添加进Ψ中,则本技术方案中方法的伪代码如下所示:

具体地:

图2为实施例中实施例中(15,3,1)-BIBD对应的校验矩阵H,矩阵整数格构造法以平衡不完全区组设计为基础,将一个参数为(v,k,λ)的BIBD定义为一个有序对 (V,B),其中V是由v个元素组成的集合,V被分为b个子块,所有的子块构成集合B,分块的原理是:每个子块中有k个点,V中的任意两点确定λ个子块,V 中的任意一点存在于r个不同的子块中,故称r为复制数(行重),满足bk=vr,λ(v-1)=r(k-1),特别地,本例取λ=1,k=3,此时(v,3,1)-BIBD被称为Steiner 三重系统,

当v=15时,令V={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},B是20个子块的集合,

此时(V,B)就是一个(15,3,1)-BIBD,如果BIBD中若干子块将集合V中的所有点无重复地完全覆盖,则将这些子块的集合称为平行类,如B中的每一列即为一个平行类,相较于去除单个子块,将平行类中的子块全部消除能够构造出更大围长的LDPC码,定义有序对(V,B)所对应的点块关联矩阵H=(hij)v×b,如果集合V中的第i个元素出现在B的第j个子块中,则hij=1,否则hij=0,依次方法便可得到BIBD-LDPC码对应的校验矩阵H。

如图3所示,实施例中m=5和k=3时的矩阵网格示意图,可以看出H为 Gallager码的奇偶校验矩阵,行重为r,列重为k,码率R≥(b-min(v,b))/b,因为λ=1,所以集合V中的任意两点仅出现在B中的唯一子块内,由BIBD得到的点块关联矩阵H所对应的Tanner中不存在4环,定义一个二元矩形整数格 L={(x,y):0≤x≤k-1,0≤y≤m-1},其中m=v/k=5,整数格内的矩形子集L,令lab(x,y)=m·x+y+1表示矩形格L内所有的整数坐标点,称为点标签,所以图中的整数点依次表示为1-15,点标签在y轴方向是周期循环的,故斜率为1 的直线包括三元组{1,7,13},{2,8,14},{3,9,15},{4,10,11},{5,6,12},正好与 B中的一个平行类对应,即块B中的第二列,其它斜率的情况依次类推,对于非整数及无穷大斜率的情况本技术方案实施例不作讨论,于是斜率s满足: 0≤s≤m-1,s∈Z,构造LDPC码的问题可视为在矩形格L指定合适的点集与一系列直线,从而构造出高围长、低错误平层的LDPC码,

从点(0,a)出发,每条斜率为s的直线经过三个点,即是三个点的集合 {(x,a+x·smod m):0≤x≤2},m组直线对应m个斜率,线点关联矩阵对应LDPC 码的校验矩阵,定义斜率集Ψ={s1,s2,…,sm},只要m满足则矩阵格L中的任意两条直线至多有一个交点,对应Tanner图中的四环被消除,一般地,m为素数,不过即使m为非素数也能够通过选取合适的斜率集构造低错误平层的LDPC码。

图4-1-图4-9为实施例中四种陷阱集在矩形格中的表示图,因为基于矩阵格构造的LDPC码不含四环,所以从环长为六的情况开始处理,图4-1为一种描述(3,3)陷阱集的“三角状态”,可以产生六环,三条直线l0,l2,l4对应的斜率分别为s0,s2和s4,相交于点p0,p1和p2,从p2出发到p0共有两条路径:一种是直达;一种是经过点p1,则点p0的y坐标的两种表达形式分别为(a+2s2mod m)和(a+s0+s4mod m),所以所谓的“三角状态”满足:

s0+s4-2s1=0(mod m) (1)

所以只需指定合适的三条直线,使其斜率不满足公式(1),就可以避免六环的出现,(4,4)陷阱集是生成八环的主要原因,其结构共有六种,如图4-2-图 4-7所示,称之为“四边形状态”,此时所构造的正则(3,m)LDPC码的围长为 8;图4-8表示的是矩阵格中(8,0)陷阱集的结构,由一个(4,4)陷阱集(实线所示)经翻转后(虚线所示)形成,此时LDPC码的围长为6或8,为了消除码中的(8,0)陷阱集,同公式(3)推导方式类似,所选取的斜率应满足:

(s0-s1)-(s3-s2)≠0(mod m) (2)

从图5可看出,只要消除了(4,4)陷阱集,大多数的陷阱集会随之消失,与公式(1)的推导方式类似,能够消除六种(4,4)陷阱集结构的斜率需分别满足:

所以只需找到合适的斜率集{s0,s1,s2,s3,s4}满足上式,便可避免所有(4,4) 陷阱集的出现,使所构造的正则(3,m)LDPC码围长至少为10,然而,经过计算发现,为了消除更多的(4,4)陷阱集结构,除了公式(3)中的第三个不等式,其它不等式均可同时成立,也就是说图4-4的这种陷阱集结构无法避免,所构造出的LDPC码围长至多为8。

图5为实施例中由(4,4)陷阱集所衍生的各种子陷阱集关系图,从图5中可发现,(4,4)陷阱集产生的危害性比较大的陷阱集有(5,3)和(6,4)陷阱集,所以接下来问题可转化为如何消除这两个陷阱集,一旦(5,3){1}陷阱集被消除,则其子类陷阱集(6,0)、(6,2){1}和(8,4){1}也随之被消除,同样地,(6,2){1}的两个子类陷阱集(7,1){1}和(8,2){1}也将不会出现,此时所有的(7,3)陷阱集只能由(6,4)陷阱集衍生而来,只要消除了(6,4)陷阱集,则所有的(7,3)、 (8,0)、(8,2)陷阱集也被一并清除,那么图4-1-图4-9中的陷阱集基本都可以被避免,极大地提高所构造的正则(3,m)LDPC码的围长,具备优异的错误平层特性。

图6为实施例中(4,4)陷阱集生成(5,3)与(6,4)陷阱集的点线图表示,如果陷阱集TS2的结构中包含TS1陷阱集,或者说TS2由TS1扩展而来,则称TS1为TS2的父类(TS2为TS1的子类),为了便于阐述各种陷阱集之间的父子关系,引入了点线表示法,图6就是由父类(4,4)陷阱集生成的子类(5,3)和 (6,4)陷阱集的点线表示图,其中直线代表变量节点,空心圆代表度为“2”的校验节点,实心圆代表度为“1”的校验节点,则一个(α,β){i}陷阱集的点线表示图由α条直线和β个实心圆构成,系数为i,每条直线上有三个圆,表明该变量节点与三个校验节点相邻,即对应的校验矩阵H列重为3,a、b、c分别表图3中直线x=0、x=1、x=2上校验节点的横坐标,有a≠b≠c,a,b,c∈{0,1,2},每条线上的a、b、c均不相同,若在度为“1”的校验节点a、b之间连接一条线,则这两个节点的度数变为“2”,为保证校验矩阵H的列重不变,在新线上添加一个度为“1”的校验节点,则(4,4)陷阱集就生成了其子类(5,3){1}陷阱集,在矩阵格中表示如图4-1-图4-9所示,由于添加新线的原则是不能改变原图的围长,而如果连接两个度为“1”的校验节点a或b则会引入六环,围长会从8 减小到6,矩阵格中表现为添加的新线斜率为无穷大,仅存在理论研究意义。令添加的新线lx的斜率为sx,则可推导出避免(5,3){1}陷阱集应满足:

(6,4)陷阱集的点线表示如图6所示,同(4,4)陷阱集生成(5,3)陷阱集的方法类似,只需在(6,4)陷阱集的点线表示图中添加一条新线便可得到(7, 3)陷阱集,对于(6,4){1}陷阱集,由一个8环和两个10环构成,若在两个度为“1”的校验节点b(1)与b(2)之间或c(1)与c(2)之间建立新边,则对应矩阵格中的斜率为无穷大;若在b(1)与c(2)之间或b(2)与c(1)之间建立新边,则生成(8, 0)陷阱集;若在b(1)与c(1)之间建立新边,则生成(5,3)陷阱集从而引入更多的子陷阱集;若在b(2)与c(2)之间建立新边,则会生成(3,3)陷阱集,将围长缩小到6,严重影响码字的性能,同样地,对于(6,4){2}陷阱集,由两个8 环和一个12环构成,若在两个度为“1”的校验节点a(1)与a(2)之间或b(1)与 b(2)之间建立新边,则对应矩阵格中的斜率为无穷大;若在a(1)与b(1)之间或a(2)与b(2)之间建立新边,会衍生出(8,0)陷阱集;若在a(1)与b(2)之间或 a(2)与b(1)之间建立新边,会衍生出(3,3)陷阱集,所构造的LDPC码中包含 6环,如果在(6,4)陷阱集中添加新边时能够满足上述约束条件就可以避免出现所有的(7,3)陷阱集,从而消除其衍生的大量陷阱集。

图7为不同码长的PEG码与本方法构造的BIBD-LDPC码性能比较图,为了验证本技术方案的有效性,选用两种相等码长、码率的PEG构造码分别进行性能仿真实验并比较,仿真条件为:信号经BPSK调制后在AWGN信道中传输,设置最大译码迭代次数为30次,译码帧数为1000帧,最小错误帧为20帧,码C1为本技术方案基于斜率集{0,1,4,9,11}所构造的BIBD-LDPC码,码长为225,码率为0.4;码C2为本技术方案基于斜率集{0,1,4,9,11,23}所构造的BIBD-LDPC码,码长为 504,码率为0.5。由图7可以看出,码C1、码C2同与之相同码长、码率的PEG 码相比,有效地降低了误码率,在高信噪比区域效果更为明显。对于码C1,当 SNR>3.5dB后,能够稳定获得约0.25dB的编码增益,这是由于在构造码时消除了(5,3),(6,4),(7,3)和(8,2)陷阱集,对于码C2,与之对应的PEG 码在信噪比约为2.5dB时就表现出明显的错误平层,码C2在整个译码信噪比区域可以得到0.1-0.25dB编码增益。当SNR=3.5dB时,误码率由原先的10-5数量级降到了10-6数量级,有效地降低了错误平层。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1