一种极化码的低复杂度神经BP译码方法与流程

文档序号:22684808发布日期:2020-10-28 12:50阅读:174来源:国知局
一种极化码的低复杂度神经BP译码方法与流程

本发明涉及信道编码技术领域,尤其涉及一种极化码的低复杂度神经bp译码方法。



背景技术:

arikan提出的polar码是第一个被严格理论证明可以达到香农限的构造性编码。随着5g标准化工作的推进,在3gppran1第87次会议中,polar码入选为5g增强移动宽带(enhancedmobilebroadband,embb)控制信道编码方案,这预示着对于polar码编译码方面的研究将具有更加重要的理论与实际意义。

目前polar码(也称极化码)的两种主要译码方案是串行抵消(successivecancellation,sc)译码和置信度传播(beliefpropagation,bp)译码。sc译码算法是一种有效的低复杂度的译码算法,但是由于其顺序译码过程导致较低的吞吐量,并且译码时延较高。而bp译码算法由于并行性实现了更高的吞吐量和更低的延迟,但是需要更多的迭代导致具有很高的运算复杂度,硬件实现困难。近年来,随着深度神经网络(deepneuralnetwork,dnn)的广泛应用,dnn也显示出在信道编码领域中的应用潜力。将dnn应用于译码领域主要分为两种方式,第一个是用完全连接的神经网络完全取代传统的译码算法,虽然在结构化码中,表现出近乎最佳的性能,但是训练复杂度却随着码字长度呈指数增长,对于(n,k)极化码码字类别为2k。另外,码字的高维性还需要更多的训练数据,降低了码字的泛化能力。第二个是将传统bp译码结构与神经网络相结合,则可以很好地平衡复杂度和译码性能。具体来说,通过将迭代结构展开为神经网络的分层结构来改进bp算法。此外,权重还分配给译码网络结构的连接以实现更好的性能。通过采用这些方法,可以分别提高收敛速度并减少译码所需的迭代次数。dnn强大的预测模型和单次译码属性被认为是替代或帮助最新的polar码译码的解决方案。尽管dnn十分强大,但是由于dnn是计算密集型和存储密集型的,因此与传统的非dnn信道译码器相比,dnn辅助信道译码器通常需要更大的计算消耗和内存消耗,阻碍了dnn辅助信道译码器在实际应用场景中的部署。

传统的sc译码算法由于其顺序译码过程导致较低的吞吐量,并且译码时延较高。而bp译码算法需要更多的迭代导致具有很高的时延和能耗。基于全连接的神经网络译码器虽然在结构化码中,表现出近乎最佳的性能,但是训练复杂度却随着码字长度呈指数增长。另外,码字的高维性还需要更多的训练数据,降低了码字的泛化能力。将传统极化码译码结构与深度学习技术相结合的全权重浮点参数译码器需要更大的计算消耗和内存消耗,阻碍了dnn辅助信道译码器在实际场景中的部署。



技术实现要素:

本发明要解决的技术问题是针对上述现有技术的不足,提供一种极化码的低复杂度神经bp译码方法,实现对极化码的译码。

为解决上述技术问题,本发明所采取的技术方案是:一种极化码的低复杂度神经bp译码方法,包括以下步骤:

步骤1:在信道接收端对原始信息序列经过编码、调制和加噪后获得极化码码字序列,即得到待译码码字序列;所述待译码码字序列包括有效信息和信道噪声;

步骤2:建立低复杂度的神经bp译码器;

步骤2.1:基于dnn构建神经bp译码器模型;

将dnn看作极化码bp译码算法因子图的展开结构,得到在因子图的处理单元中通过dnn调整因子图中节点信息的迭代函数,如下公式所示:

其中,分别为第t次迭代时因子图中第i行第j列的节点从右到左的信息和从左到右的信息,即因子图中每个节点包含两种对数似然比(log-likelihoodratio,llr)消息;w(t)是第t次迭代过程中为因子图中节点的从右到左和从左到右的两种相互迭代的信息分配的权重,n为极化码码长,为bp算法中表示变量a,b关系的函数;

将极化码的bp算法中表示变量a,b关系的函数h(a,b)用最小和算法进行简化,即令

h(a,b)=sgn(a)sgn(b)min(|a|,|b|)

其中,sgn(·)为符号函数;

再使用sigmoid函数作为神经bp译码器的输出层以获取译码结果;

步骤2.2:利用k-means聚类算法对权重参数进行空间共享,再在时间上共享神经bp译码器模型权重参数;

首先利用k-means聚类算法将神经bp译码器模型的权重参数聚类为多个类,用同一类中的所有聚类权重替换当前类的聚类中心值,并将聚类中心值作为因子图中节点信息的权重参数;进一步,在时间上共享权重参数,最终将bp译码算法中通过dnn调整节点信息的迭代函数中的权重参数修改为如下公式所示:

其中,是聚类后的权重参数,即聚类中心值;

