基于深度学习的Turbo 码译码研究

2021-09-05 02:27朱进蓉苟明亮秦明伟
自动化仪表 2021年6期
关键词:译码器译码高斯

朱进蓉,苟明亮,秦明伟

(1.西南科技大学信息工程学院,四川 绵阳 621000;2.西南科技大学四川省重点机器人实验室,四川 绵阳 621000)

0 引言

1993 年,C.Berrou、A.Glavieux 等提出了Turbo 码。迭代思想作为Turbo 码的重要特点也得到越来越多的研究。

例如,Semi 通过设定门限值,提出了Threshold_Log_MAP 算法。该算法虽然在很大程度上减少了译码算法的复杂度,但是在性能上损失了大概零点几分贝[1]。Jaeyong Son 等设计了一种低复杂度的分组Turbo 码(block Turbo codes,BTCs)译码算法。BTCs 译码算法是通过串行串联线性块码构造的,并通过让每个分量代码分两步解码来迭代解码[2]。Al-Dweik 等提出了一种新型Turbo 低复杂度译码器——超轻译码器。与标准的Turbo 乘积码(Turbo product codes,TPCs)译码器相比,超轻译码器降低了复杂性并减少了延迟。降低复杂度和延迟将使得系统能够使用具有高码率的代码来提高频谱效率,或者能够使用具有低码率的强大代码来降低发射功率[3]。此外,H.Nickl 设计了一种以汉明码为分量码,并将其作为Turbo 码的编码方案。它的性能与香农理论值仅相差0.27 dB。但是,这些方法还存在很大的局限性,仅通过改进Turbo 码的编译码性能来提高准确度是不够的。

随着深度学习的高速发展,很多学者尝试将深度学习的方法应用到通信领域。Cammerer 等利用神经网络辅助组件取代了一些置信度传播(belief propagation,BP) 译码器的子块,并通过剩余 BP 阶段耦合这些子块[4]。王翼韬试图在Turbo 码现有的译码算法中引入隐藏参数,通过神经网络对隐藏参数进行训练,并利用神经网络对Turbo 码作并行译码的可行性分析[5]。

信道编码中的大多数结果都是基于加性高斯白噪声假设完成的,但是该假设在通信应用的实际环境中却无法满足。研究表明,实际通信环境的噪声符合非高斯分布。而深度学习模型能够学习复杂的数据类别和特征。因此,本设计主要研究基于卷积神经译码网络的Turbo 码译码,以提高Turbo 码在非加性高斯白噪声(additive white Gaussian noise,AWGN)信道上对突发环境的适用性。

1 系统模型

基于神经网络的信道译码模型如图1 所示。

图1 基于神经网络的信道译码模型Fig.1 Channel decoding model based on neural network

模型左边部分为信道编码的过程,将n位原始信息进行Turbo 码编码,得到码长为N的码字;中间部分是对编码后的码字进行信号的调制和加噪过程;最右边为卷积神经译码网络。其主要目的是将加过噪声的N值码字恢复成原始的n位信息位,即完成译码。其过程主要是用卷积神经译码网络替换传统的Turbo 码译码算法。卷积神经译码网络不需要学习Turbo 码译码算法相关的知识,只需要对编码信息进行相关的特征提取。通过对其设置初始权重和偏置值,利用损失函数拟合出最佳的译码函数值,从而实现端到端的训练,直至收敛得到最终的译码模型。

2 基于卷积神经网络的Turbo 码译码网络

2.1 数据集的生成

在图像、语音识别等领域,神经网络中数据集的生成所需的数据空间是无穷大的。因此,无法对整个数据空间作训练,只能先进行采样再对样本作训练[6-7]。而编译码问题的特殊之处在于:在编码端,其数据空间是有限的。例如一个(n,k)二进制Turbo 码编码器,可能的码字就只有2k种;但是在接收端,由于信道经过了加噪的过程,可能获取的数据集空间又变为无穷大。

