APP下载

改进的非规则QC-LDPC译码算法和结构

2020-12-10陈发堂王永航张翰卿

光通信研究 2020年6期
关键词:码字译码度数

陈发堂,王永航,张翰卿

(重庆邮电大学 通信与信息工程学院,重庆 400065)

0 引 言

低密度奇偶校验(Low Density Parity Check, LDPC)码是一种性能优异的线性分组码[1],其校验矩阵有随机和结构化两种构造方式。准循环(Quasi-Cyclic, QC)-LDPC通过结构化方式完成编码[2],易于硬件实现,并于2016年成为5G 新空口(New Radio, NR) 的一种主要信道编码方案[3]。

LDPC码的译码算法都以置信传播(Belief Propagation ,BP)算法为基础[4-5]。其中最小和(Min-Sum, MS)算法是BP简化后的译码方式,其运算方式简单,但牺牲了一部分译码性能[6]。为弥补MS算法损失的性能,Chen等提出了归一化最小和(Normalized Min-Sum, NMS)算法[7],NMS算法可以提供更加接近BP算法的译码性能。密度演化最小和(Density Evolution Min-Sum,DE-MS)算法将前5次迭代的归一化因子整合为一个值,使LDPC误码率(Bit-Error Rate, BER)再次降低[8]。QC-LDPC码分为两种译码结构:分层式和全并行。分层式结构实现复杂度低,译码迭代次数少,在现场可编程门阵列(Field Programmable Gate Array, FPGA)译码器中应用广泛[9]。

以往算法使用一个归一化因子完成译码,在一定程度上降低了译码性能。因此本文通过分析BP算法信息值随度数变化的趋势,并根据因子分布规律对度数分层,提出根据层数求归一化因子算法,所得因子可提前存储避免消耗多余计算资源。所提译码结构依据基础矩阵对校验节点分组,在每组中选择合适子层完成迭代译码,各层节点度数分布不会因层数变化而改变,进而节点处理单元也无需调整。仿真结果和复杂度分析表明,基于度数归一化最小和(Based-Degree Normalized Min-Sum,BD-NMS)算法译码性能和收敛速度优于其余算法;所提译码结构需要更少的存储空间,对于5G 协议这种需改变提升值的情况,利用所提分层方法更易实现。

1 LDPC译码算法概述

1.1 译码迭代步骤

译码迭代信息包括变量节点传向校验节点的信息值(V2C)和校验节点传向变量节点的信息值(C2V)。译码过程中信息值在两类节点之间迭代传递,利用BP传播理论和校验方程修正错误比特,译码共分为4个步骤:(1) 设置初始迭代信息;(2) 利用V2C更新C2V;(3) 利用C2V更新V2C和后验信息;(4) 译出码字并判断是否达到停止迭代条件。

1.2 MS和NMS算法

MS和NMS算法主要在校验节点更新处对BP算法进行了改进,两种算法信息值计算公式分别为

2 BD-NMS算法

2.1 最优归一化因子分布

图1 5G NR协议QC-LDPC码的最优归一化因子分布

2.2 各层α值计算

定义MS算法中Cmn为C1,BP算法中Cmn为C2,利用密度演化和泰勒公式得到的E(|C1|)和E(|C2|)[10]分别为

求各层归一化因子的过程分为4步:

(1) 利用E(|C2|)/E(|C1|)求不同度数的归一化因子αλ,λ为度数;

(2) 确定numλ,numλ为度数为λ的节点个数;

(3) 根据归一化因子分布对度数分层并求取各层权值向量,第r层向量为

式中:λrζ为r层第ζ个度数的值;hr为r层所分得度数类型总量;

(4) 利用各层权值向量求对应归一化因子,第r层因子为

文献[8]中通过概率质量函数得到不同迭代次数下的归一化因子,类似的方法能够求出第r层前5次迭代的衰减因子:αr1、αr2、αr3、αr4和αr5,进而利用权值向量X=[0.25,0.25,0.20,0.20,0.10]得到第r层在前Z-5(Z为最大迭代次数)次迭代所需的衰减因子为

非规则LDPC码由于本身特性,在NMS算法迭代过程中会进入一种稳定状态,在这种状态下错误比特数不再改变[11],提高归一化因子幅度能够增加信息值的幅值,进而打破这种稳定状态提高译码性能。在译码迭代过程中,归一化因子随着迭代次数呈上升趋势,因此利用最后5次迭代归一化因子和X得到第r层最后5次迭代所需衰减因子为

3 译码结构

结构化方式生成QC-LDPC码校验矩阵H需要确定3个参数:基础矩阵BMS×D、循环转移值Psd和提升值L,其中1≤s≤S,1≤d≤D。本文所提译码结构将校验节点均分为S组,变量节点均分为D组。若基础矩阵第t行第j列上的值Ptj不为负,则分配一个大小等于L的随机存取存储器(Ramdom Access Memory, RAM)来保存C2V,并使用t、j对此RAM进行标号,否则不分配。校验节点各组节点个数等于L并再分为g个子层,g=[L/2],前g-1个子层包含两个校验节点,第g个子层节点个数等于2~(L mod 2)。依据分层式译码结构,校验节点信息更新时各组只有一个子层参与计算,并行度等于2S。图2所示为第t组校验节点更新结构,每个子层会输出一个数值:子层号的2倍;多路选择器(Multiplexer, MUX)根据当前译码进程选择相应子层的输出值;地址处理单元(Address Processing Unit,APU)将MUX输出值v转化为输入至RAM的两个地址,其中a0td=mod(v+Ptd,L),a1td=mod(v+Ptd+1,L);联合转换单元(Joint Conversion Unit, JCU)模块的作用是将C2V转化为对应的V2C;flag信号等于1表示子层中节点个数为1个,RAM需要忽略所收到的第2个地址;校验节点处理单元完成最小值比较等过程。

