掌桥专利:专业的专利平台
掌桥专利
首页

一种64进制LDPC码的译码实现方法及系统

文献发布时间:2023-06-19 18:37:28


一种64进制LDPC码的译码实现方法及系统

技术领域

本发明涉及通信技术领域,尤其涉及一种64进制LDPC码的译码实现方法及系统。

背景技术

低密度校验码(LowDensityParityCheckCode,LDPC)码是RobertG.Gallager在1962年提出的,直到1999年MacKay和Wilberg重新发现了LDPC码的优秀性能,才引起了编码领域专家和学者们的广泛关注。LDPC码是一种线性分组码,其校验矩阵为稀疏矩阵,采用迭代的译码算法使得LDPC码可以接近香农限的性能。由于准循环结构的LDPC译码器易于并行实现,能提供高吞吐率,因此被多个标准使用,目前,LDPC码的技术已应用于CMMB、DTMB、DVB-S2、DVB-T2、ATSC3.0和4G等标准的通信系统中。

北斗三号B1C、B2a、B2b三个频点的CNAV1、CNAV2及CNAV3电文均采用64进制LDPC编码,虽然64进制LDPC码从信道传输的角度来看与2进制LDPC码并无区别,但64进制LDPC码比2进制LDPC码围长更长,所以具备更好的纠错能力,同时64进制LDPC码将6bit转化为1个符号,具备较强的抗突发错误的能力且特别适合高速率信息传输系统。

但是现有技术当中,如何实现北斗三号新体制的64进制LDPC码的快速迭代译码是一个亟需解决的技术问题。

发明内容

本发明的目的是提供一种64进制LDPC码的译码实现方法及系统,以解决如何实现北斗三号新体制64进制LDPC码译码的技术问题。

本发明是采用以下技术方案实现的:一种64进制LDPC码的译码实现方法,包括如下步骤:

S1:初始化,对符号向量和幅度向量进行初始化,并初始化校验节点符号向量和校验节点幅度向量;

S2:校验节点信息更新,将变量节点传递的消息进行重排列,通过前向后向递推算法计算得到新的校验节点输出信息;

S3:变量节点信息更新,将校验节点传递的消息进行重排列,通过归一化的处理方法计算得到新的变量节点输出信息;

S4:输出结果,选取变量节点信息中置信度最大的信息作为本次迭代的译码输出,再与校验矩阵H相乘得到校验结果,若校验通过或超出迭代次数,则退出迭代,否则重复进行迭代。

进一步的,步骤S1具体为:将解交织后的符号数据和幅度数据进行缓存,并通过全匹配预判错误比特位置,对符号向量和幅度向量进行初始化并缓存,同时将所述符号数据和幅度数据复制到校验节点缓存器中,完成初始化校验节点符号向量和校验节点幅度向量缓存。