在本设计中,训练集的数据以如下过程生成:将编码比特xi经过加性高斯白噪声,得到神经译码网络的训练集。每次数据叠加的高斯白噪声与信号的信噪比为均匀分布的随机数,或者是数据经过非高斯信道后产生的随机数。测试集的数据由编译码常用的通信方式产生,随机生成数据经过信道。不同信噪比对应不同的测试数据。

2.2 卷积神经网络的搭建

为了使Turbo 码能够更好地适应不同的环境,本设计采用的是一种基于卷积神经网络(convolutional neural network,CNN)的译码网络结构。译码网络的结构主要分为4 个部分,分别是信号的输入模块、卷积模块、全连接模块以及输出模块[8]。

基于卷积神经网络的架构如图2 所示。

图2 基于卷积神经网络的架构Fig.2 Architecture based on convolutional neural network

①输入模块。

输入模块主要是对经过信道的信号进行预处理,然后送入卷积神经网络译码器中进行译码。本设计采用的子译码器为2×64 的矩阵:第一列的数据为经过信道后的信息位x1~x64;第二列的数据为经过信道后的校验数据y1~y64。

基于卷积神经网络的子译码器结构如图3 所示。

图3 基于卷积神经网络的子译码器结构Fig.3 Sub-decoder structure based on convolutional neural network

②卷积模块。

对于神经网络来说,卷积层是其非常重要的模块。在卷积神经网络中,为了降低网络对数据的突发异变,利用卷积层对数据进行特征提取。然而,网络层数越多,卷积神经网络越会对每个数据元进行深入的分析。另外,卷积神经网络拥有很高的分辨率,可以通过训练自动提取输出数据和输入数据之间的关系,并且自适应地存储训练的权重值[9]。

本设计中,通过堆叠多个相同形状的1D-CNN 滤波器,构造一个基于CNN 的Turbo 码译码器。相同形状的1D-CNN 滤波器不需要长期依赖。为了更好地训练性能,第一层为32 个相同形状的1D-CNN 的滤波器,第二层为64 个,第三层为128 个,第四层为64 个,第五层为32 个。内核大小为5。卷积层采用修正线性(rectified limear unit,ReLU)单元作为激活函数。函数表达式为:

ReLU 函数通常用作神经网络中隐层的输出,能够缓减过拟合的问题。与其他激活函数相比,ReLU 函数只需要一个门限值即可获得激活值,并且计算速度快、训练时间短[10]。

③全连接模块。

全连接层的作用是对卷积层提取到的高层抽象特征进行组合,输入到第二个全连接层,以减少特征位置对分类带来的影响,从而减少特征信息的丢失。本设计采用了2 个全连接层,第一层设计为256,第二层设计为128。

④输出模块。

输出模块主要用于最终目标结果的输出。其模型一般使用Sigmoid 函数。其表达式为:

对于卷积神经网络来说,Sigmoid 函数是比较常用的、用于输出层的函数。它是一个单调递增函数,在趋于正无穷和负无穷时,函数趋于平滑状态。它的值域为(0,1),函数值具有非常好的对称性,优化性能稳定[11]。

2.3 学习过程

通过对卷积神经译码网络设置初始权重和偏置值,利用损失函数拟合出最佳的译码函数值,从而实现端到端的训练,得到最终的译码模型。则整个网络的译码函数可以表示为:

式中:s为译码网络的输入信号;w为权重;b为偏置值;o为译码输出值。

译码函数是神经网络通过不断学习拟合而形成的。

在输出模块中,输出层的拟合函数fsigmoid为:

式中:q为定义全连接的输出。

所以,CNN 卷积神经译码网络的输出o′可以表示为:

根据信道编码的特点,定义CNN 卷积神经译码网络的损失函数为:

为了使网络的损失函数迅速收敛到最小值,本文采用 Adam 优化器,不断训练译码网络、计算损失函数值,从而确定最佳的权重值和偏置值。

