权重优化的短码长LDPC译码器

2021-07-14 00:22倪永婧张静涛
无线电工程 2021年7期
关键词:码长译码器码字

倪永婧,郭 巍,张静涛

(1.河北科技大学 信息科学与工程学院,河北 石家庄 050000;2.中国电子科技集团公司第五十四研究所,河北 石家庄 050081)

0 引言

在通信中,由于信道上存在着许多干扰,因此接收机会出现接收错误,这一点在无线信道中尤其严重。香农的信道编码定理指出[1],在码长趋向无穷长时,可以找到达到信道容量的编码。BCH和LDPC就是2类经过特殊设计的信道编码。其中, LDPC的汉明距离随着码长的增加而增加[2],因此在码长很长时,可以接近信道容量。

尽管LDPC具有相当多的优势,但是在一些特殊场景中,比如功率很低的情况下,信息速率也非常低,此时LDPC引起的延迟会十分显著。在有限码长编码理论中,文献[3-4]研究了有限码长信道编码的理论性能,文献[5]研究了有限码长下的信道-信源联合编码,文献[6]研究了接力信道中采用有限码长编码的优势。上述研究都是有限码长编码的理论研究,如何构造高性能有限码长编码的问题,通常由RS、RM码等构造[7]。近年来,随着机器学习的发展,将以深度神经网络为代表的机器学习的方法应用在物理层上,例如调制识别[8]、序列估计[9]等,从而在一些特殊场景下获得比传统算法更好的性能。在信道编码方面,文献[10]将神经网络应用在随机编码和Polar码的译码器上。文献[11]采用卷积神经网络预测有色高斯噪声,从而提高了LDPC在有色高斯噪声下的性能。文献[12-13]采用循环神经网络,在增加了随机置换层之后,提高了HDPC的性能,在较低运算资源下获得了与极大似然译码相近的性能。

本文将RNN应用在短码长LDPC译码器上,提高了译码器的性能。首先,简单介绍了LDPC的传统译码方法,包括和-积算法及其Trellis图的表示,并且给出了一个简单的Trellis图的例子。其次是基于RNN的LDPC译码算法,然后对本文提出的算法进行了仿真验证,最后给出结论。

1 置信度传播算法及其Trellis图表示

1.1 置信度传播算法

置信度传播(Belief Propagation)算法是Tanner图上的消息传播算法,用于计算边缘概率分布。LDPC的和-积(Sum-Product)译码算法是置信度传播算法的应用,LDPC的其他近似译码算法,例如最小-和(Min-Sum)算法是对和-积算法的近似。根据文献[14],当Tanner上没有环时,LDPC的码距上限很低,因此性能高的LDPC的Tanner图上均有环,从而置信度传播算法的结果近似于边缘概率分布。当译码器的输入为对数似然比时,置信度传播算法的第l次迭代如下所示[15]:

(1)

(2)

式(1)被称作行更新,Nm,n表示校验矩阵第m行中除了第n列上的非零元素之外,其他非零元素的列号的集合。式(2)被称作列更新,Mn表示第n列上所有非零元素的行号集合。LLR是译码器输入的对数似然比。第l次迭代之后,每符号的边缘概率分布为:

(3)

在机器学习中,函数:

被称为Sigmoid函数,通常作为神经网络的输出层。

1.2 Trellis图

将1.1节中的置信度传播算法展开,就可以得到译码器的Trellis图表示[11]。Trellis图可以分为输入层、中间层和输出层3部分。输入层的节点表示解调器的输出,通常为对数似然比。中间层的节点表示Tanner图中边上传播的信息。输出层对中间层计算的条件概率做边缘化处理,得到码字中每符号的对数似然比。

Trellis图中只有分别属于相邻2层的节点之间有边,这些边由码字的校验矩阵决定。假设Trellis图中共有2L个中间层,那么,当i∈{2,4,…,2L}时,第i层的输出为:

(4)

当i∈{2,4,…,2L}时,i层的输出为:

(5)