进一步的,步骤S2具体为:首先将变量节点传递的消息进行重排列,重排列相当于用变量消息乘以校验矩阵H中的非零元,乘法运算遵循有限域GF(2

进一步的,步骤S2包括如下子步骤:

S21:符号向量Q_idx在有限域GF(2

S22:利用前向后向递推算法将R_idx和幅度向量Q_val进行递归更新得到新的符号向量R_idx_updata和新的幅度向量R_val_updata;

S23:将新的符号向量R_idx_updata在有限域GF(2

进一步的,步骤S22具体为:利用前向后向递推算法将R_idx和幅度向量Q_val分解成6次排序递归最值运算得到新的符号向量R_idx_updata和新的幅度向量R_val_updata。

进一步的,步骤S3具体为:首先将校验节点传递的消息进行重排列,重排列相当于用校验消息除以校验矩阵H中的非零元,除法运算遵循有限域GF(2

进一步的,步骤S3包括如下子步骤:

S31:每次从校验节点更新缓存和初始化缓存中读取符号数据和幅度数据,进行同步矩阵求和算法,求解输出符号和幅度;

S32:进行译码判决输出译码结果d_sym。

进一步的,步骤S4包括如下子步骤:

S41:将步骤S32得到的译码结果d_sym与校验矩阵相乘并取异或输出,如果校验结果为0则校验通过,否则进入下一步;

S42:如果没有到达最大迭代次数,则将输出符号和幅度缓存更新为变量节点符号和幅度缓存。

一种64进制LDPC码的译码实现系统,包括初始化模块、校验节点信息更新模块和变量节点信息更新模块,所述初始化模块用以对符号向量和幅度向量进行初始化,并初始化校验节点符号向量和校验节点幅度向量;所述校验节点信息更新模块用以将变量节点传递的消息进行重排列,通过前向后向递推算法计算得到新的校验节点输出信息;所述变量节点信息更新模块用以将校验节点传递的消息进行重排列,通过归一化的处理方法计算得到新的变量节点输出信息,并选取变量节点信息中置信度最大的信息作为本次迭代的译码输出,再与校验矩阵H相乘得到校验结果,若校验通过或超出迭代次数,则退出迭代,否则重复进行迭代。

本发明的有益效果在于:本发明根据64进制LDPC码校验矩阵中非零元素的特点,一个校验节点对应四个变量节点(行重为4),一个变量节点对应两个校验节点(列重为2),在校验节点更新时,利用前向后向递推算法将行重为4的校验节点简化并分解成6次取最值运算,变量节点更新时,用校验消息除以校验矩阵非零元,然后进行归一化处理,所有非零元素在对应的校验节点更新和变量节点更新过程中均遵循GF(2

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明原理图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

实施例1:

参阅图1,一种64进制LDPC码的译码实现方法,包括如下步骤:

初始化,将解交织后的符号数据进行缓存(pcode_sig_ram)、幅度数据进行缓存(pcode_mag_ram),通过全匹配预判错误比特位置,对符号向量和幅度向量进行初始化并缓存(fn_idx_ram,fn_val_ram),同时将该数据复制到校验节点缓存器中即初始化校验节点符号向量和幅度向量缓存(Q_idx_ram、Q_val_ram)。

校验节点信息更新:首先将变量节点传递的消息进行重排列,重排列相当于用变量消息乘以校验矩阵H中的非零元,乘法运算遵循有限域GF(2

a.将符号向量缓存器(Q_idx_ram)中的数据在有限域GF(2

b.通过校验节点更新控制电路、数据流控制电路1、以及前向后向递推电路三者共同完成递归最值运算,即将R_idx,Q_val数据分解成6次排序递归最值运算得到R_idx_updata,R_val_updata,具体6次递归更新过程如下:

b1.R_idx,Q_val通过校验节点更新控制电路和数据流控制电路1分别产生A_idx[0]、B_val[0]、A_idx[1]、B_val[1]四组数据和A_idx[3]、B_val[3]、A_idx[2]、B_val[2]四组数据;

b2.A_idx[0]、B_val[0]、A_idx[1]、B_val[1]四组数据经前向后向递推电路产生O_idx[0]、O_val[0];

b3.A_idx[3]、B_val[3]、A_idx[2]、B_val[2]四组数据经前向后向递推电路产生O_idx[1]、O_val[1];

b4.O_idx[1]、O_val[1]、A_idx[1]、B_val[1]四组数据经前向后向递推电路产生R_idx_updata[0]、R_val_updata[0];

b5.O_idx[1]、O_val[1]、A_idx[0]、B_val[0]四组数据经前向后向递推电路产生R_idx_updata[1]、R_val_updata[1];

b6.O_idx[0]、O_val[0]、A_idx[3]、B_val[3]四组数据经前向后向递推电路产生R_idx_updata[2]、R_val_updata[2];

b7.O_idx[0]、O_val[0]、A_idx[2]、B_val[2]四组数据经前向后向递推电路产生R_idx_updata[3]、R_val_updata[3]。

c.对符号向量R_idx_updata进行有限域GF(2

变量节点信息更新,首先将校验节点传递的消息进行重排列,重排列相当于用校验消息除以校验矩阵H中的非零元,除法运算遵循有限域GF(2

a.从校验节点更新缓存(R_idx_ram,R_val_ram)和初始化缓存(fn_idx_ram,fn_val_ram)中读取2组符号和幅度数据,通过数据控制2电路、求和算法电路共同完成同步矩阵求和算法,求解输出符号和幅度(O_idx,O_val),其中同步矩阵求和算法需求解两次,具体流程如下:

a1.校验节点更新缓存(R_idx,R_val)和初始化缓存(fn_idx,fn_val)通数据流控制2电路分别产生A_idx[0]、A_val[0]、B_idx[0]、B_val[0]、B_idx[1]、B_val[1]六组数据;

a2.A_idx[0]、A_val[0]、B_idx[1]、B_val[1]四组数据经同步矩阵求和电路产生O_idx[0]、O_val[0];

a3.A_idx[0]、A_val[0]、B_idx[0]、B_val[0]四组数据经同步矩阵求和电路产生O_idx[1]、O_val[1]。

b.将O_idx[0]、O_val[0]、B_idx[0]、B_val[0]四组数据经同步矩阵求和电路,进行译码判决输出译码结果d_sym。

c.校验:将译码数据d_sym与校验矩阵相乘(乘法运算遵循有限域GF(2

d.如果没有到达最大迭代次数,则将输出符号和幅度缓存(O_idx_ram,O_val_ram)更新为变量节点符号和幅度缓存(Q_idx_ram,Q_val_ram)。

一种64进制LDPC码的译码实现系统,包括初始化模块、校验节点信息更新模块和变量节点信息更新模块,所述初始化模块用以对符号向量和幅度向量进行初始化,并初始化校验节点符号向量和校验节点幅度向量;所述校验节点信息更新模块用以将变量节点传递的消息进行重排列,通过前向后向递推算法计算得到新的校验节点输出信息;所述变量节点信息更新模块用以将校验节点传递的消息进行重排列,通过归一化的处理方法计算得到新的变量节点输出信息,并选取变量节点信息中置信度最大的信息作为本次迭代的译码输出,再与校验矩阵H相乘得到校验结果,若校验通过或超出迭代次数,则退出迭代,否则重复进行迭代。

本发明根据64进制LDPC码校验矩阵中非零元素的特点,一个校验节点对应四个变量节点(行重为4),一个变量节点对应两个校验节点(列重为2),在校验节点更新时,利用前向后向递推算法将行重为4的校验节点简化并分解成6次取最值运算,变量节点更新时,用校验消息除以校验矩阵非零元,然后进行归一化处理,所有非零元素在对应的校验节点更新和变量节点更新过程中均遵循GF(2

需要说明的是,对于前述的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例属于优选实施例,所涉及的动作并不一定是本申请所必须的。

上述实施例中,描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

技术分类

06120115638393