3 试验结果与分析

为了验证基于CNN 的译码网络方案的性能,本设计将卷积神经网络译码器的误码率(bit error rate,BER)降到最低。作为试验条件,通常将二进制交叉熵损失用作可区分的替代损失函数。在高斯信道和非高斯信道下,将基于卷积神经译码网络与标准的译码器的性能进行了比较。

3.1 高斯信道

在2 次迭代和6 次迭代时,将卷积神经译码器和标准的Turbo 码译码器的性能进行了比较。

不同迭代次数对比结果如图4 所示。

图4 不同迭代次数对比结果Fig.4 Comparison results of different iterations

图4 中,B表示误码率;S表示信噪比(signal-noise rate,SNR)。

与标准的、拥有2 个迭代译码器的Turbo 码译码器相比,CNN 译码器在2 次迭代时表现出比6 次迭代更明显的优异性能。这意味着CNN 译码器在较低层或者在较少的迭代次数时,能够比标准的Turbo 码译码器更快地提取到信息的特征。因此,CNN 译码器可以通过较少的迭代次数达到所需要的译码性能。

为比较Turbo 码译码器与CNN 译码器的性能,将它们都在码长为64 的情况下进行训练,并且译码器的迭代次数为6。CNN 译码器符合标准Turbo 码译码器的性能。对于高信噪比(S≥0.5 dB)的情况,为了降低译码的误码率这一性能,要慎重选择卷积核的大小K。

不同卷积核对比结果如图5 所示。

图5 不同卷积核对比结果Fig.5 Comparison results of different convolution kernel

根据试验结果,可以发现在K=5 时训练速度更快,并且在K=1 和K=5 时都能够达到最佳性能。

3.2 非高斯信道

雷达通道:y=x+z+w。信道模型在数学上描述如下:y为时刻t的接收符号;x为发送的符号;z为高斯噪声;w为脉冲噪声。其中:是背景AWGN 噪声,是概率为p的高方差低概率的雷达噪声,且。

图6 是卷积神经网络在不同突发噪声下的适应性。

图6 卷积神经网络在不同突发噪声下的适应性Fig.6 Adaptability of convolutional neural network under different burst noises

试验结果表明:标准的Turbo 码译码器会因为不了解突发噪声而导致译码失败;而Bursty Neural 译码器在σ1=3.5 时使用两种先进的启发式方法都优于Turbo 码译码器,且在其他方差下获得的性能是几种方案中较好的。

鲁棒性是指特定信道模型训练的译码器在不重新训练的情况下,能够在不同信道模型上正常工作的能力。适应性是指学习算法针对不同信道模型进行适应和重新训练的能力[12]。因此,从以上分析可以看出,与标准的Turbo 码译码器相比,基于CNN 的译码算法在非高斯信道下也能够通过训练适应不同信道的设置,表明了CNN 译码器具有很好的适应性和鲁棒性。

4 结论

本设计采用基于CNN 的译码算法,研究了用于Turbo 码的端到端的训练型译码器。与标准的Turbo码译码算法相比,其具有更高的可靠性、适应性和更低的错误率。特别是在非高斯信道下,对于来自不同的噪声分布,该设计可以通过进一步的训练以适应其他信道的设置,从而达到很好的性能效果。试验表明,基于CNN 的译码算法具有优异的适应性和鲁棒性。

猜你喜欢
译码器译码高斯
基于校正搜索宽度的极化码译码算法研究
数学王子高斯
天才数学家——高斯
纠错模式可配置的NAND Flash BCH译码器设计
跟踪导练(一)5
从霍尔的编码译码理论看弹幕的译码
从自卑到自信 瑞恩·高斯林
LDPC 码改进高速译码算法
HINOC2.0系统中高速LDPC译码器结构设计
电力线通信中LDPC译码器的优化设计与实现