步骤2.3:采用均匀量化或非均匀量化方法量化神经bp译码器模型权重参数;

采用均匀量化方法量化神经bp译码器模型权重参数的具体方法为:

采用线性量化方法量化dnn译码器模型权重参数,如下公式所示:

其中,为32位的浮点权重量化后的q位的定点权重,的第一位为整数,其他小数部分(q-1)位为十进制,量化步长为2q-1;r(·)表示将数字四舍五入到指定的位数,即将浮点权重四舍五入到用q位表示的最接近的值;

采用非均匀量化方法量化神经bp译码器模型权重参数的具体方法为:首先应用压缩函数对权重参数进行压缩后再进行均匀量化;

步骤2.4:训练神经bp译码器模型;

利用接收到的待译码信道信息和原始信息序列作为训练集,利用随机梯度下降法对神经bp译码器模型行训练,获得神经bp译码器;

步骤3:利用训练好的度神经bp译码器对接收的待译码码字进行译码;

步骤4:随机生成多个码字序列,并对其编码调制加噪得到待译码序列,将二者共同作为新的测试样本,并将新的测试样本输入到步骤2中建立的神经bp译码器模型中,实现对神经bp译码器的性能进行测试。

采用上述技术方案所产生的有益效果在于:本发明提供的一种极化码的低复杂度神经bp译码方法,(1)通过译码网络权重共享策略,包括在空间上的权重聚类和时间上的权重共享结合,可以减少权重参数种类的数量,并且有效地降低了权重参数的内存消耗,从而大幅度压缩了神经bp译码器的存储空间,同时能够保持良好的译码性能;(2)对浮点权重参数进行均匀量化或非均匀量化进一步减少权重参数的存储需求,同时可以提升译码速度;此外,在实际工程中,也是将浮点数量化为定点数后应用于数字信号处理器件中,因此,本发明方法符合实际应用。(3)将传统极化码译码结构与深度学习技术相结合,并利用神经网络译码的单次译码属性,权衡了运算复杂度和译码性能。

附图说明

图1为本发明实施例提供的一种极化码的低复杂度神经bp译码方法的流程图;

图2为本发明实施例提供的一次完整bp译码展开的神经网络示意图;

图3为本发明实施例提供的极化码因子图中处理单元的示意图;

图4为本发明实施例提供的训练神经bp译码器的流程图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本实施例中,一种极化码的低复杂度神经bp译码方法,如图1所示,包括以下步骤:

步骤1:在信道接收端对原始信息序列经过编码、调制和加噪后获得极化码码字序列,即得到待译码码字序列;所述待译码码字序列包括有效信息和信道噪声;

本实施例中,首先,在发送端选取k个无噪信道来传输信息位,在剩余n-k个完全噪声信道中传输冻结位(通常设置为0),通过将原始信息序列u乘以生成矩阵gn,可以得到polar码编码后的编码序列c,如下公式所示:

其中,bn表示置换矩阵,是f的n次kronecker积,且n=log2n,然后,用二进制相移键控(binaryshaseshiftkeying,即bpsk)对编码序列调制为:

x=-2c+1

最后,经加性高斯白噪声信道传输后接收的待译码码字序列表示为:

y=x+z

其中,z为服从均值为0,方差为σ2的高斯分布;

步骤2:建立低复杂度的神经bp译码器;

步骤2.1:基于dnn构建神经bp译码器模型;

借助极化码bp译码算法因子图与dnn之间的相似性,将传统极化码的bp译码算法与dnn结合。更确切地说,将dnn看作极化码bp译码算法因子图的展开结构,图2给出了一个表示极化码bp译码中完整迭代的简单示例。对于一个(n,k)极化码,因子图中有n=log2n个阶段,每个阶段包含n个节点。展开原始因子图后,从左至右和从右至左的每个传播分别对应于前馈神经网络结构中的(n-1)和n层,每层包含n个神经元。从右向左传播的最后一个隐藏层计算原始因子图中最左侧节点的输出。因此,在输入llr穿过(2n-1)个隐藏层之后,便完成了一次完整的bp迭代。最后输出层的sigmoid函数判断接收到的码字的估计值。为了增加dnn中的迭代次数,只需要在输入层和输出层之间串联一定数量的与图3中相同的隐藏层。对于bp译码算的t次迭代对应神经bp译码器有2(n-1)t+3层,本实施例中使用的神经bp译码器模型为bp算法的5次迭代展开,即t=5,对于码长n=16,n=log2n=log216=4,那么神经bp译码器总层数为33。得到在如图3所示的因子图的处理单元中通过dnn调整因子图中节点信息的迭代函数,如下公式所示:

其中,(i,j)表示因子图中第i行中第j列的节点,每个节点包含两种对数似然比(log-likelihoodratio,llr)消息,即从左到右的信息和从右到左的信息分别为第t次迭代时因子图中第i行第j列的节点从右到左的信息和从左到右的信息,即因子图中每个节点包含两种对数似然比(log-likelihoodratio,llr)消息;w(t)是第t次迭代过程中为因子图中节点的从右到左和从左到右的两种相互迭代的信息分配的权重,n为极化码码长,为bp算法中表示变量a,b关系的函数;

将极化码的bp算法中表示变量a,b关系的函数h(a,b)用最小和算法进行简化,即令

h(a,b)=sgn(a)sgn(b)min(|a|,|b|)

其中,sgn(·)为符号函数;

再使用sigmoid函数作为神经bp译码器的输出层以获取译码结果;

步骤2.2:利用k-means聚类算法对权重参数进行空间共享,再在时间上共享神经bp译码器模型权重参数:

首先利用k-means聚类算法将神经bp译码器模型的权重参数聚类为多个类,用同一类中的所有聚类权重替换当前类的聚类中心值,并将聚类中心值作为因子图中节点信息的权重参数;因此,当聚类的数量较小时,用于存储dnn权重所需存储器的成本显着降低。然后通过在时间上共享权重,进一步消除权重参数中的不必要冗余。进而将bp译码算法中通过dnn调整节点信息的迭代函数中的权重参数修改为如下公式所示:

其中,是聚类后的权重参数,即聚类中心值;

步骤2.3:采用均匀量化或非均匀量化方法量化神经bp译码器模型权重参数;

尽管通过权重共享策略有效地减少了所需的参数种类的数量,由于在每次迭代过程中大量使用了浮点参数,其宽数据类型会增加能耗,并限制可以并行处理的数据量,仍然阻碍了神经bp译码器的硬件实现。因此,本发明进一步提出对llr信息的浮点权重参数进行量化,以减少网络中权重的精度,从而减少存储需求和计算成本。下面具体描述均匀量化与非均匀量化方法。

采用均匀量化方法量化神经bp译码器模型权重参数的具体方法为:

采用线性量化方法量化神经bp译码器模型权重参数,如下公式所示:

其中,为32位的浮点权重量化后的q位的定点权重,的第一位为整数,其他小数部分(q-1)位为十进制,量化步长为2q-1;r(·)表示将数字四舍五入到指定的位数,即将浮点权重四舍五入到用q位表示的最接近的值;

采用非均匀量化方法量化bp译码器模型权重参数的具体方法为:首先应用压缩函数对权重参数进行压缩后再进行均匀量化;

非均匀量化方案:在实际中,非均匀量化的实现方法通常在进行量化之前,先将输入值应用压缩函数进行压缩,在进行均匀量化。本实施例采用a律压缩函数,压缩公式为:

其中,w、o分别为压缩函数的输入和输出,a为常数;在实际应用中,选择a=87.6。

最终,经步骤2.2和步骤2.3权重聚类和量化后bp译码器的迭代函数为:

步骤2.4:训练神经bp译码器模型;

利用接收到的待译码信道信息和原始信息序列作为训练集,利用随机梯度下降法对神经bp译码器模型行训练,获得神经bp译码器;

本实施例中,神经bp译码模型在深度学习框架tensorflow上实现。为了找到最佳权重组合,需要一组已知输入、输出映射的训练集,获得标记的训练数据对于深度学习领域来说通常是非常困难和昂贵的任务。但是使用神经网络进行信道编码是特殊的,因为处理的是人造信号。因此,能够生成尽可能多的训练样本。利用接收到的待译码信道信息和原始信息序列对神经bp译码器模型进行训练,如图4所示。信噪比范围选取1db到6db。本实施例中优化器选择adam优化器,学习率为0.01,损失函数选取为交叉熵损失函数:

式中,i与节点(i,j)表述中的i均表示长度为n的码序列中的第i处(j表示阶段),u表示发送的信息码字,σ(l)表示dnn的输出,并且σ(l)=1/(1+e-l)。

步骤3:利用训练好的度神经bp译码器对接收的待译码码字进行译码;

将带有噪声的码字序列输入到步骤2.4训练好的神经bp译码器中,由于输出层表示信息位,因此输出层使用的sigmoid函数获得每个输出位的概率,即迫使输出神经元处于0和1之间,这可以解释为发送“1”的概率,则译码后的位估计为:

步骤4:随机生成多个码字序列,并对其编码调制加噪得到待译码序列,将二者共同作为新的测试样本,并将新的测试样本输入到步骤2中建立的神经bp译码器模型中,实现对神经bp译码器的性能进行测试。

本实施例还生成更多的测试数据,用于衡量译码器的译码性能。对于二进制码,比特出错概率定义为接收的错误比特数与接收的总比特数的比值,用bber表示,公式表示为:

其中,serror和stotal分别表示接收的错误比特数和总比特数。

经测试,改进后的神经bp译码器可实现全权重神经bp译码器的性能,且权重参数数量减少至少80%,复杂度更低。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1