Trellis图的输出为:

(6)

以文献[16]中的编码为例,其校验矩阵如式(7)所示。不难看出,这是一个规则编码,码长很短,其Tanner中边的数量很少。根据Trellis图的定义,Trellis中的中间节点表示每次迭代中Tanner图中对应边上所传播的信息。因此式(7)所示的编码的Trellis图较为简单,易于在上面进行计算验证。

(7)

图 1是式(7)所表示编码的Trellis图,中间共4层隐藏节点,意味着该图描述了2次置信度传播迭代。

图1 式(7)中校验矩阵对应的Trellis图

节点上的短线表示输入译码器的对数似然比。奇数列表示置信度传播算法中的行更新,偶数列代表置信度传播算法中的列更新,因此每2列表示置信度传播算法的一次迭代。

2 权重优化的译码器

2.1 循环神经网络

循环神经网络[17]是神经网络的一种,其特点是在网络中增加了隐藏状态。RNN的基本结构如图 2所示。在图 2中,φ表示中间层,中间层可能包含一些内部结构,常见的情况是中间层由一个全连接层和激活函数组成。Ht表示t时刻的隐藏状态,xt是t时刻的输入,o表示输出函数。这样,t时刻的输出可以表示为:

图2 RNN的结构

(8)

2.2 优化权重的LDPC译码器

对比Trellis图和RNN可以发现,Trellis图和RNN具有十分相似的结构。RNN中的隐藏状态是Trellis图中每次迭代后的概率分布,RNN中的中间输出结果是对每次迭代后的概率分布做边缘化处理的结果。

同时也要注意到,Trellis图和RNN的主要区别在于输入。RNN的提出主要是为了考虑输入序列中前后符号之间的相关性。然而,在译码器中,每次迭代后的输入为同一解调输出,循环迭代的原因是为了近似计算各符号的对数似然比。

尽管Trellis图和RNN具有不同的物理意义,其结构上的相似性使得采用训练RNN的方法来优化Trellis图中的权重成为可能。文献[12-13]将RNN结构应用在BCH、RS等代数编码上,获得了接近于极大似然译码的性能。本文考虑另一种编码,即短码长的LDPC码。一般认为,LDPC的码长越长,其性能越好。当LDPC的码长较短时,其瀑布区的信噪比会增加,且平台区的误码率也会增加。因此,LDPC通常应用于速率较高的业务数据,在这种情况下,编码器引起的延迟可以忽略。在一些具有特殊要求的通信中,受限于发射机功率或者接收机的增益,使得信息速率较低,此时长码长的LDPC编码引起的延迟会难以接受。这种情况下,除了考虑BCH、RS等代数编码之外,短码长的LDPC编码也是一种可能的方案。

短码长LDPC性能较差的主要原因是码长较短时,Tanner图上的环的半径较小,从而导致码距较小。与文献[12-13]类似,如果改变译码中线性运算的权重,那么可以预期一些导致性能恶化的边的权重会降低,从而提高译码器的性能。此外,由于这种译码器(BP-RNN)的结构直接来源于置信度传播算法,因此保证了其性能不会比置信度传播算法更差。

具体来说,在BP-RNN译码器中,式(4)保持不变,式(5)变为:

,

(9)

(10)

损失函数采用交叉熵,定义如下:

(11)

式中,on是网络的输出,代表译码器估算的第n个符号为0的概率;yn是实际发送的码字。交叉熵衡量的是2个概率分布之间的相似程度[1]。在训练中发送的是全零码字。不难看出,此时交叉熵只与网络输出有关,网络输出越接近于0,交叉熵越小。因此优化交叉熵,同时就优化了网络的性能。

式(4)中的双曲正切和反双曲正切函数的计算量很大,Min-Sum算法[16]对式(4)做近似处理:

(12)

同样地,在BP-RNN译码器中,也采用类似的近似方法,并将式(12)中的权重改为需要优化的权重,即:

(13)

