2. 广西大学计算机与电子信息学院,广西南宁 530004;
3. 广西多媒体通信与网络技术重点实验室,广西南宁 530004
2. School of Computer, Electronics and Information, Guangxi University, Nanning, Guangxi, 530004, China;
3. Guangxi Key Laboratory of Multimedia Communications and Network Technology, Nanning, Guangxi, 530004, China
现代通信系统自出现以来,实现更安全、更高效及更可靠的通信方式是人类一直以来追求的目标。随着信息技术的高速发展,特别是在深度学习和人工智能等领域取得的巨大进步,大大加速了云计算、无人驾驶以及车联网等新型技术的应用。同时,对通信系统也提出了更高的可靠性、更小的时延以及更大的数据带宽要求。信道编码是通信系统中的基础核心技术,(Low Density Parity Check, LDPC)译码作为优秀的信道编码方案,具有纠错性能好且易于并行译码的特点,吸引了来自国内外众多研究者的关注。LDPC码由Gallager[1, 2]首次提出,但受限于当时的硬件技术水平,其译码算法难以实现,在此后的30多年间基本被研究者忽略。到20世纪90年代中后期,随着计算机及硬件技术的发展,特别是Mackay等[3-6]开展的系列研究,重新掀起了人们对LDPC码的关注,围绕LDPC码的研究取得了大量实用的研究成果[7-11]。由于众多研究者的努力,在2016年底,3GPP RAN1#86次会议决定将准循环LDPC码确定为5G-eMBB通信环境下大数据包(长码)的信道编码方案。
一般情况下,可以将LDPC码的译码算法分为以下3个种类[12]:①软判决译码算法,②硬判决译码算法,③基于可靠度的译码算法。软判决译码算法主要为和积译码算法(SPA)与其改进算法,在上述算法中性能最优,但由于在算法中采用浮点数乘法以及对数运算,其计算复杂度非常高。早期的硬判决算法主要有Gallager教授[1]的比特翻转(BF)译码算法,以及Lin等[13]提出的一步大数逻辑译码(OSMLGD)算法。其中BF译码算法的核心思想为采用该比特参与运算的校验和进行判断是否翻转该位,而OSMLGD是首个类MLGD译码算法,两者的计算复杂度都极低,由于采用信道的硬判决信息进行译码,译码信息损失较大,所以译码性能较差。最近,Liu等[14]通过引入比特位自适应阈值门限策略,避免了全局最大值搜索处理,实现了高吞吐量、低时延的BF译码算法,特别适合硬件实现。硬判决与软判决译码算法均存在明显的优缺点,研究者们结合两类算法的特点展开研究,提出了一类基于可靠度的译码算法,实现了性能与复杂度之间的均衡。例如,Huang等[15]提出基于可靠度的迭代大数逻辑译码(RBI-MLGD)算法,该算法对初始信道信息进行量化处理,作为信道信息的可靠度量,在译码迭代过程中,通过在校验节点获取外信息对变量节点的可靠度信息进行更新处理,结合大数逻辑的处理策略实现译码性能的提升。此外,Chen等[16]在RBI-MLGD算法的基础上提出了改进的译码(MRBI-MLGD)算法,该算法的核心思想是在迭代译码信息更新过程中引入修正系数,同时,只在初始信道信息的基础上进行信息更新处理,提高了译码信息的迭代更新效率,以此实现了译码性能的提升。由于MLGD类算法具有低复杂度、低时延的特点,研究者一直对其开展相关研究。最近,Song等[17]针对多元LDPC译码算法,基于软可靠度迭代IISRB-MLGD译码算法,提出了一种裁剪的CM-IISRB译码算法。该算法采用非饱和截切策略,在较低复杂度的情况下,实现了更优的译码性能。
在MRBI-MLGD译码算法中,由于引入了缩放因子,即采用了乘法修正系数,不可避免地增加了大量的浮点数乘法运算,其译码复杂度随着迭代次数的递增而明显增大。受MRBI-MLGD算法在译码迭代过程中引入缩放因子的启发,本文提出了一种基于量化修正的低复杂度LDPC译码算法,该算法在对信道信息预处理时引入量化信息修正处理策略,从而避免在译码迭代过程中进行译码信息修正处理操作,在保持译码性能的同时,较大幅度地降低了译码复杂度。基于上述算法思想,针对均匀和非均匀量化方案,本文具体实现了基于修正系数的均匀量化和基于列重信息修正的非均匀量化两种译码方案设计,期望所提出的译码方案在降低译码复杂度的同时,还能保持一定的译码性能。
1 数字通信模型及相关定义定义H=[hi, j]m×n(hi, j∈
在接收端获得信号序列y=(y0, y1, …, yn-1),将其进行量化处理后获得量化序列q=(q0, q1, …, qn-1),即为来自信道的初始可靠度信息序列,令Rj(0)=qj,其中,设量化函数为Q(yj)=qj。通过量化序列q,可计算获得其硬判决码字序列z=(z0, z1, …, zn-1),具体计算方法如下:
$ z_{j}=\left\{\begin{array}{l} 0, R_{j}^{(k)} \geqslant 0 \\ 1, R_{j}^{(k)}<0 \end{array}, \right. $ | (1) |
在获得硬判决序列z后,可以计算其相应的校验伴随式s= zHT,其中,s=(s0, s1, …, sn-1),实现计算方法如下:
$ s_{i}^{(k)}=\sum\nolimits_{0 \leqslant j \leqslant n-1} \oplus z_{i}^{(k)} h_{i, j}, $ | (2) |
式中,hi, j为校验矩阵H中的元素,符号⊕为模2加运算,上标k表示第k次迭代。如s=0则表示当前判决码字校验成功,可输出码字序列z=(z0, z1, …, zn-1);如s≠0则表明校验失败,继续进入迭代译码过程。接下来对具体的迭代译码过程进行描述。
① 计算外信息。
在迭代过程中,译码算法在校验节点Ci中计算外信息σi, j(k),同时,将该外信息传递至其对应的变量节点Vj。校验节点Ci传递至变量节点Vj的外信息σi, j(k)计算方法如下:
$ \sigma_{i, j}^{(k)}=\sum\limits_{j^{\prime} \in N_{i \backslash j}} \bigoplus z_{j^{\prime}}^{(k)} h_{i, j}, $ | (3) |
式中,符号Ni\j表示除了当前j列的其他列的序号集合。
②计算总外信息。
经过上述计算后,变量节点Vj即可获得所有校验节点的外信息σi, j(k),在变量节点Vj,可计算该变量节点的总外信息ε(k)j,其计算方法如下:
$ \varepsilon_{j}^{(k)}=\sum\limits_{i \in M_{j}}\left(1-2 \sigma_{i, j}^{(k)}\right) 。$ | (4) |
③ 更新可靠度。
设在译码迭代过程中,设Rj(k)为第k次迭代时变量节点Vj的当前可靠度信息,其信息更新策略如下:
$ R_{j}^{(k+1)}=R_{j}^{(0)}+\alpha \cdot \varepsilon_{j}^{(k)}, $ | (5) |
式中,α为译码信息修正系数。从式(5)可以看出,变量节点的信息处理方法是在初始的信道信息Rj(0)基础上进行更新,这种处理机制对迭代系统的稳定性有帮助。此外,由于引入了修正系数,MRBI-MLGD译码算法在收敛速度和译码性能方面,相较于原RBI-MLGD译码算法均获得明显提升。
3 基于量化修正的译码算法设计在上述MRBI-MLGD算法中,变量节点信息更新函数为Rj(k+1)=Rj(0)+α·εj(k),通过数值分析发现,εj(k)信息为所有来自相连接校验节点的外信息之和,校验节点的外信息为二值的,εj(k)值的大小与LDPC码的列重相关。而算法为保持一定的稳定性,采用了在Rj(0)的基础上进行信息修正。因此,对外信息和εj(k)采用α系数进行修正,以此达到变量节点合适的信息修正。α值一般通过在一定的信噪比范围内仿真搜索出性能表现最好的值。而在原始的RBI-MLGD译码算法中,在对变量节点译码信息更新时,每一个来自校验节点的外信息修正值为±1,在不进行任何信息修正时,其总外信息绝对值最大为列重γ。一般为了获取高译码性能,在算法中将量化比特b设为8 bits,则信道信息的量化值一般远大于更新修正值,在此条件下,要想实现信息的正确修正,需要更多的迭代次数。基于此,改进算法MRBI-MLGD中通过引入缩放因子α,实现了收敛速度的增长和译码性能的提升。该改进算法由于在迭代过程中引入了乘法运算,使得计算复杂度大大提升。
基于以上分析,为降低译码复杂度,本文提出了通过在信道信息初始预处理时引入量化修正处理,在迭代过程中不再使用信息修正操作,实现译码复杂度的降低。针对均匀和非均匀量化方案,本文提出了两种量化修正方案,一种为基于修正系数的均匀量化译码方法,具体地,该方法通过在量化函数中引进修正系数,避免在译码迭代中引进浮点乘法运算,在保持译码性能的前提下,实现了译码迭代过程中计算复杂度的明显下降;另一种为基于列重γ与量化比特b的改进型非均匀量化方案,在对3-4 bits极低量化比特的情况下,也能保持较优秀的译码性能,同时,其算法复杂度和硬件资源消耗也大为降低,该方案可用于硬件资源遭受限制的场景。
3.1 基于修正系数的均匀量化及译码方案设计由译码判决信息规则和量化原理可知,在不改变信道信息可靠度极性的情况下,不会影响LDPC码字的判决,因此,可以对可靠度值进行缩放处理。为了避免在迭代译码过程中引入乘法修正运算,降低迭代译码过程的计算复杂度,本文提出的算法1为在对信道信息量化预处理时引入修正系数β,对量化值进行预修正处理。具体计算方法如下:
$ q_{j}=\left\{\begin{array}{l} +\beta\left(2^{b}-1\right), y_{j} \geqslant\left(2^{b}-1\right) {\mathit{\Delta}} \\ \beta\left[\frac{y_{j}}{\mathit{\Delta}}\right], \left|y_{j}\right|<\left(2^{b}-1\right) {\mathit{\Delta}} \\ -\beta\left(2^{b}-1\right), y_{j} \leqslant-\left(2^{b}-1\right) {\mathit{\Delta}} \end{array}\right., $ | (6) |
式中,b为量化比特位数,Δ为量化间隔。采用修正系数β对量化值进行修正,通过修正处理,使信道初始可靠度值与译码迭代过程中的译码信息更新在数值上相适配,从而实现更有效的译码信息更新,获得译码性能的提升。其中,β值可以通过仿真搜索获得。
此外,在MRBI-MLGD算法中变量节点信息更新策略式(5)修改如下:
$ R_{j}^{(k+1)}=R_{j}^{(0)}+\varepsilon_{j}^{(k)} $ | (7) |
从式(7)可以看出,相比式(5)取消了修正系数α,由于在对信道信息量化时便引入了信息修正策略,此时的初始可靠度Rj(0)进行了相应修正处理,与外信息和εj(k)之间已做了数值上的适配,因此不需要在更新规则中引入修正系数α。相较于MRBI-MLGD,本文算法可靠度Rj(k+1)的更新规则省掉浮点乘法运算,译码迭代过程中的浮点乘法计算量实现大幅削减。
对本文提出的算法1——基于修正系数的均匀量化方案及LDPC译码算法具体实现步骤描述如下。
步骤1:输入。
最大迭代次数Imax,接收信号向量y,修正系数β,量化参数b和Δ。
步骤2: 初始化。
按式(6)对接收信号y进行量化得到qj,将迭代次数k置0,对0≤j≤n-1,令初始可靠度Rj(0)=qj。
步骤3: 迭代过程。对k < Imax,
① 按式(1)计算硬判决序列z(k);
② 按式(2)计算校验和s(k),如果s(k)=0,则执行步骤4;
③ 遍历0≤i≤m-1,按式(3)计算外信息σi, j(k);
④ 遍历0≤j≤n-1,按式(4)计算总外信息εj(k);
⑤ 遍历0≤j≤n-1,按式(7)更新可靠度Rj(k+1);
⑥ 迭代次数k=k+1。
步骤4:输出。
输出硬判决序列z(k)。
3.2 基于列重修正的非均匀量化及译码方案设计在均匀量化方案中,由于采用固定步长进行量化,因此在对接近0区域的信号进行量化时,其量化精度较粗糙,不能更精细地对信道信息进行有效表达。特别是在采用较低量化比特时,会严重影响译码性能。上述总外信息计算式(4)可以看出,每次译码迭代时,可靠度的修正幅度εj(k)与列重γ相关。当取量化比特b较大,而此时列重γ较低时,则每次迭代信息的更新幅度有限,大大降低了可靠度Rj(k+1)的更新效率。例如,量化比特b=8,此时量化数值的范围比较大,如果仅仅简单采用列重γ个单位外信息对变量节点进行修正,由于列重γ的数值与量化范围数值相差较大,通过有限的k次迭代可能无法正确改变可靠度Rj(0)极性,也就是无法对错误比特进行有效翻转,实现正确译码。在改进的MRBI-MLGD译码算法中,通过在可靠度更新时引入修正系数α实现与量化范围的适配,获得收敛速度和译码性能的提升。由于在译码迭代过程中引入了乘法操作,大大增加了计算复杂度。基于上述描述,本文提出的算法2为基于列重γ修正的非均匀量化预处理译码方案,目的在对信道信息预处理阶段,引入列重γ信息,实现量化值与译码方案的适配,获得收敛速度和译码性能的提升。由于常用LDPC码的列重γ的数值一般比较小,因此本设计采用低量化比特的非均匀量化方法。具体的计算方法如下:
$ \begin{array}{*{20}{l}} \;\;\;\;\;\;\;\;\;q_{j}= \\ \left\{\begin{array}{l} \theta sgn\left(y_{j}\right)\left(2^{b}-1\right), \left|y_{j}\right| \geqslant r^{0} \\ \theta {sgn}\left(y_{j}\right)\left(2^{b}-1-p\right), r^{p+1} \leqslant\left|y_{j}\right|<r^{p}, \\ \theta {sgn}\left(y_{j}\right), 0 \leqslant\left|y_{j}\right|<r^{2^{b}-2} \end{array}\right. \end{array} $ | (8) |
式中,
本量化设计方案也是采用在量化预处理阶段对信道信息进行相应处理,因此,其译码迭代时可靠度的更新规则采用式(7)进行。
对本文提出的算法2——基于列重修正的非均匀量化及LDPC译码算法具体实现步骤描述如下。
步骤1:输入。
最大迭代次数Imax,接收信号向量y,修正系数β,量化参数b和Δ。
步骤2:初始化。
按式(8)对接收信号y进行量化得到qj,将迭代次数k置0,对0≤j≤n-1,令初始可靠度Rj(0)=qj。
步骤3 : 迭代过程。对k < Imax,
① 按式(1)计算硬判决序列z(k);
② 按式(2)计算校验和s(k),如果s(k)=0,则执行步骤4;
③ 遍历0≤i≤m-1,按式(3)计算外信息σi, j(k);
④ 遍历0≤j≤n-1,按式(4)计算总外信息εj(k);
⑤ 遍历0≤j≤n-1,按式(7)更新可靠度Rj(k+1);
⑥ 迭代次数k=k+1。
步骤4:输出。
输出硬判决序列z(k)。
4 译码复杂度和性能仿真分析 4.1 译码复杂度本文提出的基于量化修正的译码算法复杂度主要由以下几个部分组成:
① 式(1)计算硬判决z(k)时,需要进行n次逻辑运算;
② 式(2)计算校验和s(k)时,需要mρ-1 =nγ-m次逻辑运算(其中ρ为行重,mρ=nγ为校验矩阵H的非零因子的个数);
③ 在计算总外信息εj(k)时,采用式(3)和(4),共需要nγ-1 次加法运算和nγ次逻辑运算;
④ 最后,可靠度Rj(k+1)更新时,采用式(7)需要n次整数加法。
同时,本文对RBI-MLGD、MRBI-MLGD及经典的SPA算法进行了复杂度分析。详细的复杂度对比情况如表 1所示。
算法名称 Name of algorithm |
单次迭代运算量 Number of operations per iteration |
|||
BO | AO | RM | Log | |
Proposed | 2nγ+n-m | nγ | ||
RBI-MLGD | 2nγ+n-m | nγ | ||
MRBI-MLGD | 2nγ+n-m | nγ | n | |
SPA | 6nγ | n |
其中,BO为二进制操作,AO为加法运算,RM为实数乘法,Log为对数运算。从表 1可以看出,本文提出的改进算法与原始的RBI-MLGD算法复杂度基本一致,本算法相比MRBI-MLGD算法,省掉了译码迭代过程中可靠度更新时的实数乘法计算,将会明显降低译码迭代过程中的复杂度。为直观地看出单次计算复杂度的数值情况,下面对具体的LDPC码单次计算复杂度进行数值计算。
表 2为
算法名称 Name of algorithm |
单次迭代运算量 Number of operations per iteration |
|||
BO | AO | RM | Log | |
Proposed | 65 472 | 32 736 | ||
RBI-MLGD | 65 472 | 32 736 | ||
MRBI-MLGD | 65 472 | 32 736 | 1 023 | |
SPA | 196 416 | 1 023 |
表 3为
算法名称 Name of algorithm |
单次迭代运算量 Number of operations per iteration |
|||
BO | AO | RM | Log | |
Proposed | 8 160 | 4 080 | ||
RBI-MLGD | 8 160 | 4 080 | ||
MRBI-MLGD | 8 160 | 4 080 | 255 | |
SPA | 24 480 | 255 |
4.2 译码性能
根据上文的算法描述,继续通过计算机仿真的方法,对提出的译码算法进行仿真实验,考察其译码性能。
实验1:实验采用基于欧式几何方法构造的
从图 1可以看出,在中高信噪比区域,算法1与MRBI-MLGD算法拥有几乎相同的译码性能,而相较于RBI-MLGD算法具有约0.3 dB的性能增益,与SPA译码算法仅有约0.6 dB的译码性能差距;算法2由于采用了较低的量化比特,译码性能稍差于算法1,但仍然明显优于RBI-MLGD算法。
图 2显示了对
实验2:实验采用
从译码性能曲线(图 3)可以看出,算法1在中信噪比范围区间与MRBI-MLGD算法几乎具有相同的译码性能,同时优于RBI-MLGD译码算法近0.4 dB的译码性能。与SPA译码算法具有约0.7 dB的性能差距;算法2在量化比特b=4 bit的情况下,仍实现了与MRBI-MLGD算法几乎相近的译码性能,同时,与SPA算法有约0.7 dB的性能差距。而在高信噪比区域,本文算法仍具有较优异的译码性能,出现了译码性能曲线明显优于MRBI-MLGD算法的趋势。
从译码平均迭代次数曲线(图 4)可以看出,算法1的译码迭代收敛速度明显高于RBI-MLGD译码算法,与MRBI-MLGD算法保持了一致的迭代收敛速度。此外,在较高信噪比时,其译码收敛速度几乎接近SPA算法。算法2在量化比特较低的情况下,仍然实现了较高的译码收敛速度,收敛速度性能与算法1一致。
5 结束语
本文在对信道信息进行量化预处理时,通过引入量化修正的信息处理策略,提出了基于量化修正的低复杂度LDPC译码算法。该算法避免了在译码迭代过程中进行信息修正处理操作,较大幅度地降低了译码复杂度,同时保持了较好的译码性能。本文具体实现了算法1为一种基于修正系数的均匀量化方案及译码算法设计;算法2为一种基于列重修正的非均匀量化方案及译码算法设计。其中,算法1通过在信道信息量化预处理时,在量化函数中引入修正系数,避免在译码迭代中的浮点乘法运算,实现了译码迭代过程中计算复杂度的明显下降;算法2通过在非均匀量化预处理时引入列重γ信息,实现了信道信息量化可靠度值与列重γ相适配的比拟关系,在迭代过程中获得更高效的译码信息传递和更新。仿真结果表明,在保持译码性能的情况下,本设计有效地降低了译码复杂度。
[1] |
GALLAGER R G. Low-density parity-check codes[J]. IRE Transation on Information Theory, 1962, 8(1): 21-28. DOI:10.1109/TIT.1962.1057683 |
[2] |
GALLAGER R G. Low-density parity-check codes[M]. Cambridge: MIT Press, 1963.
|
[3] |
MACKAY D J C, NEAL R M. Near Shannon limit performance of low density parity check codes[J]. Electronics Letters, 1996, 32(18): 1645-1646. DOI:10.1049/el:19961141 |
[4] |
MACKAY D J C, NEAL R M. Near Shannon limit performance of low density parity check codes[J]. Electronic Letters, 1997, 33(6): 457-458. DOI:10.1049/el:19970362 |
[5] |
MACKAY D J C. Good error-correcting codes based on very sparce matrices[J]. IEEE Transactions on Information Theory, 1999, 45(2): 399-431. DOI:10.1109/18.748992 |
[6] |
MACKAY D J C, WILSON S T, DAVEY M C. Comparison of constructions of irregular Gallager codes[J]. IEEE Transactions on Communications, 1999, 47(10): 1449-1454. DOI:10.1109/26.795809 |
[7] |
LIU X C, ZHOU Z Z, CUI R, et al. Informed decoding algorithms of LDPC codes based on dynamic selection strategy senior member[J]. IEEE Transactions on Communications, 2016, 64(4): 1357-1366. DOI:10.1109/TCOMM.2016.2527642 |
[8] |
李锦明, 王国栋, 刘梦欣, 等. CCSDS标准下LDPC码的编译码算法研究[J]. 电子学报, 2020, 48(11): 2114-2121. |
[9] |
许欣. 5G URLLC数据信道中LDPC编译码方法研究[D]. 北京: 北京交通大学, 2020.
|
[10] |
OUYANG S J, HAN G J, FANG Y, et al. LLR-distribution-based non-uniform quantization for RBI-MSD algorithm in MLC flash memory[J]. IEEE Communications Letters, 2018, 22(1): 45-48. DOI:10.1109/LCOMM.2017.2755023 |
[11] |
胡东伟. 5G LDPC码译码器实现[J]. 电子与信息学报, 2021, 43(4): 1112-1119. |
[12] |
陈海强. LDPC编译码技术及其在Relay系统中的应用研究[D]. 广州: 中山大学, 2011.
|
[13] |
LIN S, COSTELLO D J. Error control coding: Fundamentals and applications[M]. 2nd ed. Englewood Cliffs, NJ: Prentice-Hall, 2004.
|
[14] |
LIU Y H, ZHANG M L. Hard-decision bit-flipping decoder based on adaptive bit-local threshold for LDPC codes[J]. IEEE Communications Letters, 2019, 23(5): 789-792. DOI:10.1109/LCOMM.2019.2909207 |
[15] |
HUANG Q, KANG J, ZHANG L, et al. Two relia-bility-based iterative majority-logic decoding algorithms for LDPC codes[J]. IEEE Transactions on Communications, 2009, 57(12): 3597-3606. DOI:10.1109/TCOMM.2009.12.080493 |
[16] |
CHEN H Q, ZHANG K, MA X, et al. Comparisons between reliability-based iterative min-sum and majority-logic decoding algorithms for LDPC codes[J]. IEEE Transactions on Communications, 2011, 59(7): 1766-1771. DOI:10.1109/TCOMM.2011.060911.100065 |
[17] |
SONG S W, CUI H X, TIAN J, et al. A novel iterative reliability-based majority-logic decoder for NB-LDPC codes[J]. IEEE Transactions on Circuits and Systems Ⅱ: Express Briefs, 2020, 67(8): 1399-1403. DOI:10.1109/TCSII.2019.2938562 |
[18] |
KOU Y, LIN S, FOSSORIER M P C. Low-density parity-check codes based on finite geometries: A discovery and new results[J]. IEEE Transactions on Information Theory, 2001, 47(7): 2711-2736. DOI:10.1109/18.959255 |