CN102185615B - 适于并行译码实现的ldpc码构造方法 - Google Patents
适于并行译码实现的ldpc码构造方法 Download PDFInfo
- Publication number
- CN102185615B CN102185615B CN 201110115975 CN201110115975A CN102185615B CN 102185615 B CN102185615 B CN 102185615B CN 201110115975 CN201110115975 CN 201110115975 CN 201110115975 A CN201110115975 A CN 201110115975A CN 102185615 B CN102185615 B CN 102185615B
- Authority
- CN
- China
- Prior art keywords
- node
- check
- matrix
- variable node
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明提供一种适于并行译码实现的LDPC码构造方法,包括步骤:1)初始化LDPC码的参数;2)确定译码并行度Pr,即需要同时进行译码的行数,将H阵的每一行的元素看做校验节点,每一列的元素看做变量节点,将所有校验节点按照并行运算要求,规划成多个校验节点集合,每个集合含多个校验节点;3)构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,即在确定H矩阵二分图的连接时,满足在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合。该方法能构造并行度更高的LDPC码,因而可以支持更高的并行译码速率。
Description
技术领域
本发明涉及一种信道编码方法,尤其涉及一种适用于并行译码实现的LDPC码构造方法,属于信息技术领域。
背景技术
信道编码技术作为保证通信系统可靠传输的基本技术,已经得到了飞速的发展,LDPC码是一种重要的信道编码,有很多高效译码方法,其中行列合并译码算法(Joint Row-ColumnDecoding,简称JRC译码方法)是一种高效快速的译码算法,还可结合min-sum算法,用于分层译码。下面先简析JRC算法流程。
设Hmxn是LDPC校验矩阵,首先初始化:Ui=ui0 1≤i≤n;uji=0,i∈N(j),1≤j≤m。上面式中Ui表示变量节点i发出的外信息的和。ui0是BPSK符号经过加性高斯白噪音信道后接收到的信道信息概率密度对数似然比,uji表示校验节点j传向变量节点i的外信息。
逐行进行置信度传播运算,对校验矩阵第j(1≤j≤m)行进行(1)、(2)、(3)式的运算(简称JRC运算):
vij=Ui-uji,i∈N(j) (1)
Ui=vij+uji,i∈N(j) (3)
上面式中N(j)为校验节点j相邻的变量节点集合。N(j)/i是N(j)集合排除掉i所得的集合。式(2)也可使用修正的min-sum算法。每进行完所有m行对应的JRC运算就完成一次迭代处理,就可对所有Ui(1≤i≤n)进行硬判决并计算校验式,如果满足校验矩阵约束,则停止迭代。否则继续迭代,直到满足校验方程或者迭代次数达到预设值则完成译码。
JRC译码算法逐行进行运算,每行有关的运算包括式(2)表示的行方向置信度传播运算,和式(1)和式(3)表示的与本行有关的列方向的置信度传播运算,相比于普通和积算法的置信度传播方式,在误码性能相当的情况下,JRC译码方法典型迭代次数减少一半,有利于提高译码速率。JRC方法对每列的(1),(3)式运算,只需1次加法和减法,都是用Ui,uji变量计算,且(2)式是对uji的更新,这有利于列运算和行运算合并实现,不需要专有的列运算流水线,减少了硬件资源消耗,也比传统SPA算法减少了迭代需要的总处理节拍数,更有利于提高速率。JRC译码的数学运算也很简单,硬件需求降低,有利于提高译码速度。综上所述,JRC译码法很适于硬件高速实现。
然而,JRC高速硬件译码需要实施多行并行的JRC运算,普通LDPC码并不支持。参见图1是示意一个典型的1/2码率LDPC系统码校验矩阵H14x28。H的左半部分有双对角线结构,H中的黑色的方块表示元素1,白色的表示0。对图1中的行组{1,2},参看图1b,行组{1,2}并行JRC运算写U1、写U27冲突,即第1行JRC运算用的Ui变量和第2行JRC运算用的Ui变量有交集{U1,U27}。行组中两个行的运算都要对U1,U27值更新,所以1,2两行的并行JRC运算有写操作冲突,不能并行进行。造成这种情况是因为行组{1,2}内的两行在相同列有非0元素。
普通矩阵不能有效支持并行JRC运算,要支持Pr行的并行JRC运算,只有构造多个像图1c中的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(1-R);将校验矩阵H的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2...N(1-R)/Pr,每个集合有Pr个校验节点。
3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2...N(1-R)/Pr。
所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
所述步骤3)构造H矩阵包含以下步骤:
3-1)初始化H矩阵的二分图,将H阵的每一行看做校验节点,每一列看做变量节点,共有m=N(1-R)个校验节点,n=N个变量节点;
3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;
3-3)判断所有n个变量节点都已经添加入二分图;
3-4)在没有连接的位置填充0元素,得到最终的H矩阵。
所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤:
3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;
3-2-2)挑选出距根节点最远的校验节点放入集合一;
3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,(j=1,2...N(1-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
所述步骤3-3)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否n个变量节点都添加入二分图。
一种适于并行译码实现的QC-LDPC码构造方法,包括步骤:
1)初始化QC-LDPC码的参数,包括码长N、码率R,维度分布函数,校验矩阵H的子块大小为p×p;其中要求p能够整除正整数N(1-R)和N,每个非零子块都是一个单位循环偏移矩阵。
2)确定译码并行度Pr,其中要求p能整除Pr,Pr能整除N(1-R);将H阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2...N(1-R)/Pr,每个集合有Pr/p个校验节点。
3)利用Block-Peg算法构造QC-LDPC码的H矩阵,其中要求在确定非零子块的位置时,即在确定H矩阵二分图的连接时,满足条件:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2...N(1-R)/Pr。
所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
所述步骤3)构造H矩阵包含以下步骤:
3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径,条件为:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2...N(1-R)/Pr;
3-3)遍历变量节点到目的校验节点的所有路径,根据路径权重累计值确定偏移量;
3-4)判断所有n个变量节点都已经添加入二分图;
3-5)根据构造得到的带有偏移量的二分图,填充相应偏移量的单位循环偏移矩阵和全0矩阵,就得到最终的QC-LDPC码的H矩阵。
所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤:
3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;
3-2-2)挑选出距根节点最远的校验节点放入集合一;
3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,(j=1,2...N(1-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
所述步骤3-3)首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重。
所述步骤3-4)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否n个变量节点都添加入二分图。
与现有技术相比,本发明具有的技术效果有:
该方法能构造比普通LDPC码并行度更高的QC-LDPC码,因而可以支持更高的译码并行度及译码速率。仿真结果表明,在使译码速度提高的同时,本发明方法构造的LDPC码和普通Block-PEG算法构造出的LDPC码误码性能相当。
附图说明
图1a为LDPC码校验矩阵H的示意图;
图1b为行组{1,2}并行JRC运算的写U1、写U27冲突;
图1c为行组{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(1-R);将H阵的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2...N(1-R)/Pr,每个集合有Pr个校验节点。
3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2...N(1-R)/Pr。构造H矩阵包含以下步骤:
(a)初始化H矩阵的二分图,将H阵的每一行看做校验节点,每一列看做变量节点,共有m=N(1-R)个校验节点,n=N个变量节点;
(b)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;与符合条件的目的校验节点建立连接路径包括以下步骤:
(b1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;
(b2)挑选出距根节点最远的校验节点放入集合一;
(b3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,(j=1,2...N(1-R)/Pr)集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
(c)判断所有n个变量节点都已经添加入二分图;
(d)填充0元素,得到最终的H矩阵。
参见图1c,构造完成的LDPC码,行组{1,3}并行JRC运算所需Ui值无冲突,行组内两行的JRC运算要刷新的Ui值都不相同,即该行组形成的子矩阵的所有列的非0元素的个数至多为1,故能并行运算。
实施例2,基于Block-PEG算法构造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的每个子块大小为p×p;其中要求p能够整除正整数N(1-R)和N,每个非零子块都是一个单位循环偏移矩阵。可以得到基础矩阵B的大小是
b)利用密度推演或者EXIT图等方法确定H矩阵的优化的维度分布。
c)确定译码并行度Pr;其中要求p能整除Pr,Pr能整除N(1-R);将H阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2...N(1-R)/Pr,每个集合有Pr/p个校验节点。
2)初始化基础矩阵B的二分图:向二分图中添加m个校验节点。
3)构造:向基础矩阵B的二分图中逐个添加变量节点,挑选校验节点建立连接,并确定边线权重,如下:
a)以当前变量节点为根节点,将当前基础矩阵B的二分图展为树状图,参见图2a和图2b。图2a为当前已经建立的二分图,其中C1,C2等方框为校验节点,V1,V2等圆圈为变量节点,e1,e2是边,V3为需要添加校验节点的当前变量节点。图2b为对图2a按照当前变量节点V3的展开图,图中e_sel虚线是依当前展开树及随后的行间约束所选用的二分图的边。
b)挑选出距根节点最远的校验节点,组成集合一。其中最远的校验节点是指将二分图展开到第L层时恰好包含了所有的校验节点,而展开到第L-1层时,并未包含所有的校验节点,此时处于第L层的校验节点就是距离变量节点最远的校验节点。在编码的初始阶段展开的树状图不可能包含所有的校验节点,树状图外的校验节点都是距离变量节点最远的校验节点。
c)从所得集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj集合中的校验节点组成集合二。在集合二中再选择维度最小的校验节点,作为目的节点,并把此目的节点加到已连接的校验节点集合中;
d)遍历根节点到目的节点的所有路径,计算路径权重累计值:
2L是路径环长,p(ik,jk)是路径上已确定的边线权重值。然后首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重;
e)判断根节点的维度是否已经满足初始维度分布,如果已经满足,则进入步骤f),否则返回步骤a);
f)判断是否所有变量节点已经被添加进二分图,如果满足则进入步骤4),否则返回步骤3);
4)根据构造得到的带有偏移量的二分图,即得到的基础矩阵B,填充相应偏移量的循环偏移单位矩阵和全0矩阵,就得到最终的准循环LDPC码的校验矩阵H。
如图3所示,展示了本发明方法构造并行度Pr=2p的准循环LDPC码的基矩阵H1,该矩阵行数m=14,列数n=28,H1中的子矩阵行列数为p=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译码。可将H1的第14列中标为72的单位循环阵的的最右上角的1变为0,作为编码器运算的入手点[21],也可在构造时采用类似WIMAX LDPC码的校验矩阵的双对角线结构方便地支持编码。表1给出了一些成功构造码集的参数。这些参数都处于常用码长码率范围,p值的选取考虑了码率的精确和校验位数等参数的整数化。下表中并行度表示的是Pr/p,即可并行的行块数。
表1
表2提供了Pr/p=2的情况下2000次构造中成功的次数。从表2数据看,这些常用码长码率是比较容易构造成功的。但是如果基矩阵太小,需要加大尝试次数或调整维度分布参数,以及p和Pr的配合关系,就可以构造成功。
表2
对于基矩阵行数不能整除Pr/p的情形,也可以用本发明方法进行构造,只是最后一个行组行数小于Pr/p,相应JRC运算并行度低一些,所得码总的译码并行度略小于Pr。
在构造码集时,除了支持高译码速率,还要保证良好的误码性能。以下通过误码率仿真,对本发明方法构造的LDPC码和其他典型LDPC码进行比较。在本比较方法中所有误码性能仿真均采用加性高斯白噪音信道条件,JRC译码算法,所采用的本发明方法构造的LDPC码并行度Pr/p=2,译码迭代次数为30次。
首先,参见图4,比较本发明方法构造的QC-LDPC码与传统的Block-PEG构造法所构造的QC-LDPC码。两种方法使用相同的设置:码长8064、码率0.5、分块大小都是p=48、维度分布相同,维度为{2,3,7,8},对应维度分布{0.512,0.315,0.072,0.101}。图4给出JRC-QC-PEGLDPC码(本发明方法构造的LDPC码)和Block-PEG码的误码率曲线,两曲线基本重合,所以两者误码率性能相当。JRC-QC-PEG构造算法比Block-PEG算法加了更多构造约束,但是误码率性能还没有变坏。
其次,参见图5,比较本发明码与WIMAX标准码。JRC-QC-PEG码码长2016,码率0.5,维度{2,3,6},对应维度分布为{0.5,1/3,1/6}。WIMAX标准码码长2016,码率0.5。图5所示的是两种码的误码率曲线,从图中看JRC-QC-PEG码性能略好。
最后,参见图6,比较JRC-QC-PEG码和DVBSII标准码的性能。JRC-QC-PEG码码长16128,码率0.375,维度{2,3,12},对应维度分布为{10125/16128,4320/16128,1795/16128}。DVBSII码,码长16200,码率0.4,等效分块大小p=360。图6所示的是两者的误码率曲线,可以看出JRC-QC-PEG码性能略优。因此JRC-QC-PEG码的误码性能可以与DVBSII码相比。
上述仿真表明,采用本发明方法,可构造与Block-PEG码或DVBSII码等现行标准性能相当的LDPC码。因此本发明提出的方法,可在提高并行度的同时,保持误码率性能不下降。
为阐明JRC-QC-PEG码的实现,给出图7所示的译码器实现结构。图7中各模块在B5控制模块的集中控制下按JRC算法协调地进行流水线式译码操作。
整个的译码流程可以从信号的流动过程角度来描述。信道信息ui0进入B1模块,初始化Ui变量,B3将模块输出值切换为0初始化外信息uji变量。然后进行逐行组的JRC译码。Pr行对应的Pr个Ui变量经过读适配处理以后送往B2模块。B3中外信息存储器中的相应的Pr个uji变量也输入到B2模块。在B2模块中的prxp个JRC运算器以图8所示的结构进行(1)到(3)式的JRC运算。当一个行组所需要的所有Ui变量和uji变量被输到B2单元后,Ui变量和uji变量的更新值也被计算出来。B2更新后的Ui变量被传回B1模块,进行适配调整,写入Ui变量存储器中。而uji的更新值被传到B3的存储器中直接进行存储。这整个运算过程中,能采用prxp个JRC运算器,译码并行度得到了保障。如此继续进行下一个行组的运算。对所有行组运算完以后,就完成一次迭代,如此反复,直到满足校验矩阵或译码次数达到设置值,通过B4判决模块输出信息比特。
图7中B2模块的每个JRC运算器执行(1)到(3)式的运算。图8是B2的JRC运算器的一种实现结构,其中减法器实现(1)式,加法器实现(3)式。而图8中虚框部分实现(2)式,虚框中的MIN运算预处理模块求出所有第j行对应的所有vkj值的符号积和最小绝对值以及次小绝对值,做为后面MIN运算的预备,此过程需要通过多个节拍处理完成,所以用FIFO模块进行延迟适配,然后再用预处理输出和FIFO延迟后的vkj值,通过简单的组合逻辑方便地算出(2)式结果。
图7的实现结构规整,采用集中式控制,易于修改,调试。可以调整JRC运算器个数、总线宽度、存储器的配置来调节运算器的并行度。图8的JRC处理器因译码速率要求不同,也可对其结构做相应的并串行调整和流水线级数调整。
译码器类型 | 文献[1] | 本发明图7 |
FPGA器件类型 | EP2S60-C4 | EP2S90-C4 |
逻辑资源ALUT | 32656 | 41123 |
存储资源(bit) | 52133 | 817638 |
最高时钟(MHz) | 168.18 | 145.69 |
译码速率(Mbit·s-1) | 80 | 290 |
表3
由于JRC-QC-PEG码也具备准循环LDPC校验阵特点,也可选用文献[1](管武,董明科,项海格.应用循环移位矩阵设计LDPC码译码器.应用科学学报,2009,27(2):117-123)的优良普通准循环LDPC译码结构,但采用图7的译码速率更高。以Pr/p=2,1/2码率时情形为例和文献[1]比较,图7结构处理外信息的并行度为文献[1]的Pr/p=2倍,且采用JRC译码方法迭代次数可减少约一半。另外,本发明图7采用JRC运算器组一种运算流水线,而文献[1]的实现中有变量节点处理器组和校验节点处理器组两种流水线,而且这两个流水线以串行分时工作,所以图7结构一次迭代所需的运算拍数显著减少。译码器具体资源速率情况参见表3,表中都采用ALTERA公司同系列FPGA,涉及的码长都是8064,码率都是0.5,用QUARTUS软件综合。根据FPGA编译综合情况,图7中译码器结构在资源略有增加的情况下,能达到文献[1]普通准循环LDPC译码器结构吞吐率的3.6倍以上,速率有大的提高。
Claims (11)
1.一种适于并行译码实现的LDPC码构造方法,包括步骤:
1)初始化LDPC码的参数,包括码长N、码率R,校验矩阵H的维度分布函数;
2)确定译码并行度Pr,Pr整除N(1-R);将校验矩阵H的每一行看做校验节点,每一列看做变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2…N(1-R)/Pr,每个集合有Pr个校验节点;
3)利用Peg算法构造LDPC码的H矩阵,其中要求在确定非零元素的位置时,满足条件:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2…N(1-R)/Pr。
2.如权利要求1所述的方法,其特征在于,所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
3.如权利要求1所述的方法,其特征在于,所述步骤3)构造H矩阵包含以下步骤:
3-1)初始化H矩阵的二分图,将H矩阵的每一行看做校验节点,每一列看做变量节点,共有m=N(1-R)个校验节点,n=N个变量节点;
3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径;
3-3)判断所有n个变量节点都已经添加入二分图;
3-4)在没有连接的位置填充0元素,得到最终的H矩阵。
4.如权利要求3所述的方法,其特征在于,所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤:
3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;
3-2-2)挑选出距根节点最远的校验节点放入集合一;
3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,j=1,2…N(1-R)/Pr,集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
5.如权利要求3所述的方法,其特征在于,所述步骤3-3)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否n个变量节点都添加入二分图。
6.一种适于并行译码实现的QC-LDPC码构造方法,包括步骤:
1)初始化QC-LDPC码的参数,包括码长N、码率R,校验矩阵H的维度分布函数,校验矩阵H的子块大小为p×p;其中要求p能够整除正整数N(1-R)和N,每个非零子块都是一个单位循环偏移矩阵;
2)确定译码并行度Pr,其中要求p能整除Pr,Pr能整除N(1-R);将H矩阵的每一个块行看做一个校验节点,每一个块列看做一个变量节点,将校验节点规划成N(1-R)/Pr个集合,用Cprj表示,j表示集合的标号,j=1,2…N(1-R)/Pr,每个集合有Pr/p个校验节点;
3)利用Block-Peg算法构造QC-LDPC码的H矩阵,其中要求在确定非零子块的位置时,即在确定H矩阵二分图的连接时,满足条件:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2…N(1-R)/Pr。
7.如权利要求6所述的方法,其特征在于,所述步骤1)利用密度推演方法或者EXIT图方法确定H矩阵的维度分布函数。
8.如权利要求6所述的方法,其特征在于,所述步骤3)构造H矩阵包含以下步骤:
3-2)向二分图中添加m个校验节点,逐个添加变量节点,并与符合条件的目的校验节点建立连接路径,条件为:在同一个变量节点上连接的所有校验节点中,不存在任何两个校验节点属于同一个校验节点集合Cprj,j=1,2…N(1-R)/Pr,且该校验节点距离当前变量节点最远,维度最小;
3-3)遍历变量节点到目的校验节点的所有路径,根据路径权重累计值确定偏移量;
3-4)判断所有n个变量节点都已经添加入二分图;
3-5)根据构造得到的带有偏移量的二分图,填充相应偏移量的单位循环偏移矩阵和全0矩阵,就得到最终的QC-LDPC码的H矩阵。
9.如权利要求8所述的方法,其特征在于,所述步骤3-2)与符合条件的目的校验节点建立连接路径包括以下步骤:
3-2-1)以当前添加的变量节点为根节点,将H矩阵二分图展为树状;
3-2-2)挑选出距根节点最远的校验节点放入集合一;
3-2-3)从集合一中选出和目前变量节点相连接的任一校验节点不在同一个Cprj,j=1,2…N(1-R)/Pr,集合中的校验节点组成集合二,在所组成集合二中再选择维度最小的校验节点,作为目的校验节点。
10.如权利要求8所述的方法,其特征在于,所述步骤3-3)首先按照环长最大化原则选择路径权重,如果没有符合条件的可选权重值,则利用随机原则选取路径权重。
11.如权利要求8所述的方法,其特征在于,所述步骤3-4)首先判断当前变量节点的维度是否已经满足初始维度分布,然后判断是否n个变量节点都添加入二分图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110115975 CN102185615B (zh) | 2011-05-05 | 2011-05-05 | 适于并行译码实现的ldpc码构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110115975 CN102185615B (zh) | 2011-05-05 | 2011-05-05 | 适于并行译码实现的ldpc码构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102185615A CN102185615A (zh) | 2011-09-14 |
CN102185615B true CN102185615B (zh) | 2013-05-08 |
Family
ID=44571692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110115975 Expired - Fee Related CN102185615B (zh) | 2011-05-05 | 2011-05-05 | 适于并行译码实现的ldpc码构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102185615B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103346863B (zh) * | 2013-07-03 | 2016-10-12 | 同济大学 | 一种算术域比特交织编码调制方法 |
CN103618556A (zh) * | 2013-12-11 | 2014-03-05 | 北京理工大学 | 基于rmp调度的部分并行qc-ldpc译码方法 |
WO2018182371A1 (en) * | 2017-03-30 | 2018-10-04 | Samsung Electronics Co., Ltd. | Apparatus and method for channel encoding/decoding in communication or broadcasting system |
CN111224673A (zh) | 2018-11-26 | 2020-06-02 | 中兴通讯股份有限公司 | 译码方法、装置及译码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US5359606A (en) * | 1992-02-12 | 1994-10-25 | Storage Technology Corporation | Data quality analysis in a data signal processing channel |
-
2011
- 2011-05-05 CN CN 201110115975 patent/CN102185615B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US5359606A (en) * | 1992-02-12 | 1994-10-25 | Storage Technology Corporation | Data quality analysis in a data signal processing channel |
Also Published As
Publication number | Publication date |
---|---|
CN102185615A (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101106381B (zh) | 分层的低密度校验码译码器及译码处理方法 | |
CN104868925B (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
CN101232288B (zh) | 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器 | |
CN102075198B (zh) | 准循环低密度奇偶校验卷积码编译码系统及其编译码方法 | |
CN103220003B (zh) | 提高节点处理并行度的qc-ldpc译码器的实现方法 | |
CN101753149A (zh) | 一种准循环低密度奇偶校验码的构造方法 | |
CN100425000C (zh) | 双涡轮结构低密度奇偶校验码解码器及解码方法 | |
CN102185615B (zh) | 适于并行译码实现的ldpc码构造方法 | |
CN102185616B (zh) | 基于行列联合迭代译码的ldpc码构造方法 | |
CN102394659B (zh) | Ldpc码校验矩阵构造方法及对应矩阵乘法运算装置 | |
CN102664638A (zh) | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 | |
US9195536B2 (en) | Error correction decoder and error correction decoding method | |
US9413390B1 (en) | High throughput low-density parity-check (LDPC) decoder via rescheduling | |
CN101567697A (zh) | 一种速率兼容的低密度奇偶校验码编码方法和编码器 | |
CN103220002B (zh) | 一种消除译码器访问冲突的准循环ldpc码构造方法 | |
CN102291153B (zh) | Cmmb中ldpc码的译码方法及部分并行译码器 | |
CN101594152B (zh) | 实现水平运算和垂直运算同时运行的ldpc码译码方法 | |
CN102723957A (zh) | 一种适用于层间并行译码器的qc-ldpc码构造方法 | |
CN106452455A (zh) | 基于OpenCL 移动设备QC‑LDPC 的动态译码方法 | |
CN102130692B (zh) | 基于外在信息度数的准循环低密度奇偶校验码的构造方法 | |
CN1822510A (zh) | 高速的减少存储需求的低密度校验码解码器 | |
CN102412844B (zh) | 一种ira类ldpc码的译码方法及译码装置 | |
CN105337618A (zh) | 并行向下兼容的多模ira_ldpc译码器及其译码方法 | |
CN101478313A (zh) | 一种ldpc译码器的最小值计算装置及其构造方法 | |
CN100578945C (zh) | 一种ldpc码的译码器装置及译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130508 Termination date: 20210505 |
|
CF01 | Termination of patent right due to non-payment of annual fee |