可以看出,BP-RNN中只调整中间层和输出的边的权重,并不调整输入层边的权重。这是由于输入层仅仅完成每个符号的对数似然比的传递,并不需要改变其大小。

3 仿真结果

为了验证本文算法的性能,在特定的短码长LDPC上进行了仿真。本文采用了文献[18]中的短码长LDPC设计方法,设计了码长为128,256和512的3种准循环LDPC,其校验矩阵分别如图 3、图 4和图 5所示。仿真中采用了深度学习框架PyTorch[19]。

图3 LDPC(128,64)校验矩阵

图4 LDPC(256,128)校验矩阵

图5 LDPC(512,256)校验矩阵

在训练中,发送的码字为全0码,采用PyTorch实现的随机梯度下降[20](SGD)算法来优化译码器的权重,学习速率为10-3,mini-batch的大小为200。Gruber等人[10]的研究结果表明,在处理类似LDPC的随机编码时,如果网络设计较差,神经网络对训练时没有出现过的码字有可能无法正确译码。因此,在性能评估中,首先生成长度为64,128和512的随机二进制序列,然后编码为码率1/2的系统码。这样,所有参与性能评估的码字均为训练时未出现的码字(全零码字出现的概率仅为2-64或更低,可以认为不出现),从而增加了仿真结果的说服力。此外,文献[12-13]中训练神经网络时,训练数据为不同信噪比下的接收数据。由于LDPC本身的译码性能优于文献[12-13]中的BCH码,因此本文只在低信噪比下训练。实际训练数据的信噪比为3.3 dB。同时,在训练时,RNN中的迭代次数为2,而训练完成后,RNN的迭代次数可以为任意多次。在调制方式为BPSK,AWGN信道的条件下,解调器输出的对数似然比为[15]:

(14)

式中,σ2为噪声的方差;R为码率;Eb为每比特能量;rn为第n个符号接幅度。

图 6是码长128的LDPC译码器性能。从中可以看出,尽管BP-RNN在训练时只采用了2次迭代,但是在训练完成后,随着迭代次数的增加,BP-RNN相对于BP的优势越明显。在迭代15次时,BP-RNN相比BP大约有0.5 dB的增益,且BP-RNN采用5次迭代时已经超过BP15次迭代的性能。其次,尽管训练时采用了低信噪比的数据,BP-RNN译码器在所有信噪比下的误码率都低于BP译码器。

图6 LDPC(128,64),BP译码器和BP-RNN译码器性能

图 7和图 8分别是LDPC(256,128)和LDPC(512,256)的译码器性能。与LDPC(128,64)类似,在多次迭代的情况下,BP-RNN相比BP获得了超过0.5 dB的增益。另一方面,RNN网络优化之后,引入了大量浮点数乘法运算,从而增加了译码器计算复杂度,这是BP-RNN译码器的缺点。

图7 LDPC(256,128),BP译码器和BP-RNN译码器性能

图8 LDPC(512,256),BP译码器和BP-RNN译码器性能

4 结束语

本文探讨了基于RNN结构的译码器在短码长LDPC上的应用,介绍了BP-RNN译码器的结构,采用交叉熵作为损失函数,并且对码长分别为128,256和512的QC-LDPC进行仿真。结果表明,在迭代次数较多的情况下,BP-RNN译码器运算复杂度增加,但是相比BP译码器的性能有较大提高。本文的仿真均采用了双精度浮点数,在实际实现中,可否采用定点数,从而降低运算复杂度,提高译码器的吞吐率,是将来需要进一步研究的问题。

猜你喜欢
码长译码器码字
基于信息矩阵估计的极化码参数盲识别算法
双路连续变量量子密钥分发协议的有限码长效应分析*
高速码率兼容DVB-S2的LDPC译码器的FPGA实现
放 下
数据链系统中软扩频码的优选及应用
放下
编码器和译码器综合实现数字显示
跟踪导练(一)5
基于斐波那契数列短码长QC-LDPC码的构造
Turbo码嵌入比特交织编码调制系统的一种新的迭代时序方案