适于并行译码实现的ldpc码构造方法

文档序号:7521573阅读:165来源:国知局
专利名称:适于并行译码实现的ldpc码构造方法
技术领域
本发明涉及一种信道编码方法,尤其涉及一种适用于并行译码实现的LDPC码构造方法,属于信息技术领域。
背景技术
信道编码技术作为保证通信系统可靠传输的基本技术,已经得到了飞速的发展,LDPC码是一种重要的信道编码,有很多高效译码方法,其中行列合并译码算法(Joint Row-Column Decoding,简称JRC译码方法)是一种高效快速的译码算法,还可结合min-sum 算法,用于分层译码。下面先简析JRC算法流程。设Hmxn是LDPC校验矩阵,首先初始化=Ui = uiQ 1彡i彡η ;Uji = 0,i e N(J), 1彡j彡m。上面式中Ui表示变量节点i发出的外信息的和。Uitl是BPSK符号经过加性高斯白噪音信道后接收到的信道信息概率密度对数似然比,+ι表示校验节点j传向变量节点 i的外信息。逐行进行置信度传播运算,对校验矩阵第j (1 ^ j ^ m)行进行(1)、(2)、(3)式的运算(简称JRC运算)Vij = Ui-Uji, i e N(j)(1)uP =Π8§ηΚ )·^ η Κ ] ieN(J) (2)
keNU)/iUi = Vij+Uji, i e N(j)(3)上面式中N(j)为校验节点j相邻的变量节点集合。N(j)/i是N(j)集合排除掉i 所得的集合。式(2)也可使用修正的min-sum算法。每进行完所有m行对应的JRC运算就完成一次迭代处理,就可对所有Ui (1 < i < η)进行硬判决并计算校验式,如果满足校验矩阵约束,则停止迭代。否则继续迭代,直到满足校验方程或者迭代次数达到预设值则完成译码。JRC译码算法逐行进行运算,每行有关的运算包括式(2)表示的行方向置信度传播运算,和式(1)和式(3)表示的与本行有关的列方向的置信度传播运算,相比于普通和积算法的置信度传播方式,在误码性能相当的情况下,JRC译码方法典型迭代次数减少一半, 有利于提高译码速率。JRC方法对每列的(1),(3)式运算,只需1次加法和减法,都是用Ui, Uji变量计算,且(2)式是对 的更新,这有利于列运算和行运算合并实现,不需要专有的列运算流水线,减少了硬件资源消耗,也比传统SPA算法减少了迭代需要的总处理节拍数, 更有利于提高速率。JRC译码的数学运算也很简单,硬件需求降低,有利于提高译码速度。 综上所述,JRC译码法很适于硬件高速实现。然而,JRC高速硬件译码需要实施多行并行的JRC运算,普通LDPC码并不支持。参见图1是示意一个典型的1/2码率LDPC系统码校验矩阵H14x28。H的左半部分有双对角线结构,H中的黑色的方块表示元素1,白色的表示0。对图1中的行组{1,2},参看图lb,行组{1,2}并行JRC运算写U1、写U27冲突,即第1行JRC运算用的Ui变量和第2行JRC运算用的Ui变量有交集IU1,U27}。行组中两个行的运算都要对UuU27值更新,所以1,2两行的并行JRC运算有写操作冲突,不能并行进行。造成这种情况是因为行组{1,2}内的两行在相同列有非O元素。普通矩阵不能有效支持并行JRC运算,要支持Pr行的并行JRC运算,只有构造多个像图Ic中的Pr( > 1)行行组构成的校验矩阵,且要求各个行组内任一列最多只能有一个非零元素,即要求校验矩阵各列的非0元素处于不同行组。综上分析可知,JRC并行译码法所需要的LDPC码的校验矩阵为多个有Pr( > 1整数)个行的行组组成,并要求同一行组中的Pr行的每一列的最多只有一个非0元素。而依照目前的LDPC码构造方法,并不能得到适用于JRC运算的可具有较高译码并行度的LDPC码。

