A Layered Decoding Algorithm for Spatially-coupled LDPC Codes
-
摘要:
针对长码长空间耦合低密度奇偶校验(SC-LDPC)码译码时延较长的问题,该文提出了分层滑动窗译码(LSWD)算法。该算法利用SC-LDPC子码码块的准循环特性和滑动窗内校验矩阵的层次结构,通过在滑动窗内对校验矩阵进行分层处理,优化层与层之间消息传递,从而加快窗内译码的收敛速度,减少了译码迭代次数。仿真和分析结果表明:在相同的信噪比(SNR)条件和相同的误码性能要求下,LSWD算法所需的迭代次数少于滑动窗译码(SWD)算法,特别在高信噪比下,LSWD算法的迭代次数约为SWD算法的一半,从而有效缩短全局译码时延;在相同译码迭代次数下,LSWD算法的译码性能优于SWD算法,而其计算复杂度增加不大。
-
关键词:
- 空间耦合低密度奇偶校验码 /
- 分层算法 /
- 译码延时 /
- 滑动窗
Abstract:In order to solve the problem of the long decoding delay for the Spatially-Coupled Low-Density Parity-Check (SC-LDPC) code with long code length, a Layered Sliding Window Decoding (LSWD) algorithm is proposed. By exploring the quasi-cyclic characteristics of the SC-LDPC sub-codeblock and the hierarchical structure of the check matrix in the sliding window, the part of check matrix in the sliding window is layered to optimize the message transfer between two neighbor layers, with the aim of accelerating the convergence of the iterative procedure and reducing the number of decoding iterations. Simulation and analysis results show that the number of iterations in the proposed LSWD algorithm is less than that in the SWD, under the same Signal-to-Noise Ratio (SNR) and the bit error ratio. In the high SNR region, especially, the number of iterations in the proposed LSWD is about half of that in the SWD, hence the global decoding delay of the former is effectively shorten. In addition, the decoding performance of the LSWD algorithm is better than the SWD algorithm under the same number of decoding iterations, and the overall computational complexity is slightly increased.
-
1. 引言
空间耦合低密度奇偶校验(Spatially Coupled Low-Density Parity-Check, SC-LDPC)码具有置信传播(Belief Propagation, BP)译码门限接近最大后验门限的特性[1],同时,在二进制擦除信道[2]、双向中继信道[3]中表现出优异的性能,因此,在未来的移动通信、深空通信、磁盘存储系统等领域有广阔的应用前景。SC-LDPC码原模图是由多个基本LDPC码的原模图副本进行边的重新排列而得到。具有单边连接对称原模图结构的SC-LDPC码[2-5]是目前学术界的研究热点,其特点是结构简单,重排后原模图的每个变量节点单元仅与相邻的多个校验节点单元进行单边连接且上下对称。
当SC-LDPC码的码长较长,导致其译码算法的复杂度较高,译码时延较长。SC-LDPC码的译码算法有全块译码(Full Block Decoding, FBD)[5,6]和滑动窗译码(Sliding Windowed Decoding, SWD)[2,7-11],两者都使用BP类算法进行迭代译码。FBD算法将整个校验矩阵用于变量节点和校验节点的更新,但当耦合长度和扩展因子较大时,导致极高复杂度。SWD算法仅使用部分校验矩阵对接收软信息进行连续译码,在译码过程中译码窗沿着校验矩阵的对角线滑动,降低译码复杂度和延时。文献[2]设计了特定的码集,对SWD算法的译码性能和延时进行折中考虑。文献[8]提出了一种基于可信度的改进SWD算法,提高了相邻窗之间软信息的关联度。文献[9]充分利用耦合链上收敛码字的可信度信息,提出了一种Z字形SWD方案,将正确译码的码字信息前向或反向传递给未正确译码的码字。文献[11]提出了SWD算法的迭代终止方案,同时重复使用先前窗目标符号节点信息,并通过放大先前窗的边信息以降低错误平层,提升译码性能。上述文献均提高了SWD算法的译码性能,但在降低译码延时方面的研究较少。
为了进一步降低SC-LDPC码的译码延时,本文在SWD算法的基础上提出了分层SWD (Layered SWD, LSWD)算法,该算法是一种低复杂度的低延时SC-LDPC码译码算法。从码的结构来看,单边连接对称原模图结构的SC-LDPC码具有分层处理的先天优势。SC-LDPC码层内的循环检验矩阵具有列重不大于1的特性,这种特性为LSWD算法提供了基础。该算法通过在SWD算法的译码窗内对校验矩阵进行分层处理,充分挖掘每个子码块的准循环特性和滑动窗内校验矩阵的层次关联特性结构[12],加快整体SC-LDPC窗内译码过程的收敛速度,减少了译码的迭代次数,降低整体的译码时延。仿真结果表明:在相同的信噪比条件和相同的误码性能要求下,LSWD算法所需的迭代次数小于滑动窗译码(SWD)算法,特别在高信噪比下,LSWD算法的迭代次数约为SWD算法的一半,从而有效缩短全局译码时延;在相同译码迭代次数下,LSWD算法的译码性能优于SWD算法,而其计算复杂度增加不大。
2. SC-LDPC码及其SWD算法
SC-LDPC码的构造是先将单个LDPC码的原模图复制多个相同的副本,然后将原模图进行边重排,得到新的耦合图[9-13]。图1给出了SC-LDPC码原模图的构造过程,其中,
V 为变量节点集合,C 为校验节点集合。图1(a)为基本LDPC码原模图,度为(J,K) 。图1(b)为基本原模图重复L 次,L 为耦合长度。图1(c)表示对L个单元进行边重排后的原模图,其中,序号为l 的变量节点单元连接到序号为l+s 的m+1 个相邻校验节点单元集合,m 为码的约束长度,l∈[1,L] ,s=0,1,···,m 。上述SC-LDPC码的校验矩阵表示为[9]
H[L]=[H1(0)H1(1)H2(0)⋮H2(1)⋱H1(m)⋮⋱Hm+1(0)H2(m)⋱Hm+1(1)⋱⋱⋮⋱HL−m(0)Hm+1(m)⋱HL−m(1)HL−m+1(0)⋱⋮HL−m+1(1)⋱HL−m(m)⋮⋱HL(0)HL−m+1(m)⋱HL(1)HL(m)](L+m)JgM×LKgM (1) 其中,
Hl(s) 表示单个子码码块校验矩阵,扩展后的维度为JgM×KgM ,其中M 为矩阵扩展因子,Jg=J/gcd(J,K) ,Kg=K/gcd(J,K) ,gcd(J,K) 为J 与K 的最大公约数,通常情况下满足gcd(J,K)=m+1 。Hl(s) 由Jg×Kg 个M×M 的单位矩阵或单位矩阵的循环移位矩阵构成。式(1)中H[L] 空白处的元素全为0。本文取J=3 ,K=6 ,则有Jg=1 ,Kg=2 ,m=2 ,此时Hl(s)=[1,1] ,其中1元素使用M×M 单位阵的循环移位矩阵。SC-LDPC码的校验矩阵具有特殊的对角线结构特性,距离超过
(m+1)×M 的两个变量节点不会出现在同一个码字的校验约束中,这就为窗译码提供了基础,可采用滑动窗的形式对窗内单元LDPC码进行译码,即SWD算法,其基本思路是,含有部分耦合单元的滑动译码窗沿着校验矩阵的对角线滑动,在窗内译码时仍采用BP类算法,常见的有BP译码、LLR-BP译码、最小和译码等[14]。相比于传统全块BP译码算法,SWD算法具有较小的译码复杂度,同时可以对信道软信息边接收边译码,能够有效降低译码时延。图2给出了SWD算法滑动过程示例。当接收到长度与窗长度相等的软信息后,便开始窗译码;当达到最大迭代次数或者目标符号译码正确时,停止当前窗的译码迭代,输出目标符号的译码结果,并更新窗内的可信度信息;最后再将译码窗沿校验矩阵对角线向右下方移动到下一个译码窗位置,进行下一个窗的译码操作;如此循环操作直至译码窗移动到校验矩阵结尾,完成一帧SC-LDPC译码。在SWD算法中,设置滑动窗的长度为
W ,窗内含有WJgM 个检验节点和WKgM 个变量节点,其中m+ 1≤W≤L 。3. LSWD算法
SC-LDPC码译码算法的时延主要包括信道软信息接收时延和迭代译码过程时延。SWD算法从缩短信道软信息接收时延方面努力,只需要接收当前处理码块窗内的信道软信息即可开始译码,因而减少了总体译码时延。为了进一步缩短译码时延,本文在SWD算法的基础上提出了LSWD算法,通过在SWD算法的译码窗内采用分层调度的译码策略,使变量节点的收敛速度加快,因此减少了译码迭代次数,降低了译码时延。一方面,分层译码是一种有效降低准循环LDPC码译码延时的算法[14],其优化了层间的消息传递,因而比常规BP译码的收敛速度更快。另一方面,从码的结构来看,单边连接对称原模图结构的SC-LDPC码具有分层处理的先天优势。SC-LDPC码原模图的重排导致单个LDPC码块对应的校验矩阵分裂为多个子码码块,其均为单位阵的循环移位矩阵。子码码块之间的校验关联矩阵在译码中对应在同一分层内,层内的检验矩阵也具有列重不大于1的特性,因此窗内校验矩阵的这种特性为分层滑动窗算法提供了基础。
图3给出了滑动窗内矩阵分层结构的示例。在每个译码窗内,将整个校验矩阵分为
W 层,即分层数与滑动窗的长度相等;而窗内每个子码码块的校验矩阵分为m+1 层,属于同一个校验约束的子码码块划分在同一层内。LSWD译码过程中每一层的译码完成后,更新的变量节点间信息立即传递到下一层进行译码更新。下文将给出LSWD算法的具体过程描述,其中,窗内译码采用LLR-BP算法,也可采用其它BP类算法。数据经过编码和BPSK映射,并叠加加性高斯白噪声((Additive White Gaussian Noise, AWGN)。当接收到窗内
W 个子码码块的对应的信号后,进行窗内变量节点的初始化,以对数似然比表示为Lp(vi)=2yi/σ2 (2) L(k,w)p(Rj,i)=0 (3) 其中,
yi 表示窗内第i 个比特对应的接收信号,σ2 为零均值AWGN信道的方差,Lp(vi) 表示第p 个译码窗的第i 个变量节点的信息,L(k,w)p(Rj,i) 表示窗内与第j 个校验节点相连的变量节点的校验信息,p 为当前译码窗序号,k 表示迭代次数,w 为译码层序号,1≤i≤WJgM ,0≤j≤M 。式(3)中,不失一般性,窗内每层校验信息的初始值为全0。在第
p 个译码窗内,第k 次迭代的第w 层译码开始时,当前第w 层变量节点的信息为L(k,w)p(vi)=Lp(vi) (4) 在每层的译码之前需要进行变量节点信息的修正,表示为
L(k,w)p(vi,j)=L(k,w)p(vi)−L(k−1,w)p(Rj,i) (5) 其中,
L(k,w)p(vi) 表示第p 个窗内第k 次迭代的第w 层中变量节点i 的信息,L(k,w)p(vi,j) 表示与窗内第j 个校验节点相连的变量节点i 的信息。与SWD算法不同的是,所提的LSWD算法在变量节点信息的处理上增加了信息修正的计算过程,这样增加了变量节点信息的可靠性。在变量节点信息修正后,利用新的变量节点信息求出对应的校验节点信息
L(k,w)p(Rj,i)=∏i′∈N(j)∖isgn(L(k,w)p(vi′,j))×ϕ[∑ϕi′∈N(j)∖i(L(k,w)p(vi′,j)] (6) 其中,函数
ϕ(x)=−ln(tanh(|x|/2))=ln((ex+1)/ (ex−1)) ,i′∈N(j)∖i 是除i 外与校验节点j 相连的变量节点集合,sgn() 为取符号函数。在完成窗内第
w 层的校验信息更新后,进行该层变量节点的信息更新Lp(vi)=L(k,w)p(vi,j)+L(k,w)p(Rj,i) (7) 在译码过程中,一层的变量节点信息更新完成后,重叠部分的变量节点信息将会立刻传入下一层再次进行更新。在LSWD更新过程中,由于分层的节点优化调度策略使得在一次迭代译码过程中变量节点将会进行多次的计算更新,这样便加快了变量节点的收敛速度。所提LSWD算法的特点是充分利用SC-LDPC码校验矩阵准循环特性,对译码窗内对校验矩阵进行分层实现译码中的分层调度,其核心仍是以BP算法为基础进行译码。
下面分析对比所提的LSWD算法与SWD算法的计算复杂度,表1给出了两种算法在一个滑动窗内的单次迭代过程所需的计算量。分析中,以码率为1/2的
(N,J,K) 的SC-LDPC码为例,N=KgM×L 为码长。从表中可以看出,两个算法的单次迭代计算量仅在加法运算量上有差别。由于ϕ(x) 运算是由乘法、指数、对数等运算构成,其运算量远大于加法运算,单次迭代过程中LSWD算法的计算复杂度略大于SWD算法。表 1 译码算法单次迭代过程的计算量比较译码算法 加法运算 ϕ(x)运算 SWD Kg×M×W×(J+K+1) 2Kg×M×W×J LSWD Kg×M×W×(2J+K+1) 2Kg×M×W×J 4. 仿真分析
下面通过仿真来验证所提LSWD算法的性能,并与SWD算法[2,11]进行了对比。如无特殊说明,仿真中所采用的参数如下:译码算法中译码窗长度
W 为7;SC-LDPC码的校验矩阵参数如图4所示[11],其中J 为3,K 为6,m 为2,重复周期为3,矩阵内阴影部分的数字表示单位矩阵循环右移的位数,耦合长度L为30,码扩展因子M 为256。图5给出了所提LSWD算法和SWD算法在不同迭代次数时的比特错误概率(Bit Error Ratio, BER)曲线,其中最大迭代次数分别取为5和10。图6给出了两种算法的译码性能与最大迭代次数的关系,其中信噪比分别为2.5 dB, 4.0 dB。综合分析图5和图6的仿真结果,可以看出:(1)所提算法和现有文献的SWD算法的误码性能曲线都有明显的瀑布区。(2)当迭代次数相同时,所提算法的性能优于SWD算法。如,当译码迭代为50次、译码窗长度为9时,为达到10–6 BER,所提算法所需的信噪比值为3.9 dB,而目前常用的SWD算法则需要4.2 dB,所提算法约有0.3 dB的性能优势。(3)在译码性能基本相同时,与SWD算法相比,所提算法可以明显减少译码迭代次数。例如,当信噪比为2.5 dB时,为了获得10–3的BER,所提算法和SWD算法所需的迭代次数分别为7和11;当信噪比为4.0 dB时,为了达到10–5的BER,所提算法和SWD算法所需的迭代次数分别为12和20,此时所提算法的迭代次数较SWD算法减小了约一半,从而有效降低了译码延时,提高了译码吞吐量。
下面简要说明相同迭代次数下LSWD算法的译码性能优于SWD算法的原因。两种算法的变量节点后验概率的更新规则是相同的,而两者的校验节点更新规则不同。LSWD算法在逐层计算更新时,对于每一层在校验节点更新时其所关联的变量节点可以分为两部分,第1部分为前一次迭代更新的变量节点信息,另一部分为本次迭代时先于当前层已经更新的变量节点信息。如此,在某一层的校验节点更新时会及时的利用本次迭代已更新的变量节点信息参与译码,从而加速变量节点的收敛速度。而对于SWD算法,其译码窗内的BP类译码在校验节点更新时,其关联的变量节点信息全部为上一次迭代后的更新信息。因此,与SWD算法相比,相同迭代次数下LSWD算法的译码性能要优于SWD算法。
图7给出了所提LSWD算法在不同译码窗长度时的译码性能,其中窗长度
W 分别为4, 5, 6, 7,扩展因子M 为64。从图中可看出,所提算法的译码性能会随着滑动窗长度的增加而提高。在BER达到10–3时,与窗长度W=4 时的性能相比,W 为5, 6, 7时所提算法分别有约0.4 dB, 0.8 dB, 1.4 dB的性能增益,译码性能会随着滑动窗长度的增加而提高。SC-LDPC码在构造时可以通过设置不同的扩展因子
M 值来适应不同码长的需求。M 值越大,单个子码长度会变大,因而在耦合长度一定时,SC-LDPC码的码长会越大。图8给出了所提LSWD算法在不同的校验矩阵扩展因子下的译码效果,其中,校验矩阵扩展因子M 分别选为64, 128和256。译码算法的仿真译码窗长度为7。从仿真结果可知:(1)所提算法在不同的校验矩阵扩展因子下均表现出较好的译码效果,能够适应不同码长的SC-LDPC码。(2)校验矩阵扩展因子越大,码长越长,所提算法译码性能越好。综合分析图7和图8可知,矩阵扩展因子和译码窗长度的增大均会对译码性能改善有着明显的作用,但是这两个参数的增大均会增加窗内译码的复杂度,所以需要根据实际情况,权衡译码性能和复杂度,选取合适的矩阵扩展因子大小和译码窗长度。
5. 结束语
针对SC-LDPC码的译码复杂度较高、译码时延较大的问题,本文基于SWD算法提出了分层滑动窗LSWD译码算法,以降低SWD算法的译码延时。该算法充分利用SC-LDPC子码码块的准循环特性和滑动窗内的校验矩阵层次结构,通过在译码窗内采用分层调度的译码策略,加快译码过程中变量节点的收敛速度,从而减少了译码的迭代次数,降低了整体的译码时延。复杂度分析表明,本文所提LSWD算法单次译码迭代的复杂度略高于SWD算法。仿真结果表明,本文算法以较少的迭代次数,达到了与SWD算法相同的误码性能,从而有效地降低了全局译码延时,且适用于不同校验矩阵扩展因子的SC-LDPC码。
-
表 1 译码算法单次迭代过程的计算量比较
译码算法 加法运算 ϕ(x)运算 SWD Kg×M×W×(J+K+1) 2Kg×M×W×J LSWD Kg×M×W×(2J+K+1) 2Kg×M×W×J -
KUDEKAR S, RICHARDSON T, and URBANKE R L. Spatially coupled ensembles universally achieve capacity under belief propagation[J]. IEEE Transactions on Information Theory, 2013, 59(12): 7761–7813. doi: 10.1109/TIT.2013.2280915 IYENGAR A R, PAPALEO M, SIEGEL P H, et al. Windowed decoding of protograph-based LDPC convolutional codes over erasure channels[J]. IEEE Transactions on Information Theory, 2012, 58(4): 2303–2320. doi: 10.1109/TIT.2011.2177439 SCHWANDTER S, AMAT A G I, and MATZ G. Spatially-coupled LDPC codes for decode-and-forward relaying of two correlated sources over the BEC[J]. IEEE Transactions on Communications, 2014, 62(4): 1324–1337. doi: 10.1109/TCOMM.2014.020514.130317 MITCHELL D G M, LENTMAIER M, and COSTELLO D J. Spatially coupled LDPC codes constructed from protographs[J]. IEEE Transactions on Information Theory, 2015, 61(9): 4866–4889. doi: 10.1109/TIT.2015.2453267 XIE Yixuan, YANG Lei, KANG Peng, et al. Euclidean geometry-based spatially coupled LDPC codes for storage[J]. IEEE Journal on Selected Areas in Communications, 2016, 34(9): 2498–2509. doi: 10.1109/JSAC.2016.2603703 贺文武, 夏巧桥, 邹炼. 基于变量节点更新的交替方向乘子法LDPC惩罚译码算法[J]. 电子与信息学报, 2018, 40(1): 95–101. doi: 10.11999/JEIT170358HE Wenwu, XIA Qiaoqiao, and ZOU Lian. Alternating direction method of multipliers LDPC penalized decoding algorithm based on variable node update[J]. Journal of Electronics &Information Technology, 2018, 40(1): 95–101. doi: 10.11999/JEIT170358 IYENGAR A R, SIEGEL P H, URBANKE R L, et al. Windowed decoding of spatially coupled codes[J]. IEEE Transactions on Information Theory, 2013, 59(4): 2277–2292. doi: 10.1109/TIT.2012.2231465 KANG Peng, XIE Yixuan, YANG Lei, et al. Reliability-based windowed decoding for spatially coupled LDPC codes[J]. IEEE Communications Letters, 2018, 22(7): 1322–1325. doi: 10.1109/LCOMM.2018.2835466 ABU-SURRA S, PISEK E, and TAORI R. Spatially-coupled low-density parity check codes: zigzag-window decoding and code-family design considerations[C]. Information Theory and Applications Workshop, San Diego, USA, 2015: 275-281. doi: 10.1109/ITA.2015.7309001. SCHLÜTER M, HASSAN N U, and FETTWEIS G P. On the construction of protograph based SC-LDPC codes for windowed decoding[C]. 2018 IEEE Wireless Communications and Networking Conference, Barcelona, Spain, 2018: 15–18. doi: 10.1109/WCNC.2018.8377289. ALI I, KIM J H, KIM S H, et al. Improving windowed decoding of SC LDPC codes by effective decoding termination, message reuse, and amplification[J]. IEEE Access, 2017, 6: 9336–9346. doi: 10.1109/ACCESS.2017.2771375 TADAYON M H, TASDIGHI A, BATTAGLIONI M, et al. Efficient search of compact QC-LDPC and SC-LDPC convolutional codes with large girth[J]. IEEE Communications Letters, 2018, 22(6): 1156–1159. doi: 10.1109/LCOMM.2018.2827959 穆丽伟, 刘星成, 张涵. 高性能时不变LDPC卷积码构造算法研究[J]. 电子与信息学报, 2016, 38(9): 2274–2279. doi: 10.11999/JEIT151376MU Liwei, LIU Xingcheng, and ZHANG Han. New ensemble of time-invariant LDPC convolutional codes with high performance[J]. Journal of Electronics &Information Technology, 2016, 38(9): 2274–2279. doi: 10.11999/JEIT151376 CHEN Xiaoheng, LIN Shu, and AKELLA V. QSN-a simple circular-shift network for reconfigurable quasi-cyclic LDPC decoders[J]. IEEE Transactions on Circuits and Systems II: Express Briefs, 2010, 57(10): 782–786. doi: 10.1109/TCSII.2010.2067811 期刊类型引用(7)
1. 周华,李子杰. 空间耦合低密度奇偶校验码残差滑窗译码算法. 电子与信息学报. 2024(03): 867-874 . 本站查看
2. 葛旗伟,周华,李子杰. 对抗错误传播的SC-LDPC码多目标符号窗译码算法. 计算机与数字工程. 2024(09): 2561-2565 . 百度学术
3. 罗洁,王中训. 基于层译码策略LDPC译码的改进算法. 电子设计工程. 2023(07): 132-135+140 . 百度学术
4. 周华,葛旗伟,张锐,司闯. 消息复用下的空间耦合LDPC码窗译码优化算法. 电讯技术. 2022(09): 1265-1271 . 百度学术
5. 洪少华,马文卓,王琳. 截断式原模图低密度奇偶校验卷积码边扩展优化. 电子与信息学报. 2021(01): 45-50 . 本站查看
6. 袁伟杰,李双洋,种若汐,白宝明,D W K NG. 面向6G物联网的分布式译码技术. 电子与信息学报. 2021(01): 21-27 . 本站查看
7. 赵生妹,徐鹏,张南,孔令军. 基于CNN扰动的极化码译码算法. 电子与信息学报. 2021(07): 1900-1906 . 本站查看
其他类型引用(10)
-