CN103731161B - 一种用于ldpc码的交叠译码方法 - Google Patents

一种用于ldpc码的交叠译码方法 Download PDF

Info

Publication number
CN103731161B
CN103731161B CN201410010490.3A CN201410010490A CN103731161B CN 103731161 B CN103731161 B CN 103731161B CN 201410010490 A CN201410010490 A CN 201410010490A CN 103731161 B CN103731161 B CN 103731161B
Authority
CN
China
Prior art keywords
computing
iteration
packet
decoding
node
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.)
Active
Application number
CN201410010490.3A
Other languages
English (en)
Other versions
CN103731161A (zh
Inventor
赵岭
韩江雪
侯毅
刘荣科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201410010490.3A priority Critical patent/CN103731161B/zh
Publication of CN103731161A publication Critical patent/CN103731161A/zh
Application granted granted Critical
Publication of CN103731161B publication Critical patent/CN103731161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种用于LDPC码的交叠译码方法,属于通信技术领域。本方法先将奇偶校验矩阵按列进行分组,每组具有相同的列数,对每个分组依次进行垂直更新运算和水平更新运算,最后当满足迭代停止条件或者译码成功时,输出译码结果,结束译码。本方法对奇偶校验矩阵的第一分组进行垂直更新运算后,在依次对奇偶校验矩阵剩余分组进行垂直更新运算的同时,开始依次对奇偶校验矩阵的分组进行水平更新运算,相邻的两个分组的垂直更新运算和水平更新运算交叠进行。本发明能够提高LDPC码译码器的硬件资源利用率,提高译码速率,减少硬件资源消耗。

Description

一种用于LDPC码的交叠译码方法
技术领域
本发明属于通信技术领域,具体涉及一种LDPC码的交叠译码方法。
背景技术
LDPC码,全称Low Density Parity Check Code,即低密度奇偶校验码。在目前已有的编码方法中,LDPC码的编码方法在某些情况下已经显示出了接近香农限(Shannon’slimit)的编码性能;在译码方面,与同样是长码的Turbo码相比,LDPC码的误码平层出现在很低的误码率区域,且错误码字无法检测的概率趋近于0;LDPC码的奇偶校验矩阵H的绝大多数元素为“0”,此即“低密度”的命名由来,而这样的特性使其能够通过简单易于实现的译码方法进行译码,具有极高的实用价值。由于以上几点原因,使得LDPC在近年来成为研究与应用的热点,例如:第二代卫星数字电视视频广播标准(DVB-S2)以及我国的数字电视地面传输标准都使用LDPC码作为核心的信道编码,但就其译码方法的应用而言,还存着很多值得研究的问题。
本领域内公知,传统的LDPC译码算法包含两种运算:变量节点更新运算和校验节点更新运算,这两种运算交替进行。这类两种运算交替进行的算法可以归结为双向消息传递(two phase message passing,简称TPMP)译码算法,可以用log-BP(Log-BeliefPropagation)算法或者最小和(min sum,简称MS)算法实现,也可以用log-BP或最小和算法的各种变体算法实现,它们的运算流程一致。由于这两种更新运算必须交替进行,所以使用传统方法进行译码的译码器的硬件利用率(hardware usage ratio,简称HUE)只有50%。
在文献“Y.Chen and K.K.Parhi.Overlapped message passing for quasi-cyclic low-density parity check codes”和“Y.M.Dai,Z.Y.Yan,and N.Chen.Optimaloverlapped message passing decoding of quasi-cyclic LDPC codes”中,作者提出了一种交叠(overlapped message passing,简称OMP)译码算法及其改进算法。在OMP算法中,通过改变矩阵中各行与各列的运算顺序,使得变量节点更新运算和校验节点更新运算可以部分交叠运行,从而提高了HUE。由于OMP算法改变的仅仅是校验矩阵各行与各列的运算顺序,其有效性很大程度上取决于码字自身的结构,而且为了解决交叠区运算单元对迭代存储器的访问冲突,通常需要额外增加一倍的迭代信息存储器或采用双倍时钟使得两种更新单元对迭代信息存储器进行交替访问。
在最近几年,TDMP(turbo decoding message passing)译码算法由于具有更快的收敛速度,受到了研究者的广泛关注。TDMP算法是将校验矩阵分成若干层,各层依次进行译码,如果能满足每一层的每一列最多包含一个“1”的约束条件,那么TDMP算法的HUE可以达到1,而且所需的存储器块数以及存储量均远远小于TPMP算法;反之,如果校验矩阵的每一层的每一列包含“1”的个数大于1,那么TDMP算法消耗的存储器资源以及迭代周期都要远大于TPMP算法,所以,TDMP算法仅适用于部分LDPC码,例如子矩阵重量为1的QC-LDPC码。此外,TDMP算法中各层之间的运算具有依赖性,导致各层的运算只能顺序执行,从而限制了译码器的最大吞吐率。
综上所述,TPMP算法能适用于所有LDPC码,但是HUE较低;TDMP算法HUE高,但适用的LDPC码有限,并且最高译码速率受限。因此,一种高HUE,能适用所有LDPC码,能高速译码的译码方法是一种需求。
发明内容
本发明的目的是提供一种LDPC码的交叠译码方法,用以提高译码器的硬件资源利用率以及译码速率。
本发明提供的一种用于LDPC码的交叠译码方法,其步骤包括:
步骤1:对奇偶校验矩阵按列进行分组,每组具有相同的列数;
步骤2:对每个分组依次进行垂直更新运算;每个分组的垂直更新运算的结果参与本次迭代对应分组的水平更新运算以及下次迭代的对应分组的垂直更新运算;
步骤3:对每个分组依次进行水平更新运算;本次迭代的前一分组的水平更新运算的结果参与本次迭代当前分组的水平更新运算,最后一分组的水平更新运算的结果参与下次迭代的垂直更新运算;
步骤4:判断是否满足迭代停止条件或者译码成功,若是,则输出译码结果,结束译码;否则,重复上述步骤2至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
所述的步骤2进行垂直更新运算,具体是:第k次迭代时,与校验节点m相关联的变量节点j的译码迭代信息为:
Y m j k = a × Σ i ∈ M ( j ) \ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) \ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | )
第k次迭代时,变量节点j的后验概率为:
Z j k = a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | )
其中,m为校验节点的编号,j为变量节点的编号,常数a表示归一化因子,M(j)表示与变量节点j相关联的所有校验节点的集合,分别表示第k-1次迭代时与校验节点i相关联的第1到L组的变量节点的译码迭代信息的最小值与次小值,通过水平更新运算获得,L为分组数,sign函数是符号函数,表示第k-1次迭代时与校验节点i相关联的变量节点j的译码迭代信息。
当k=1时,设置等于初始化信息Ij,设置等于初始化信息Ij;Ij表示输入到译码器的变量节点j的初始化信息。
所述的步骤3进行水平更新运算,具体是:第k次迭代时,对位于第t分组的每一个校验节点m,统计与校验节点m相关联的所有变量节点的译码迭代信息的最小值和次小值
A m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( A m k , t - 1 ) M i n ( M i n j ∈ N ( m ) | Y m j k , t | , A m k , t - 1 )
B m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( B m k , t - 1 ) M i n ( ( M i n j ∈ N ( m ) | Y m j k , t | , | A m k , t - 1 | , | B m k , t - 1 | ) \ | A m k , t | )
其中,N(m)表示与校验节点m相关联的所有变量节点的集合,sign函数是符号函数,Min函数是求最小值函数,形式(A\B)表示集合A中除去B的集合;表示第k次迭代的与位于第t分组的校验节点m相关联的变量节点j的译码迭代信息。
对每次迭代的第1个分组,按照下式统计
A m k , 1 = Π j ∈ N ( m ) s i g n ( Y m j k , 1 ) M i n j ∈ N ( m ) | Y m j k , 1 |
B m k , 1 = Π j ∈ N ( m ) s i g n ( Y m j k , 1 ) M i n j ∈ N ( m ) ( | Y m j k , 1 | \ | A m k , 1 | )
其中,在k=1时的等于初始化信息Ij
所述步骤2和步骤3能同时进行,对奇偶校验矩阵的第一分组进行垂直更新运算后,在依次对奇偶校验矩阵第2~L个分组进行垂直更新运算的同时,开始依次对奇偶校验矩阵的第1~(L-1)个分组进行水平更新运算,相邻的两个分组的垂直更新运算和水平更新运算交叠进行。
所述步骤4中,在每次迭代的水平更新运算完成后,判断所有校验节点对应的全部译码迭代信息的符号位的异或结果是否均为0,若是,表示译码成功,否则,表示译码不成功。
本发明的优点与积极效果在于:利用本发明提供的交叠译码方法,能够提高LDPC码译码器的硬件资源利用率,提高译码速率,减少硬件资源消耗。
附图说明
图1为本发明所涉及的LDPC译码所用的校验矩阵示意图;
图2为本发明所涉及的LDPC译码所用的校验矩阵的一个具体示例;
图3为本发明对校验矩阵进行分组的一个具体示例;
图4为本发明的交叠译码方法的步骤流程图;
图5为本发明所提出的译码方法在低速应用下,垂直更新运算与水平更新运算交叠进行的示意图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明方法中,校验矩阵被分成若干个大小相等的列块,一个列块称为一个分组。各分组的迭代译码运算可以交叠进行,从而获得高的硬件利用率。和OMP算法、TDMP算法不同,本发明提出的方法在对矩阵进行分块时,没有特别的约束条件,并且各组之间没有依赖性。所以,本发明方法既可以用在低速应用场合也可以用在高速应用场合,且适用于大多数的LDPC码。
首先描述用于本发明实施例的奇偶校验矩阵。奇偶校验矩阵又称H矩阵,如图1所示,由q×p个Ai,j(1≤i≤q,1≤j≤p)矩阵组成,Ai,j作为H矩阵的子矩阵,是0矩阵或由循环行列式构成的b×b方阵,且各个循环行列式的重量通常很小,为1或者2。矩阵的重量是指矩阵一行中“1”的个数。定义奇偶校验矩阵包含的循环行列式的总重量为W,子矩阵的重量为e。H矩阵共有p×b列,那么对应的LDPC码字的码长为p×b,即该码字有p×b个变量节点;H矩阵共有q×b行,那么对应LDPC码字的校验位长度为q×b,即该码字有q×b个校验节点;于是此H矩阵对应LDPC码字的信息位长度为(p-q)×b,所以,对应的LDPC码字的码率(信息位长度/码长)为(p-q)/p。图2所示为一个具体的校验矩阵,标记为H0,其中p=16,q=2,b=511。H0的子矩阵Ai,j为重量e为2的方阵,校验矩阵重量W=64。从图2中可见,每一个子矩阵Ai,j中的斜线表示为矩阵元素为“1”的元素位置的轨迹,而其它空白位置上的元素为“0”。
本发明的用于LDPC码的交叠译码方法,包括四个步骤,如图4所示。
步骤1:对奇偶校验矩阵按列进行分组,分成若干大小相等的列块。
下面对照图2叙述对校验矩阵进行分组的方法。
本发明中对校验矩阵的分组的大小没有特殊的要求,一个分组包含的列数可以大于、等于或小于一个子矩阵的列数。对校验矩阵的分组的每一行的“1”的个数没有限制,可以为0、1,或者大于1的正整数。例如对H0进行分组,分组的大小可以等于511,即与子矩阵的列数相等,于是,H0被分成了511×16÷511=16组,如图3所示,16个分组从左到右分别标记为G1到G16,此时,每个分组的每一行的“1”的个数为2;或者将分组的大小设为1022,即一个分组包含两个子矩阵的列数,那么H0被分成了511×16÷1022=8组,此时,每个分组的每一行的“1”的个数为4;或者将分组的大小设为1,即一个分组仅包含1列,那么H0被分成了511×16÷1=8176组,此时,每个分组的每一行的“1”的个数为1或0。
步骤2:对每个分组依次进行垂直更新运算。每个分组的垂直更新运算的结果参与本次迭代对应分组的水平更新运算以及下次迭代的对应分组的垂直更新运算。
步骤3:对每个分组依次进行水平更新运算。本次迭代的前一分组的水平更新运算的结果参与本次迭代当前分组的水平更新运算,最后一分组的水平更新运算的结果参与下次迭代的垂直更新运算。
步骤4:判断是否满足迭代停止条件或者译码成功,若是,则输出译码结果,结束译码;否则,重复上述步骤2至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
下面叙述迭代译码过程中垂直更新运算与水平更新运算的方法。
首先进行符号定义。定义L为最大分组数,定义Ij表示输入到译码器的变量节点j的初始化信息,j=1,2,…,p×b;定义Ymj表示与校验节点m相关联的变量节点j的译码迭代信息,m=1,2,…,q×b,表示第k次迭代时的Ymj信息,设校验节点m位于第t分组,对应第k次迭代对应的Ymj信息表示为定义Am表示与校验节点m相关联的所有Ymj的最小值,Bm表示与校验节点m相关联的所有Ymj的次小值,分别表示第k次迭代、校验节点m前t个分组对应的Am和Bm信息;定义Zj表示变量节点j的后验概率,符号xj表示变量节点j的译码判决结果,X表示所有变量节点的译码判决结果;定义常数a表示归一化因子;定义M(j)表示与变量节点j相关联的所有校验节点的集合,定义N(m)表示与校验节点m相关联的所有变量节点的集合。那么本发明提出的使用归一化最小和(NMS,normalized min sum)算法进行消息传递的译码算法可以表述如下:
1.垂直更新运算VS(vertical stage),由垂直处理单元(VPU,verticalprocessing unit)完成。在第k(k=1,…,N,N为最大迭代次数)次迭代时,对于每一个变量节点j,计算Ymj和Zj如下:
Y m j k = a × Σ i ∈ M ( j ) \ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) \ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | ) - - - ( 1 )
Z j k = a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | ) - - - ( 2 )
当第一次迭代,即k=1时,设置等于初始化信息Ij,设置等于初始化信息Ij
由式(1)和式(2)可以看出,当前第k次迭代时的译码迭代信息和后验概率需要第k-1次迭代时的译码迭代信息以及第k-1次迭代时的分别表示第k-1次迭代时与校验节点i相关联的第1到L组的变量节点的译码迭代信息的最小值与次小值,通过水平更新运算获得。
2.水平更新运算HS(horizontal stage),由水平处理单元(HPU,horizontalprocessing unit)完成。在每一次迭代过程中,对于第k(k=1,…,N,N为最大迭代次数)次迭代,位于第t(t=1,…,L)分组的每一个校验节点m,统计与校验节点m相关联的所有变量节点的译码迭代信息的最小值和次小值如下:
A m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( A m k , t - 1 ) M i n ( M i n j ∈ N ( m ) | Y m j k , t | , A m k , t - 1 ) - - - ( 3 )
B m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( B m k , t - 1 ) M i n ( ( M i n j ∈ N ( m ) | Y m j k , t | , | A m k , t - 1 | , | B m k , t - 1 | ) \ | A m k , t | ) - - - ( 4 )
其中,当t=1时,即每次迭代的第1个分组,按照下式统计最小值和次小值:
A m k , 1 = Π j ∈ N ( m ) s i g n ( Y m j k , 1 ) M i n j ∈ N ( m ) | Y m j k , 1 | - - - ( 5 )
B m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) M i n j ∈ N ( m ) ( | Y m j k , 1 | \ | A m k , 1 | ) - - - ( 6 )
其中,sign函数是符号函数,Min函数是求最小值函数。公式中形式(A\B)表示集合A中除去B的集合。表示第k次迭代的与位于第t分组的校验节点m相关联的变量节点j的译码迭代信息;表示第k次迭代的与位于第1分组的校验节点m相关联的变量节点j的译码迭代信息。
由式(3)和(4)可知,当前第k次迭代时位于第t分组的校验节点m的需要位于第k次迭代时位于第t分组的校验节点m相关联的变量节点的译码迭代信息,以及第k-1次迭代时位于第t分组的校验节点m的
如图4所示,本发明的交叠译码方法,在每次迭代过程中,在对H矩阵的第一分组进行垂直更新运算后,可以在H矩阵第2~L个分组依次进行垂直更新运算的同时,开始依次对H矩阵的第1~(L-1)个分组进行水平更新运算,当前组的水平更新运算需要用到当前组的垂直更新运算的结果。
步骤4中,在每次迭代的L个分组的水平更新运算完成后,HPU将校验节点m对应的迭代信息Ymj的符号位进行异或运算,计算校验关系,如果所有校验节点m对应的全部迭代信息Ymj的符号位的异或结果均为0,即满足HT·X=0,则译码正确,输出译码结果,然后结束译码。或者,当当前迭代次数达到设定的最大迭代次数时,输出译码结果,结束译码。
垂直更新运算与水平更新运算反复进行,直到判决结果满足HT·X=0或者达到预设的最大迭代次数N时,迭代停止。
本发明实施例中,公式(1)~(6)中Ymj以及Am和Bm信息也可以用基于最小和算法的各种变体算法得到。这些算法都是本领域内公开技术,此处不再赘述。
实施例:
本实施例以图2所示的校验矩阵H0为例,阐述本发明提出的译码方法。
首先如图3所示,将H0分成L=16组。在本实施例中,将垂直更新运算并行度c设成1,即在译码器中设置一个VPU,一次可以对校验矩阵一个分组内的一列进行垂直更新运算;水平更新运算并行度设成2,即在译码器中设置两个HPU,一次可以对校验矩阵的一个分组中的两行进行水平更新运算。
下面叙述译码的迭代过程。
第一次迭代:
首先进行G1的垂直更新运算。从第1个时钟周期到第511个时钟周期,垂直处理单元依次将G1中第1列到第511列参与运算的变量节点对应的初始化信息Ij读出,并通过公式(1)和公式(2)计算得到G1对应的Ymj和Zj,通过Zj的符号可以得到判决结果xj。本领域内公知,在垂直处理单元中可以插入流水线,本发明实施例中使用P1表示流水线的级数,那么G1的第1列到第511列的垂直更新运算的结果分别在第1+P1个时钟周期到第511+P1个时钟周期得到。
然后进行G2的垂直更新运算。在第512个时钟周期到第1022个时钟周期,垂直处理单元依次将G2中第1列到第511列参与运算的变量节点对应的初始化信息Ij读出。随后通过公式(1)和公式(2)计算得到G2对应的Ymj和Zj以及判决结果xj。因此,G2的第1列到第511列的垂直更新运算的结果分别在第512+P1个时钟周期到第1022+P1个时钟周期得到。
和G1和G2的垂直更新运算类似的,垂直处理单元完成G3到G16的垂直更新运算。
下面描述水平更新运算。
首先描述G1的水平更新运算。当G1的垂直更新运算结束后,G1可以开始水平更新运算。如前所述,在第511+P1个时钟周期,G1的垂直更新运算完成,因此,G1的水平更新运算可从第512+P1个时钟周期开始执行。在第512+P1到第1022+P1个时钟周期,两个水平处理单元分别依次将G1的第1行到第511行以及第512行到第1022行参与运算的对应校验节点m的各Ymj读出,完成公式(5)和(6)中的运算,计算得到最小值与次小值
然后描述G2的水平更新运算。在G2的垂直更新运算结束后,即第1023+P1个时钟周期,G2的水平更新运算开始执行。在第1023+P1到第1533+P1个时钟周期,两个水平处理单元依次将G2的第1行到第511行以及第512行到第1022行参与运算的校验节点的Ymj读出,并将G1水平更新运算计算得到的最小值与次小值读出,完成公式(3)和(4)的运算,得到更新后的最小值和次小值和G2的水平更新运算类似的,水平处理单元完成G3到G16的水平更新运算。
与水平更新运算同时的,水平处理单元根据更新的判决结果xj进行校验,判定各行校验节点对应的判决结果xj的异或结果是否等于0。如果所有行的校验结果都等于0,则停止迭代。
至此,第一次迭代完成。
之后的各次迭代与第一次迭代类似,不同之处在于:第一次迭代,垂直处理单元读取Ij完成公式(1)和(2)的运算,而之后的第k次迭代,垂直更新运算单元需要读取Ij以及上一次迭代中水平更新运算的结果完成公式(1)和(2)中的运算。
各次迭代依次进行,直到达到最大迭代次数或者满足所有行的校验结果等于0,即满足校验方程HT·X=0为止。译码步骤的流程图如图4所示。
至此,本发明提出的译码方法完成。
整个迭代流程的交叠方案示意图如图5所示。可以看出,本发明提出的交叠译码方法一次迭代的时间是(L+1)b+P1个时钟周期。其中,L是奇偶校验矩阵的分组数目,b是分组大小,P1是垂直处理单元插入的流水线级数。而垂直更新运算与水平更新运算在Lb个时钟周期内交叠进行,因此,译码器的硬件利用率HUE可以由下式近似算出:
HUE=Lb/[(L+1)b+P1]≈L/(L+1) (7)
对于本实施例而言,校验矩阵被分成了16组,因此HUE近似等于16/17,而传统的译码方法的HUE仅为1/2。因此,根据本领域公认的HUE的物理含义,在硬件资源相当的情况下,本发明提出的译码方法的译码速率接近传统译码方法的两倍,或者在译码速率相等的情况下,本发明提出的译码方法能节省约一半的硬件资源。
通过上述说明,可以看出,本发明的交叠译码方法,打破了传统双向译码算法中两种更新运算之间的顺序约束关系,能使不同分组的垂直更新运算和水平更新运算交叠、流水进行,从而能减少迭代时间,提高译码速率。和现有的双向译码算法相比,应用本发明的交叠译码方法能在抗误码性能不变、硬件资源略微增加的情况下,提高接近一倍的译码速率;和现有的单向译码算法(例如TDMP算法)相比,本发明的交叠译码方法适用的LDPC码范围更广,不需要满足分层的约束条件,而且不同层的更新运算可以完全流水进行,在并行度较高的情况下,获得比单向译码算法更快的译码速率。