发明内容
为了克服现有技术中存在的问题,本发明提供了一种适于并行译码实现的LDPC 码构造方法,包括基于PEG算法实现的普通LDPC码和基于Block-PEG算法实现的QC-LDPC 码,QC-LDPC码也属于LDPC码,只是在实现方式上有所不同。为了实现本发明的目的采用的技术方案概述如下一种适于并行译码实现的LDPC码构造方法,包括步骤1)初始化LDPC码的参数,包括码长N、码率R,校验矩阵H的维度分布函数;2)确定译码并行度Pr ;Pr整除N(I-R);将校验矩阵H的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(I-R)/Pr个集合,用Cprj表示,j表示集合的标号, j = 1,2... N (I-R)/Pr,每个集合有Pr个校验节点。3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合 Cprj,j = 1,2. ..N (I-R)/Pr。所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。所述步骤3)构造H矩阵包含以下步骤3-1)初始化H矩阵的二分图,将H阵的每一行看做校验节点,每一列看做变量节点,共有m = N(I-R)个校验节点,η = N个变量节点;3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;3-3)判断所有η个变量节点都已经添加入二分图;3-4)在没有连接的位置填充0元素,得到最终的H矩阵。所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;3-2-2)挑选出距根节点最远的校验节点放入集合一;3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个 Cprj, (j = 1,2... N (I-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
所述步骤3-3)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否η个变量节点都添加入二分图。
一种适于并行译码实现的QC-LDPC码构造方法,包括步骤1)初始化QC-LDPC码的参数,包括码长N、码率R,维度分布函数,校验矩阵H的子块大小为ρΧρ ;其中要求P能够整除正整数N(I-R)和N,每个非零子块都是一个单位循环偏移矩阵。2)确定译码并行度Pr,其中要求ρ能整除Pr,Pr能整除N(I-R);将H阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(I-R)/Pr个集合,用Cprj表示,j表示集合的标号,j = 1,2... N (I-R)/Pr,每个集合有Pr/p个校验节点ο3)利用Block-Peg算法构造QC-LDPC码的H矩阵,其中要求在确定非零子块的位置时,即在确定H矩阵二分图的连接时,满足条件在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j = 1,2... N(I-R)/Pr。所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。所述步骤3)构造H矩阵包含以下步骤3-1)初始化H矩阵的二分图,将H阵的每一个块行看做一个校验节点,每一个块列
N(I-R)N
看做一个变量节点;校验节点有 = ^个,变量节点有《 =—个;
PP3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径,条件为在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj, j = 1,2... N (I-R)/Pr ;3-3)遍历变量节点到目的校验节点的所有路径,根据路径权重累计值确定偏移量;3-4)判断所有η个变量节点都已经添加入二分图;3-5)根据构造得到的带有偏移量的二分图,填充相应偏移量的单位循环偏移矩阵和全0矩阵,就得到最终的QC-LDPC码的H矩阵。所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;3-2-2)挑选出距根节点最远的校验节点放入集合一;3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个 Cprj, (j = 1,2... N (I-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。所述步骤3-3)首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重。所述步骤3-4)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否η个变量节点都添加入二分图。与现有技术相比,本发明具有的技术效果有该方法能构造比普通LDPC码并行度更高的QC-LDPC码,因而可以支持更高的译码并行度及译码速率。仿真结果表明,在使译码速度提高的同时,本发明方法构造的LDPC码和普通Block-PEG算法构造出的LDPC码误码性能相当。


