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

一种LDPC码神经网络训练、译码方法及其系统

文献发布时间:2023-06-19 13:29:16


一种LDPC码神经网络训练、译码方法及其系统

技术领域

本发明涉及LDPC码译码技术领域,特别是涉及一种LDPC码神经网络训练、译码方法及其系统。

背景技术

低密度奇偶校验码(low-densityparity-check,LDPC)是一种著名的线性纠错码,最早由Gallager在1962年提出。该码具有接近香农极限的出色纠错性能和较高的译码吞吐量,近年来已成为新的研究热点。到目前为止,置信传播(BeliefPropagation,BP)译码算法是最常用的LDPC译码算法之一。BP译码算法在码长很长时可获得与香农极限接近的译码性能。在5G的应用场景中,超高可靠与低延迟的通信被应用到许多领域中,如智能交通系统、工业自动化等;在这些场景中,用户通信的主要需求是更好的灵活性,低延迟,通讯可靠性高,即在通信这些场景中,对短码的需求越来越高,但是由于短环的存在,在LDPC短码中BP译码算法的译码性能不及在长码中的表现。

而近年来,具有强大的学习和提取特征属性的能力的深度学习逐渐被广泛应用到通信技术中并取得了突出的进展,而神经网络(Artificial Neural Network,ANN)是深度学习中的一种重要的数学模型,包含大量的神经元,是一种自适应系统,具有强大的提取高维数据隐藏特征的能力,近几年在目标识别、图像分类、药物发现、自然语言处理以及围棋等诸多领域,都取得了重大突破并且大大改善了原有的系统性能;虽说神经网络在其他领域都作出了较为重大的贡献,但是现阶段还没有将深度学习应用到LDPC短码BP译码算法中的方案提出。

针对以上的问题,提供一种译码方法,结合神经网络的特点以降低BP译码算法在LDPC短码中译码性能的损失,满足用户在通信领域的需求是必要的。

发明内容

本发明的目的是提供一种LDPC码神经网络训练、译码方法及其系统,解决传统的BP译码算法在短码中的译码性能不及在长码中的表现的问题。

为实现上述目的,本发明提供了如下方案:

一种LDPC码神经网络译码方法,包括以下步骤:

获取用于训练神经网络译码模型的数据集;其中,所述数据集为将历史经过AWGN信道传输的输出信号解调得到的比特对数似然比数据集。

根据所述数据集确定神经网络译码模型的结构,得到待训练的神经网络译码模型;

利用所述数据集对所述待训练的神经网络译码模型进行迭代训练,得到训练好的神经网络译码模型。

可选的,所述根据所述数据集确定神经网络译码模型的结构具体包括:

所述神经网络译码模型包括输入层、隐藏层和输出层,其中,隐藏层包括校验节点层和变量节点层;

根据所述数据集确定神经网络译码模型中隐藏层的层数,具体包括;

根据所述数据集所使用的LDPC码的校验矩阵H得到对应的Tanner图;

将所述Tanner图中有消息传递关系的校验节点与变量节点分别作为第n层校验节点层和第n层变量节点层。

进一步的,所述利用所述数据集对所述待训练的神经网络译码模型进行迭代训练具体包括:

依次对隐藏层中每组具有消息传递的校验节点层和变量节点层进行训练,迭代次数为隐藏层层数的一半;

对其中一组具有消息传递的校验节点层和变量节点层进行训练具体包括:

将传递的消息分别在校验节点层和变量节点层进行信息更新,得到更新后的变量节点信息;

根据所述更新后的变量节点信息输出对应的变量节点的神经网络译码结果;

根据所述神经网络译码结果和输入的所述数据集的误差优化网络,进行下一组的训练。

可选的,所述将传递的消息分别在校验节点层和变量节点层进行信息更新具体包括:

在校验节点层将校验节点传递到变量节点的消息乘以校正因子进行信息更新;

在变量节点层将变量节点传递到下一层校验节点的消息乘以校正因子进行信息更新。

进一步的,所述根据所述更新后的变量节点信息输出对应的变量节点的神经网络译码结果具体包括:

将所述更新后的变量节点信息输出到输出层,在输出层使用sigmod函数作为激活函数,输出该变量节点对应的神经网络译码结果。

进一步的,所述根据所述神经网络译码结果和所述数据集的误差优化网络具体包括:

使用交叉熵损失函数计算所述神经网络译码结果和传输的所述数据集的误差,得到输出误差;