Claims (3)

1.一种用于LDPC码的交叠译码方法,其特征在于,包括如下步骤:
步骤1:对奇偶校验矩阵按列进行分组,每组具有相同的列数;设L为分组数;
步骤2:对每个分组依次进行垂直更新运算;每个分组的垂直更新运算的结果参与本次迭代对应分组的水平更新运算以及下次迭代的对应分组的垂直更新运算;
所述的垂直更新运算,具体为:
第k次迭代时,与校验节点m相关联的变量节点j的译码迭代信息为:
Y m j k = a × Σ i ∈ M ( j ) , i ≠ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) , i ≠ m { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | )
第k次迭代时,第j个变量节点的后验概率为:
Z j k = a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | A i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | ≠ | A i k - 1 , L | ) a × Σ i ∈ M ( j ) { s i g n ( A i k - 1 , L ) × s i g n ( Y i j k - 1 ) × | B i k - 1 , L | } + I j ( w h e n | Y i j k - 1 | = | A i k - 1 , L | )
其中,常数a表示归一化因子,M(j)表示与变量节点j相关联的所有校验节点的集合,分别表示第k-1次迭代时与校验节点i相关联的第1到L组的变量节点的译码迭代信息的最小值与次小值,通过水平更新运算获得;sign函数是符号函数,表示第k-1次迭代时与校验节点i相关联的变量节点j的译码迭代信息;
当k=1时,设置等于初始化信息Ij,设置等于初始化信息Ij;Ij表示输入到译码器的变量节点j的初始化信息;
步骤3:对每个分组依次进行水平更新运算;本次迭代的前一分组的水平更新运算的结果参与本次迭代当前分组的水平更新运算,最后一分组的水平更新运算的结果参与下次迭代的垂直更新运算;
所述的水平更新运算,具体是:
第k次迭代时,对位于第t分组的每一个校验节点m,统计与校验节点m相关联的所有变量节点的译码迭代信息的最小值和次小值t=1,…,L:
A m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( A m k , t - 1 ) M i n ( M i n j ∈ N ( m ) | Y m j k , t | , A m k , t - 1 )
B m k , t = Π j ∈ N ( m ) s i g n ( Y m j k , t ) s i g n ( B m k , t - 1 ) M i n ( ( M i n j ∈ N ( m ) | Y m j k , t | , | A m k , t - 1 | , | B m k , t - 1 | ) \ | A m k , t | )
其中,N(m)表示与校验节点m相关联的所有变量节点的集合,sign函数是符号函数,Min函数是求最小值函数,形式(A\B)表示集合A中除去B的集合;表示第k次迭代的与位于第t分组的校验节点m相关联的变量节点j的译码迭代信息;
对每次迭代的第1个分组,按照下式统计
A m k , 1 = Π j ∈ N ( m ) s i g n ( Y m j k , 1 ) M i n j ∈ N ( m ) | Y m j k , 1 |
B m k , 1 = Π j ∈ N ( m ) s i g n ( Y m j k , 1 ) M i n j ∈ N ( m ) ( | Y m j k , 1 | \ | A m k , 1 | )
其中,k=1时的等于初始化信息Ij,Ij表示输入到译码器的变量节点j的初始化信息;
步骤4:判断是否满足迭代停止条件或者译码成功,若是,则输出译码结果,结束译码;否则,重复步骤2至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
2.根据权利要求1所述的用于LDPC码的交叠译码方法,其特征在于,所述的步骤2中,对奇偶校验矩阵的第一分组进行垂直更新运算后,在依次对奇偶校验矩阵第2~L个分组进行垂直更新运算的同时,开始依次对奇偶校验矩阵的第1~(L-1)个分组进行水平更新运算,相邻的两个分组的垂直更新运算和水平更新运算交叠进行。
3.根据权利要求1所述的用于LDPC码的交叠译码方法,其特征在于,所述的步骤4中,在每次迭代的水平更新运算完成后,判断所有校验节点对应的全部译码迭代信息的符号位的异或结果是否均为0,若是,表示译码成功,否则,表示译码不成功。
CN201410010490.3A 2014-01-09 2014-01-09 一种用于ldpc码的交叠译码方法 Active CN103731161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410010490.3A CN103731161B (zh) 2014-01-09 2014-01-09 一种用于ldpc码的交叠译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410010490.3A CN103731161B (zh) 2014-01-09 2014-01-09 一种用于ldpc码的交叠译码方法