图2 校验节点更新结构

图3所示为变量节点后验信息更新结构,D0i0,…和D1i0,…信息值来自第i组校验节点处理单元;RAM0~RAMd的存储空间为L,RAMd存放第d·L~(d+1)L-1个变量节点的后验信息,存放地址与校验节点更新过程中APU输出值一致。

图3 变量节点后验信息更新结构

在上述译码结构的基础上,扩大RAM数据端口的位宽能够进一步增加并行度,提升译码速度。为降低复杂度,位宽扩大倍数应等于2τ,τ=0,1,2,…,同时子层数、地址和RAM的大小缩小1/2τ,flag位宽扩大2τ倍。

4 仿真结果与分析

4.1 仿真结果

仿真所使用码字由5G协议中基准图2构造[12],共用到两种码字:(19 968,3 840)和(4 032,960),码率分别为1/5和1/4,加扰噪声为加性高斯白噪声,调试方式为二进制相移键控(Binary Phase Shift Keying, BPSK):1→1,0→-1,信息序列由Matlab软件随机生成;对于信息序列长度K为3 840的码字,仿真帧数为3 000,对于K为960的码字,仿真帧数为12 000,以保证不同提升值情况下总信息序列长度一致;Z设为15。由图1可知,所使用码字分为3层,利用所提算法得到前10次迭代归一化因子:0.879 5、0.487 0和0.027 0;后5次归一化因子:0.970 3、0.894 9和0.577 2。LDPC译码器信息值小数部分通常使用3比特量化[13],而上述6个因子无法用3比特精确表示,需要使用近似值,结果如表1所示。

表1 各层归一化因子

图4所示为两种码率下各个算法的译码性能,由图可知,本文所提BD-NMS算法比其他算法拥有更好的译码性能。图4(a)使用的码字类型为(19 968,3 840),在BER为10-6量级时,BD-NMS算法的译码性能比DE-NMS算法提高了0.19 dB左右;图4(b)使用的码字类型为(4 032,960),在BER为10-6量级时,BD-NMS算法译码性能比DE-NMS算法大约提高了0.12 dB。

图4 两种码率下各算法的译码性能

图5所示为各个算法在不同信噪比下的平均迭代次数。仿真过程中,由于噪声随机性以及校验矩阵短圈特性的影响,同一信噪比下迭代次数存在波动现象,故其平均值为小数。由图可知,所提算法和结构下的译码收敛速率比其他算法更快,且在信噪比等于1.9 dB左右时迭代次数差值达到最大。

图5 各算法在不同信噪比下的平均迭代次数

4.2 复杂度分析

表2所示为4种算法一次迭代所需总计算量。表中,ρj为第j个变量节点度数,λi为第i个校验节点度数,M为H总行数,N为H总列数。由表可知,MS算法复杂度最低,NMS和DE-MS算法次之,BD-NMS算法复杂度比DE-MS和NMS算法多了M次比较运算,这是因为BD-NMS算法需要对度数大小进行判断,从而选择合适的归一化因子,但译码性能比DE-NMS算法提高了接近0.2 dB。

表2 不同算法复杂度对比

所提译码结构将矩阵压缩在L大小,且变量节点的位置与提升值和循环转移值存在简单的求模关系,利用基础矩阵就可以得到节点索引,节省了存储空间;利用分层译码思想,无需特定RAM存放V2C且提高了译码速度;层数变化通过调整各组子层标号完成,且子层变化范围在L之内,在5G系统中,L需要根据实际情况改变大小,这种情况下,所提层数变化方式更容易实现译码过程;当基础矩阵确定后,各组校验节点处理单元也随之确定,层数变化时,度数分布不变,校验节点处理单元也无需做出调整,降低了实现复杂度和资源消耗。

5 结束语

本文通过分析非规则QC-LDPC码不同度数下校验节点信息值的差异性,提出了BD-NMS算法。该算法首先计算出最优归一化因子的分布规律,并根据此规律对度数分层,进而联合DE理论和加权向量求得各层的归一化因子。针对非规则LDPC码会陷入稳态的特性,在最后5次迭代中,使用更大的衰减因子完成译码,归一化因子可提前存储在寄存器中以避免多余资源消耗。此外本文还提出了一种译码结构,每层校验节点变化范围在提升值之内,有效降低了资源消耗和译码器实现难度。仿真结果与分析表明,所提BD-NMS算法与其他3种算法相比,复杂度的增加只存在于比较运算,译码性能和译码速度更为优异,可应用至工程中。

猜你喜欢

码字译码度数
眼镜的度数是如何得出的
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
图形中角的度数
放 下
数据链系统中软扩频码的优选及应用
放下
隐形眼镜度数换算
从霍尔的编码译码理论看弹幕的译码
LDPC 码改进高速译码算法