针对所述输出误差,使用小批量梯度下降算法和Adam优化方法搜索训练网络,得到训练好的神经网络译码模型。

对应于前述的LDPC码神经网络训练方法,本发明还提供了一种LDPC码神经网络训练系统,所述训练系统被处理器运行时执行如前所述的LDPC码神经网络训练方法

另一方面,本申请还提供了一种LDPC码神经网络译码方法,利用执行如前所述LDPC码神经网络训练方法所得到的训练好的神经网络译码模型对LDPC码数据进行译码,具体包括以下步骤:

获取经过AWGN信道传输的输出信号解调为比特对数似然比数据集;

将所述比特对数似然比数据集输入所述训练好的神经网络译码模型;

依次对隐藏层中每一组对应的校验节点层和变量节点层进行信息更新,迭代次数为隐藏层层数的一半;

针对其中一组对应的校验节点层和变量节点层进行信息更新包括:

分别在校验节点层将校验节点传递到变量节点的消息乘以校正因子进行信息更新,在变量节点层将变量节点传递到下一层校验节点的消息乘以校正因子进行信息更新;

根据所述更新后的变量节点信息,输出对应的变量节点的神经网络译码结果,直至完成对隐藏层中的所有节点层的信息更新。

对应于前述的LDPC码神经网络译码方法,本发明还提供了一种LDPC码神经网络译码系统,所述系统被处理器运行时执行如前所述的LDPC码神经网络译码方法。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供的一种LDPC码神经网络训练、译码方法及其系统,通过构建神经网络译码模型并利用数据集对神经网络译码模型进行训练,通过多次的迭代训练,结合了深度学习强大的学习能力以及神经网络强大的提取高维数据隐藏特征的能力,使用训练好的神经网络译码模型对LDPC码数据进行译码输出,降低了BP译码算法在对LDPC短码译码中性能的损失,使对LDPC码的译码具有更好的灵活性,低延迟,通讯可靠性高,满足了用户在通信领域的主要需求。

附图说明

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

图1为本发明实施例1提供的一种LDPC码神经网络训练方法的流程图;

图2为本发明实施例1提供的方法中神经网络译码模型的结构图;

图3为本发明实施例1提供的方法中步骤A2的流程图;

图4为本发明实施例1提供的方法中步骤A3的流程图;

图5为本发明实施例2提供的一种LDPC码神经网络训练系统的示意图;

图6为本发明实施例3提供的一种LDPC码神经网络译码方法的流程图;

图7为本发明实施例3提供的方法中步骤B3的流程图;

图8为本发明实施例4提供的一种LDPC码神经网络译码系统的示意图;

图9为本发明实施例5仿真对比中不同信道条件下训练数据的性能图;

图10为本发明实施例5仿真对比中迭代次数与BER性能关系图;

图11为本发明实施例5仿真对比中本译码方法与传统方法的性能关系图。

符号解释:1:LDPC码神经网络训练系统;2:历史数据集获取模块;3:模型构建模块;4:模型训练模块;3-1:隐藏层确定子模块;4-1:迭代训练子模块;4-1-1:信息更新单元;5:LDPC码神经网络译码系统;6:数据集获取模块;7:译码模块;7-1:迭代更新单元;7-2:输出单元。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种LDPC码神经网络训练、译码方法及其系统,解决传统的BP译码算法在短码中的译码性能不及在长码中的表现的问题。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例1:

如图1所示的流程图,本实施例提供了一种LDPC码神经网络训练方法,包括以下步骤:

A1、获取用于训练神经网络译码模型的数据集;其中,所述数据集为将历史经过AWGN信道传输的输出信号解调得到的比特对数似然比数据集;

A2、根据所述数据集确定神经网络译码模型的结构,得到待训练的神经网络译码模型;如图2所示的神经网络译码模型的结构图,神经网络译码模型包括输入层、隐藏层和输出层,隐藏层包括校验节点层和变量节点层;

神经网络译码模型的结构由BP译码的迭代次数决定,如迭代T次的BP译码将被展开为2T+2层神经网络,其中包含输入层、输出层和2T层隐藏层;

BP译码的迭代次数体现在其所使用的LDPC码的校验矩阵H上,将校验矩阵转换得到Tanner图可以很容易得到对应的校验节点层和变量节点层,如图3所示的流程图,步骤A2具体包括:

A21、根据数据集所使用的LDPC码的校验矩阵H得到对应的Tanner图;

A22、将所述Tanner图中有消息传递关系的校验节点与变量节点分别作为第n层校验节点层和第n层变量节点层;

数据集所使用的LDPC码的校验矩阵H可以用Tanner图表示,Tanner图包含两类顶点:变量节点与校验矩阵的列相对应;校验节点与校验矩阵的行相对应。

校验矩阵中第i列第j行的非零元素在Tanner图中对应第i个变量节点和第j个校验节点间连接的边缘。将Tanner图中的校验节点和变量节点作为在隐藏层中的校验节点层和变量节点层,则2T层隐藏层包含T层校验节点层和T层变量节点层,分别进行校验节点和变量节点中信息的更新。

A3、利用所述数据集对所述待训练的神经网络译码模型进行迭代训练,得到训练好的神经网络译码模型;迭代次数为隐藏层层数的一半;

为了保证使用神经网络译码模型进行译码的作用,在使用前对其每一层的信息进行更新,如图4所示的流程图,步骤A3对其中一组具有消息传递的校验节点层和变量节点层进行训练的步骤具体包括:

A31、将传递的消息分别在校验节点层和变量节点层进行信息更新,得到更新后的变量节点信息;

在校验节点层将校验节点传递到变量节点的消息乘以校正因子进行信息更新;在变量节点层将变量节点传递到下一层校验节点的消息乘以校正因子进行信息更新。