图Ia为LDPC码校验矩阵H的示意图;图Ib为行组{1,2}并行JRC运算的写Ul、写U27冲突;图Ic为行组{1,3}并行JRC运算所需Ui值无冲突;图2a为处于构造过程中的基矩阵二分图示意图;图2b为按当前变量节点为根节点的树状展开图;图3为本发明方法构造的LDPC码基矩阵;图4为本发明方法构造的LDPC码误码率比较;图5为本发明方法构造的LDPC码和WIMAX码的误码率比较;图6为本发明方法构造的LDPC码和DVBSII码的误码率比较;图7为并行JRC译码器结构图;图8为JRC运算器单元结构图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细描述。实施例1基于PEG算法构造LDPC码的步骤包括1)初始化LDPC码的参数,包括码长N、码率R ;利用密度推演方法或者EXIT图方法确定校验矩阵H的维度分布函数。2)确定译码并行度Pr ;Pr能整除N(I-R);将H阵的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(I-R)/Pr个集合,用Cprj表示,j表示集合的标号,j = 1,2... N (I-R)/Pr,每个集合有Pr个校验节点。3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j = 1,2. . .N(I-R)/Pr。构造H矩阵包含以下步骤(a)初始化H矩阵的二分图,将H阵的每一行看做校验节点,每一列看做变量节点, 共有m = N(I-R)个校验节点,n = N个变量节点;(b)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;与符合条件的目的校验节点建立连接路径包括以下步骤(bl)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;(b2)挑选出距根节点最远的校验节点放入集合一;(b3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj, (j = 1,2... N (I-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。(c)判断所有η个变量节点都已经添加入二分图;(d)填充0元素,得到最终的H矩阵。参见图lc,构造完成的LDPC码,行组{1,3}并行JRC运算所需Ui值无冲突,行组内两行的JRC运算要刷新的Ui值都不相同,即该行组形成的子矩阵的所有列的非0元素的个数至多为1,故能并行运算。实施例2,基于Block-P EG算法构造QC-LDPC码因为基于Block-PEG算法构造QC-LDPC码在实际中的应用更为广泛,以下以 QC-LDPC码为例,介绍本发明基于Block-PEG算法提出适于JRC并行译码器的新的码构造方法(称为JRC-QC-PEG码构造方法)。Block-PEG构造方法是PEG算法的升级,它用PEG算法构造准循环LDPC基矩阵,但构造过程结合准循环LDPC码基矩阵中的循环偏移量计算。Block-PEG算法基于图论构造 LDPC码。第1节分析出JRC并行译码对LDPC码校验矩阵的要求,那么对于QC-LDPC码,如果要进一步提高译码并行度,其基矩阵也要符合上述要求,从图论的角度看,此要求就是要构造的二分图的校验节点规划成Pr/p个一组的校验节点集合(记为Cprj)组成,而和每个变量节点连接的校验节点需处于不同的Cprj集合。以下给出本发明方法的完整流程。1)初始化的步骤,包括a)初始化QC-LDPC码的参数,包括码长N、码率R,校验矩阵H的每个子块大小为 pXp ;其中要求P能够整除正整数N(I-R)和N,每个非零子块都是一个单位循环偏移矩阵。
N(I-R) N
可以得到基础矩阵B的大小是= ^-X-
P Pb)利用密度推演或者EXIT图等方法确定H矩阵的优化的维度分布。c)确定译码并行度Pr ;其中要求ρ能整除Pr,Pr能整除N(I-R);将H阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(I-R)/Pr个集合,用Cprj表示,j表示集合的标号,j = 1,2... N (I-R)/Pr,每个集合有Pr/p个校验节点ο2)初始化基础矩阵B的二分图向二分图中添加m个校验节点。3)构造向基础矩阵B的二分图中逐个添加变量节点,挑选校验节点建立连接,并确定边线权重,如下a)以当前变量节点为根节点,将当前基础矩阵B的二分图展为树状图,参见图2a 和图2b。图2a为当前已经建立的二分图,其中Cl,C2等方框为校验节点,VI,V2等圆圈为变量节点,el,e2是边,V3为需要添加校验节点的当前变量节点。图2b为对图2a按照当前变量节点V3的展开图,图中e_sel虚线是依当前展开树及随后的行间约束所选用的二分图的边。b)挑选出距根节点最远的校验节点,组成集合一。其中最远的校验节点是指将二分图展开到第L层时恰好包含了所有的校验节点,而展开到第L-I层时,并未包含所有的校验节点,此时处于第L层的校验节点就是距离变量节点最远的校验节点。在编码的初始阶段展开的树状图不可能包含所有的校验节点,树状图外的校验节点都是距离变量节点最远的校验节点。c)从所得集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj 集合中的校验节点组成集合二。在集合二中再选择维度最小的校验节点,作为目的节点,并把此目的节点加到已连接的校验节点集合中;d)遍历根节点到目的节点的所有路径,计算路径权重累计值
s = (Σ二2 (-OV h' V) mod ρ ;2L是路径环长,p(ik,jk)是路径上已确定的边线权重值。然后首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重;e)判断根节点的维度是否已经满足初始维度分布,如果已经满足,则进入步骤 f),否则返回步骤a);

f)判断是否所有变量节点已经被添加进二分图,如果满足则进入步骤4),否则返回步骤3);4)根据构造得到的带有偏移量的二分图,即得到的基础矩阵B,填充相应偏移量的循环偏移单位矩阵和全0矩阵,就得到最终的准循环LDPC码的校验矩阵H。如图3所示,展示了本发明方法构造并行度Pr = 2p的准循环LDPC码的基矩阵 H1,该矩阵行数m = 14,列数η = 28,Hl中的子矩阵行列数为ρ = 72,对应码长N = 2016, 码率为 1/2。构造时规划的 Cprj 集合如下=Cpr1 = {1,3},Cpr2 = {5,7},Cpr3 = {9,11}, Cpr4 = {13,2}, Cpr5 = {4,6},Cpr6 = {8,10},Cpr7 = {12,14}。图3中的每个0表示72x72全0矩阵,各非0数值表示72x72单位循环偏移矩阵, 且非0数值减去1表示该子矩阵的循环偏移量。观察{1,3},{5,7} {9,11}等Cprj集合对应的行组,每个行组内两行的非0元素没有共列,所以该校验矩阵可以支持并行度为Pr = 2*72 = 144的JRC译码。可将Hl的第14列中标为72的单位循环阵的的最右上角的1变为0,作为编码器运算的入手点[21],也可在构造时采用类似WIMAX LDPC码的校验矩阵的双对角线结构方便地支持编码。表1给出了一些成功构造码集的参数。这些参数都处于常用码长码率范围,P值的选取考虑了码率的精确和校验位数等参数的整数化。下表中并行度表示的是Pr/p,即可并行的行块数。
权利要求
1.一种适于并行译码实现的LDPC码构造方法,包括步骤1)初始化LDPC码的参数,包括码长N、码率R,校验矩阵H的维度分布函数;2)确定译码并行度ft·,ft·整除N(I-R);将校验矩阵H的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(I-R) /Pr个集合,用Cprj表示,j表示集合的标号,j = 1,2... N (1- /Pr,每个集合有ft·个校验节点;3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件 在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合 Cprj,j = 1,2. ..N (I-R)/Pr。
2.如权利要求1所述的方法,其特征在于,所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
3.如权利要求1所述的方法,其特征在于,所述步骤3)构造H矩阵包含以下步骤3-1)初始化H矩阵的二分图,将H阵的每一行看做校验节点,每一列看做变量节点,共有m = N(I-R)个校验节点,η = N个变量节点;3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;3-3)判断所有η个变量节点都已经添加入二分图;3-4)在没有连接的位置填充0元素,得到最终的H矩阵。
4.如权利要求3所述的方法,其特征在于,所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;3-2-2)挑选出距根节点最远的校验节点放入集合一;3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,(j =1,2... N (I-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
5.如权利要求3所述的方法,其特征在于,所述步骤3-3)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否η个变量节点都添加入二分图。
6.一种适于并行译码实现的QC-LDPC码构造方法,包括步骤1)初始化QC-LDPC码的参数,包括码长N、码率R,校验矩阵H的维度分布函数,校验矩阵H的子块大小为ρXp ;其中要求ρ能够整除正整数N(I-R)和N,每个非零子块都是一个单位循环偏移矩阵;2)确定译码并行度ft·,其中要求ρ能整除ft~,ft·能整除N(I-R);将H阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(I-R) /Pr个集合, 用Cprj表示,j表示集合的标号,j = 1,2...则1-1 )/ 1~,每个集合有1^/ 个校验节点;3)利用Block-Peg算法构造QC-LDPC码的H矩阵,其中要求在确定非零子块的位置时, 即在确定H矩阵二分图的连接时,满足条件在同一个变量节点上连接的所有校验节点中, 不存在任何两个校验节点属于同一个校验节点集合Cprj,j = 1,2... N(I-R)/Pr。
7.如权利要求6所述的方法,其特征在于,所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
8.如权利要求6所述的方法,其特征在于,所述步骤3)构造H矩阵包含以下步骤3-1)初始化H矩阵的二分图,将H阵的每一个块行看做一个校验节点,每一个块列看做 一个变量节点;校验节点有
9.如权利要求8所述的方法,其特征在于,所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状; 3-2-2)挑选出距根节点最远的校验节点放入集合一;3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,(j =1,2... N (I-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
10.如权利要求8所述的方法,其特征在于,所述步骤3-3)首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重。
11.如权利要求8所述的方法,其特征在于,所述步骤3-4)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否η个变量节点都添加入二分图。
全文摘要
本发明提供一种适于并行译码实现的LDPC码构造方法,包括步骤1)初始化LDPC码的参数;2)确定译码并行度Pr,即需要同时进行译码的行数,将H阵的每一行的元素看做校验节点,每一列的元素看做变量节点,将所有校验节点按照并行运算要求,规划成多个校验节点集合,每个集合含多个校验节点;3)构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,即在确定H矩阵二分图的连接时,满足在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合。该方法能构造并行度更高的LDPC码,因而可以支持更高的并行译码速率。
文档编号H03M13/11GK102185615SQ20111011597
公开日2011年9月14日 申请日期2011年5月5日 优先权日2011年5月5日
发明者王达, 董明科, 郑雅丹, 金野, 项海格 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1