Publications (2)

Publication Number Publication Date
CN103731161A CN103731161A (zh) 2014-04-16
CN103731161B true CN103731161B (zh) 2017-01-25

Family

ID=50455110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410010490.3A Active CN103731161B (zh) 2014-01-09 2014-01-09 一种用于ldpc码的交叠译码方法

Country Status (1)

Country Link
CN (1) CN103731161B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726481B (zh) * 2022-03-09 2023-12-22 鹤壁天海电子信息系统有限公司 一种5g nr ldpc译码方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110593A (zh) * 2007-06-01 2008-01-23 清华大学 Qc-ldpc译码器水平运算单元快速流水线级联结构
CN101594152A (zh) * 2009-07-03 2009-12-02 清华大学 实现水平运算和垂直运算同时运行的ldpc码译码方法
CN101924564A (zh) * 2009-06-17 2010-12-22 中国科学院微电子研究所 行列节点同步更新的部分并行准循环ldpc码译码器结构
CN102412843A (zh) * 2011-07-28 2012-04-11 清华大学 自适应的归一化最小和ldpc译码方法及译码器
US8429483B1 (en) * 2007-12-12 2013-04-23 Marvell International Ltd. Edge-based decoders for low-density parity-check codes

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110124659A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110593A (zh) * 2007-06-01 2008-01-23 清华大学 Qc-ldpc译码器水平运算单元快速流水线级联结构
US8429483B1 (en) * 2007-12-12 2013-04-23 Marvell International Ltd. Edge-based decoders for low-density parity-check codes
CN101924564A (zh) * 2009-06-17 2010-12-22 中国科学院微电子研究所 行列节点同步更新的部分并行准循环ldpc码译码器结构
CN101594152A (zh) * 2009-07-03 2009-12-02 清华大学 实现水平运算和垂直运算同时运行的ldpc码译码方法
CN102412843A (zh) * 2011-07-28 2012-04-11 清华大学 自适应的归一化最小和ldpc译码方法及译码器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
High Hardware Utilization and Low Memory Block Requirement Decoding of QC-LDPC Codes;ZHAO Ling;《Chinese Journal of Aeronautics》;20121231;第747页-第756页 *
准循环LDPC码的部分并行译码算法;赵建功和刘香玲;《无线电工程》;20120205;第42卷(第2期);正文第56页左栏第3行-第25行 *
赵岭 等.一种用于规则QC-LDPC码的高效译码方法.《计算机工程》.2008,第34卷(第14期),第9页-第11页. *