在本实施例中,用L(P

针对不同的要求,可以选用不同结构的神经网络译码模型,不同的神经网络译码模型具有不同的更新规则;

若对性能要求更高,对复杂度性能要求较低,则选择基础神经网络译码模型(NeuralBP,NBP),在该模型中每一次节点信息的更新使用的校正因子都不同,即分别在校验节点层将校验节点的消息乘以校正因子α

在第l层(0<l≤T,l∈Z)校验节点层将校验节点传递到变量节点的消息乘以校正因子α

其中,L

在第l层变量节点层将变量节点传递到校验节点的消息乘以校正因子β

其中,L

将更新后的变量节点的信息L

若要求较低的复杂度且可接受性能的小幅度降低,则选择参数归一化神经网络译码模型(NormalizedNeural BP,NNBP),在该模型中同一层使用相同的校正因子,即分别在校验节点层将校验节点的消息乘以校正因子α进行信息更新;在变量节点层将变量节点的消息乘以校正因子β进行信息更新;

对于参数归一化神经网络译码结构,在第l层校验节点层将校验节点传递到变量节点的消息乘以校正因子α进行信息更新:

其中,α

在第l层变量节点层将变量节点传递到校验节点的消息乘以校正因子β进行信息更新:

其中,β

将更新后的变量节点的信息L

A32、根据更新后的变量节点信息输出对应的变量节点的神经网络译码结果;

将更新后的变量节点信息输出到输出层,在输出层使用sigmod函数作为激活函数,输出该变量节点对应的神经网络译码结果。

输出层包含n个神经元,分别对应n个变量节点。第i个变量节点更新后的信息在输出层通过第i个神经元进行该节点对应的神经网络译码结果的输出:

在输出层使用sigmod函数

A33、根据所述神经网络译码结果和输入的所述数据集的误差优化网络,进行下一组的训练;

为了保证得到的是最优的结果,使用交叉熵损失函数计算所述神经网络译码结果和传输的所述数据集的误差,得到输出误差:

其中,o

针对所述输出误差L(P,o),使用小批量梯度下降算法和Adam优化方法搜索训练网络,得到训练好的神经网络译码模型。

本实施例中提出的LDPC码神经网络训练方法,通过构建神经网络译码模型并利用数据集对神经网络译码模型进行多次的迭代训练,结合了深度学习强大的学习能力以及神经网络强大的提取高维数据隐藏特征的能力,在每次训练中使计算传输的数据和实际输出的误差,根据误差使用小批量梯度下降算法和Adam优化方法进行优化,得到训练好的神经网络译码模型,为后续降低BP译码算法性能的损失提供基础。

实施例2:

此外,本发明实施例1的方法也可以借助于图5所示的LDPC码神经网络训练系统1的架构来实现。如图5所示,该LDPC码神经网络训练系统1可以包括历史数据集获取模块2、模型构建模块3和模型训练模块4;一些模块还可以有用于实现其功能的子单元,例如在模型构建模块3中还包括隐藏层确定子模块3-1,在模型训练模块4中还相继包括迭代训练子模块4-1和信息更新单元4-1-1。当然,图5所示的架构只是示例性的,在实现不同的功能时,根据实际需要,可以省略图5示出的系统中的一个或至少两个组件。

实施例3:

如图6所示的流程图,本实施例提供了一种LDPC码神经网络译码方法,包括以下步骤:

B1、获取经过AWGN信道传输的输出信号解调为比特对数似然比数据集;

B2、将所述比特对数似然比数据集输入执行如实施例1的训练方法得到的训练好的神经网络译码模型;

B3、依次对隐藏层中每一组对应的校验节点层和变量节点层进行信息更新,迭代次数为隐藏层层数的一半;

将输入的数据在前述得到的训练好的神经网络译码模型的每一层隐藏层中进行节点信息的更新,从而得到最终的译码结果,如图7所示的流程图,步骤B3中针对其中一组对应的校验节点层和变量节点层进行信息更新包括:

B31、在校验节点层将校验节点传递到变量节点的消息乘以校正因子进行信息更新;

B32、在变量节点层将变量节点传递到下一层校验节点的消息乘以校正因子进行信息更新;

B32、根据所述更新后的变量节点信息,输出对应的变量节点的神经网络译码结果,直至完成对隐藏层中的所有节点层的信息更新。

本实施例中提出的LDPC码神经网络译码方法,使用前述的训练方法得到训练好的神经网络译码模型,结合了深度学习强大的学习能力以及神经网络强大的提取高维数据隐藏特征的能力,并使用神经网络译码模型对LDPC码数据进行译码输出,降低了传统BP译码算法在对LDPC短码译码中性能的损失,使对LDPC码的译码具有更好的灵活性,低延迟,通讯可靠性高,满足了用户在通信领域的主要需求。

实施例4:

此外,本发明实施例3的方法也可以借助于图8所示的LDPC码神经网络译码系统5的架构来实现。如图8所示,该LDPC码神经网络译码系统5可以包括数据集获取模块6和译码模块7;一些模块还可以有用于实现其功能的子单元,例如在译码模块7中还包括迭代更新单元7-1和输出单元7-2。当然,图8所示的架构只是示例性的,在实现不同的功能时,根据实际需要,可以省略图8示出的系统中的一个或至少两个组件。

技术中的程序部分可以被认为是以可执行的代码和/或相关数据的形式而存在的“产品”或“制品”,通过计算机可读的介质所参与或实现的。有形的、永久的储存介质可以包括任何计算机、处理器、或类似设备或相关的模块所用到的内存或存储器。例如,各种半导体存储器、磁带驱动器、磁盘驱动器或者类似任何能够为软件提供存储功能的设备。

所有软件或其中的一部分有时可能会通过网络进行通信,如互联网或其他通信网络。此类通信可以将软件从一个计算机设备或处理器加载到另一个。例如:从视频目标检测设备的一个服务器或主机计算机加载至一个计算机环境的硬件平台,或其他实现系统的计算机环境,或与提供目标检测所需要的信息相关的类似功能的系统。因此,另一种能够传递软件元素的介质也可以被用作局部设备之间的物理连接,例如光波、电波、电磁波等,通过电缆、光缆或者空气等实现传播。用来载波的物理介质如电缆、无线连接或光缆等类似设备,也可以被认为是承载软件的介质。在这里的用法除非限制了有形的“储存”介质,其他表示计算机或机器“可读介质”的术语都表示在处理器执行任何指令的过程中参与的介质。

实施例5:

下面结合本实例,将本发明提供的LDPC码神经网络译码方法与传统的BP译码方法性能进行对比,以(128,64)LDPC码为例,不同信道条件下训练数据的性能图如图9所示,选取1-5dB的多通道条件下训练;迭代次数与BER性能关系图如图10所示,综合考虑性能与结构复杂度,在神经网络BP译码中最终选择了44层网络进行20次迭代;本方法与传统方法的性能对比结果如图11所示,本发明在译码性能方面优于传统BP译码,此仿真结果证明了本发明所设计的神经网络译码方法的有效性。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;本领域的技术人员应该理解,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。

同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种LDPC码神经网络训练、译码方法及其系统
  • 一种空间通信系统中部分并行结构LDPC码译码系统及其方法
技术分类

06120113689222