Also Published As

Publication number Publication date
CN103731161A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN101106381B (zh) 分层的低密度校验码译码器及译码处理方法
CN102084346B (zh) 用于存储器的多路访问的地址生成
CN100425000C (zh) 双涡轮结构低密度奇偶校验码解码器及解码方法
CN101232288B (zh) 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器
CN109891753A (zh) 用于编码和译码ldpc码的方法和装置
CN103281090B (zh) 混合修正加权比特翻转的ldpc译码算法
CN100542049C (zh) 一种多码率的ldpc码的译码器装置及译码方法
CN101621299A (zh) 一种突发纠错的方法、设备和装置
CN104124980B (zh) 适合连续变量量子密钥分发的高速秘密协商方法
CN106330203A (zh) 一种ldpc的解码方法
CN103916134B (zh) 低密度奇偶校验码的混叠译码方法及多核协同混叠译码器
CN102843145A (zh) 一种低码率准循环累积重复累积码构造方法
Tian et al. Polar coding for deletion channels: Theory and implementation
CN102291153B (zh) Cmmb中ldpc码的译码方法及部分并行译码器
CN107968657A (zh) 一种适用于低密度奇偶校验码的混合译码方法
CN102420616B (zh) 基于拉丁方阵的准循环ldpc码纠错方法
CN103731157B (zh) 准循环低密度校验码的联合构造方法
CN103731161B (zh) 一种用于ldpc码的交叠译码方法
CN103199877B (zh) 一种结构化ldpc卷积码构造编码方法
Li et al. Rank distribution analysis for sparse random linear network coding
CN102832954B (zh) 一种基于软信息平均最小值的Turbo码译码迭代停止方法
CN105515588B (zh) 一种ldpc‑cc高速译码器
CN103368585A (zh) 一种ldpc码校验矩阵的构造方法
WO2020108306A1 (zh) 译码方法、译码装置及译码器
CN101777920B (zh) 低密度奇偶校验码的编码方法和编码译码装置

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