舰船科学技术  2025, Vol. 47 Issue (16): 117-121    DOI: 10.3404/j.issn.1672-7649.2025.16.018   PDF    
一种基于CNN-SENet的水声信道极化码译码算法
代兵兵, 徐明     
上海海事大学 信息工程学院,上海 201306
摘要: 针对现有基于神经网络的极化码译码算法存在的码长不变码率一旦发生变化就需重新训练与无法充分利用冻结比特位信息的问题,提出一种基于CNN-SENet(ConvolutionalNeural Network-Squeeze and Excitation Networks)的水声信道极化码译码算法。神经网络的输入为双通道输入,通道一为LLR(Log-Likelihood Ratio)信息,通道二为冻结比特位信息,并使用SENet注意力模块对不同通道赋予不同权重,注意不同通道的信息重要程度。仿真结果表明,信号通过水声信道后,在−1~2.5 dB信噪比范围下,对于(8,4)码率的极化码,CNN-SENet译码与SC译码性能相近;对于(8,5)码率的极化码,CNN-SENet译码性能整体高于SC译码,在BER为0.1时,平均可以多提供约0.8 dB的编码增益。
关键词: 极化码译码     水声信道     双通道输入     深度学习    
A decoding algorithm for underwater acoustic channel polarimetric code based on CNN-SENet
DAI Bingbing, XU Ming     
College of lnformation Engineering, Shanghai Maritime University, Shanghai 201306, China
Abstract: In order to solve the problems of the existing polar code decoding algorithms based on neural networks, the code length is unchanged and the bitrate changes and the frozen bit information cannot be fully utilized, a hydroacoustic channel polarimetric code decoding algorithm based on ConvolutionalNeural Network-Squeeze and Excitation Networks (CNN-SENet) was proposed. The input of the neural network is dual-channel input, channel 1 is Log-Likelihood Ratio (LLR) information, channel 2 is frozen bit information, and SENet attention module is used to assign different weights to different channels to pay attention to the importance of information in different channels. The simulation results show that after the signal passes through the underwater acoustic channel, in the range of −1~2.5 dB signal-to-noise ratio, the performance of CNN-SENet decoding is similar to that of SC decoding for (8,4) bit rate polar codes. For (8,5) bit rate polar codes, the overall decoding performance of CNN-SENet is higher than that of SC decoding, and when the BER is 0.1, it can provide an average of about 0.8 dB more coding gain.
Key words: polar code decoding     hydroacoustic channels     dual-channel input     deep learning    
0 引 言

水下环境错综复杂,由于声波在传播过程中会受到海底地形、海流、气泡等多种因素的影响,通信质量难以得到保障,为了显著提升这一领域的通信质量,近年来提出了将极化码应用于水声通信的方案[1]。2009年,Arikan[2]提出了极化码编码方案,其能够在二进制输入的离散无记忆信道上达到香农极限。极化码通过其特有的规则递归结构设计,实现了编码与解码算法的复杂度优化。正是这些显著的优点,使得极化码在第五代(5G)无线通信系统中脱颖而出,被选定为增强型移动宽带控制信道的纠错编码方案[3]。SC(Successive Cancellation)译码与BP(Belief Propagation)译码是极化码译码中普遍运用的两大方式[4]。然而,SC的串行处理机制和BP译码的迭代处理策略均会导致较高的解码延迟[5]。为了应对这一挑战,近年来提出了深度学习译码方案,以降低计算复杂度,减小译码时延[67]

Fang等[8]通过采用LLR作为输入信息,并引入全连接神经网络来替代传统的SC译码器,在湍流信道环境下实现了与SC译码器相近的误码率性能。在保持相同码长的条件下,基于LLR的全连接神经网络译码器相较于SC译码器,其译码延迟降低了25%。CAMMERER等[9]提出了一种创新的方案,该方案的核心在于采用神经网络作为替代传统BP译码算法的子译码器。

这一方案不仅优化了极化码的BP迭代译码流程,而且有效地降低了算法的整体复杂度,同时显著提升了译码性能。Wang等[10]针对Polar-LDPC(Polar codes and Low-Density Parity-Check codes)级联方案在解码性能提升的同时伴随解码延迟增加的问题,提出一种创新的解决方案。该方案基于深度学习,通过并行多个神经网络来优化Polar-LDPC的连接机制。在这一改进的级联方案中,神经网络被用来辅助极化码的解码过程,从而有效降低了解码延迟。郭锐等[11]提出了一种针对极化码长码的卷积神经网络译码算法,该算法采用LLR作为输入。与传统的串行抵消列表译码算法相比,该卷积神经网络在低信噪比条件下表现出略胜一筹的性能。

然而以上译码方案都存在相同的问题,即码长不变传输码率变化的情况下,神经网络都需要重新训练,同时以上方案只用到了LLR信息译码,把同样重要的冻结比特位信息丢弃。基于以上问题,本文提出了CNN-SENet网络架构,应用于水声信道下的极化码译码任务。该网络采用独特的双通道输入设计,能够同时接收LLR信息与冻结比特位信息,进而执行译码操作。CNN能够高效地将输入特征映射至高维空间,并巧妙地融入了SENet通道注意力机制模块。这一机制能够为不同通道的数据分配不同的权重,从而精准地关注到对最终结果产生重要影响的通道。得益于LLR信息与冻结比特位信息的综合输入,CNN-SENet网络具备了实现码长固定而码率可任意调整的译码能力。

1 极化码原理 1.1 极化码编码

极化码是一种基于信道极化原理设计的(N,K)线性分组码,其中N代表码字的长度,K代表信息位的数量。该编码机制通过信道的联合与分裂,使得N个子信道的容量出现显著的两极分化现象。在这一过程中,选择K个容量最大的子信道作为信息位A,用于传输用户的有效信息$ {u_A} $。而其余的N-K个子信道则被设为冻结比特位$ {u_{\hat A}} $,这些位不携带任何有效信息,并被预先固定为0或1的值。利用固定的编码生成矩阵$ {{\boldsymbol{G}}_N} $对信源信息$ u_1^N = ({u_1},{u_2},{u_3},...,{u_N}) $进行编码,获得码字$ x_1^N $

$ x_{\text{1}}^{{N}} = u_1^N \times {{\boldsymbol{G}}_N}。$ (1)

式中:$ x_{\text{1}}^{{N}} $极化码码字;$ u_1^N $为信源信息;$ {{\boldsymbol{G}}_N} $为编码生成矩阵。

而对于编码生成矩阵$ {{\boldsymbol{G}}_N} $,可具体表示为:

$ {{\boldsymbol{G}}_N} = {F^{ \otimes {\text{n}}}},n = {\log _2}N $ (2)
$ F = \left[ {\begin{array}{*{20}{c}} 1&0 \\ 1&1 \end{array}} \right] $ (3)

式中:$ {F^{ \otimes {{n}}}} $为二阶极化核Fn阶克罗克内积;N为极化码的码长。

1.2 极化码SC译码

SC译码器的工作机制是,首先接收序列$ y_1^N $的LLR值$ L_1^N $,并结合已知的冻结比特位$ {u_{\hat A}} $的信息,随后逐步推导出对$ u_1^N $的估计值$ \hat u_{\text{1}}^{\text{N}} $

SC译码是一种按位进行的译码过程。在这个过程中,冻结比特位$ {u_{\hat A}} $是译码端已知的固定值,而信息位则需要译码器通过迭代计算似然比$ L_1^N $来进行估计。译码器会利用先前已经译码并估计出的比特位信息$ \hat u_{\text{1}}^{{\text{i - 1}}} $,对当前正在译码的第i位进行似然比的计算,并据此作出译码判决。这一过程是逐步、迭代进行的。可以通过下式计算似然比:

$ L_N^{({{i}})}(y_1^N,\hat u_1^{i - 1}) \cong \frac{{W_N^{(i)}(y_1^N,\hat u_1^{i - 1}|0)}}{{W_N^{(i)}(y_1^N,\hat u_1^{i - 1}|1)}} 。$ (4)

式中:$ L_N^{({{i}})}(y_1^N,\hat u_1^{i - 1}) $为似然比值;$ W_N^{(i)}(y_1^N,\hat u_1^{i - 1}|0) $为发送0时第i子信道的转移概率;$ W_N^{(i)}(y_1^N,\hat u_1^{i - 1}|1) $为发送1时第i子信道的转移概率。

译码判决式为:

$ {\hat{u}}_{i}=\left\{\begin{aligned} &0,&{L}_{N}^{(i)}({y}_{1}^{N},{\hat{u}}_{1}^{i-1})\geqslant 1,\\ &1,& 其他 。\end{aligned}\right. $ (5)

式中:$ {\hat u_i} $为估计的比特位信息。

2 基于CNN-SENet的水声信道极化码译码模型 2.1 系统模型

系统模型如图1所示。该系统由发射单元、水声信道、接收单元3个部分构成。在发射单元,用户首先将待发送的信源信息$ {{{u}}_A} $进行极化码编码,生成编码$ x_1^N = \{ {x_1},{x_2},{x_3},...,{x_N}\} $。随后,这些编码码字经过BPSK调制转换成符号向量$ r_1^N = \{ {r_1},{r_2},{r_3},...,{r_N}\} $。在传输过程中,这些符号向量$ r_1^N $会历经3种具有代表性的水声信道环境,并且会叠加加性高斯白噪声(Additive White Gaussian Noise,AWGN),以此来模拟并仿真水下信道中的噪声干扰情况。之后在接收单元,接收到的信号$ y_1^N = \{ {y_1},{y_2},{y_3},...,{y_N}\} $首先经过软解调处理,进而得到以初始浮点数形式表示的信道LLR值$ L_1^N = \{ L_1^{},L_2^{},L_3^{},...,L_N^{}\} $。最后CNN-SENet译码器利用LLR值$ L_1^N $与冻结比特位信息$ {{{u}}_{\hat A}} $译码出发射单元发送的信息$ {\hat u_A} $

图 1 系统模型 Fig. 1 System model
2.2 水声信道模型

目前,在水声信道建模领域,多途传播模型被广泛采用,此模型依据射线声学理论搭建。通常,水声通信系统为:

$ y({\textit{z}}) = I({\textit{z}}) \cdot x({\textit{z}}) + n({\textit{z}}) 。$ (6)

式中:$ y({\textit{z}}) $为接收数据的Z变换;$ x({\textit{z}}) $为发送数据的Z变换;$ I({\textit{z}}) $为水声信道传输函数;$ n({\textit{z}}) $为加性高斯白噪声。

在相干时间范围内,水声信道可被视为可确定的线性时不变滤波器,或者是可确定的时空滤波器来加以处理[12]。由此,水声信道传输函数可表示为:

$ I({\textit{z}}) = \sum\limits_{i = p}^p {{A_i} \times {{\textit{z}}^{\left\lfloor {{{ - {\tau _i}} \mathord{\left/ {\vphantom {{ - {\tau _i}} T}} \right. } \mathrm{T}}} \right\rfloor }}}。$ (7)

式中:p为信道在符号持续时间内的多径扩展条数;$ {A_i} $$ {\tau _i} $分别为第i条本征声线的幅度和时延;T为采样周期。

在信道建模分析时,设定水平方向声速恒定,按深度对水平方向进行分层。信道传输函数可选用艾宇慧等[13]提出的3种典型水声信道传输函数,其仿真条件是通信带宽为5 kHz、采样率为10 kHz、每次传输的信号长度为2000、多途扩展为100 ms。

声速为常数的均匀介质信道(ISVG)、负声速梯度信道(NSVG)、正声速梯度信道(PSVG)分别为:

$ I({\textit{z}}) = 1 + 0.599\;971{{\textit{z}}^{ - 20}},$ (8)
$ { I({\textit{z}}) = 1 + 0.263\;112{{\textit{z}}^{ - 7}} + 0.151\;214{{\textit{z}}^{ - 39}} + 0.391\;599{{\textit{z}}^{ - 67}},} $ (9)
$ { I({\textit{z}}) = 0.734\;189 + {{\textit{z}}^{ - 13}} - 0.406\;511{{\textit{z}}^{ - 14}} - 0.295\;130{{\textit{z}}^{ - 55}}。} $ (10)
2.3 CNN-SENet译码器模型

CNN-SENet译码器模型的结构如图2所示,该神经网络由卷积、池化、全连接、SENet与激活函数组成。该神经网络为双通道输入,用于接收LLR信息与冻结比特位信息,通道一输入为LLR信息,通道二输入为冻结比特位信息。双通道输入数据在每次经过卷积操作被映射至高维特征空间后,都会先进行一次SENet通道注意力操作,以强化关键特征并抑制非关键特征。随后,通过执行池化操作来减小参数矩阵的规模,进而降低最终连接层所需的参数数量。在经过3次卷积、SENet以及池化处理后,再进行三次全连接与激活操作来降维和特征融合。最后,对数据进行Sigmoid函数处理,得到译码结果。

图 2 CNN-SENet译码器模型 Fig. 2 CNN-SENet decoder model

其中,SENet模块是J.Hu等[14]于2020年提出的一种通道注意力模块。该模块的核心设计理念在于其能够根据网络的损失函数动态地学习和调整特征权重。它能够识别并强化那些对译码结果具有显著效果的通道特征,同时削弱或忽略那些贡献较小甚至可能产生负面影响的通道特征,从而显著提升模型的译码性能。

SENet模块算法流程如图2右边扩展所示SENet模块会先对特征数据$ x $进行全局平均池化操作,把每一个输入特征都精简成单个数值,使模型的参数总量得以削减,对于通道c的全局平均池化公式表达为:

$ {\beta _c} = \frac{1}{{H \times W}}\sum\nolimits_{i = 1}^H {\sum\nolimits_{j = 1}^W {{x_{i,j,c}}} } 。$ (11)

式中:$ {\beta _c} $为通道的压缩特征,$ H \times W $为特征图的高和宽。

随后,该模块会对数据进行一系列的处理流程:先是进行全连接操作$ {F_1} $,接着利用Relu函数对$ {\beta _c} $激活,然后再次执行全连接$ {F_2} $。在完成这一系列处理之后,借助Sigmoid函数得到每个通道的激励权重$ {s_c} $,公式为:

$ {s_c} = \sigma ({F_2}(\delta ({F_1}({\beta _c})))) $ (12)

式中:$ {s_c} $为通道c的激励权重;$ \sigma $为Sigmoid激活函数;$ \delta $为Relu激活函数。

最终,把这些权重和原始输入特征相互对应相乘,进而生成加强了有用特征的特征图$ {P_{i,j,c}} $:

$ {P_{i,j,c}} = {s_c} \cdot {x_{i,j,c}} 。$ (13)

表1为本文在模型设计与实现过程中所使用的激活函数表达式。

表 1 激活函数 Tab.1 Activation functions

本文采用均方误差作为损失函数,其定义为:

$ L_{\mathrm{MSE}}=\frac{1}{{N}}\sum\limits_{i=0}^{{N}-1}(u_A-\hat{u}_A)^2 。$ (14)

式中:N为译码数量;$ {u_A} $为发送的信源信息;$ {\hat u_A} $为译码信息。

3 仿真结果与分析 3.1 CNN-SENet译码器参数设置

本节对CNN-SENet译码器进行参数确定。本文针对N=8(即码长为8)可变码率的极化码进行译码,对于CNN-SENet译码器模型参数定义,如表2所示。

表 2 CNN-SENet译码器模型参数 Tab.2 CNN-SENet decoder model parameters

从表可知CNN-SENet的输入为8位双通道,通道一为8位长LLR,通道二为冻结比特信息,输出为8位译码信息。统计误码率时,只统计信息比特位置的正误。在模型参数方面,CNN-SENet译码器模型使用adam优化器进行$ {2^{10}} $轮的训练,初始学习率为0.001。批次样本大小为64。

3.2 结果分析

为了评估CNN-SENet译码器在水声信道环境中的效能,对其进行仿真测试,并将测试结果与经典的传统SC译码算法进行对比分析。对比在(8,4)和(8,5)这2种常见的极化码码率下的性能表现。

数据集样本包含(8,4)和(8,5)全部码字情况,总共48个码字。在3种水声信道的条件下,将信噪比从−1 dB逐步增加到2.5 dB,间隔为0.5 dB,针对每个信噪比的取值,在相应的信道中分别生成256次数据,共$ 48 \times 256 \times 8 \times 3 = 294\;912 $个数据。在每种信道和每个信噪比下,随机选取20%的数据集样本作为测试集,而余下的部分则作为训练集,测试集用于计算BER。

图3所示为在ISVG、NSVG和PSVG信道条件下,各种码率的极化码译码器的仿真性能对比。通过仿真结果,可以得出以下结论:在3种信道下,信噪比为−1~2.5 dB时,极化码在(8,4)码率下,CNN-SENet译码器性能接近于SC译码;极化码在(8,5)码率下,采用CNN-SENet译码器相较于SC译码器,整体性能更优。

图 3 三种信道下的性能仿真图 Fig. 3 Performance simulation diagram of three channels

其中,对于码率为(8,4)的极化码,信噪比为−1~2.5 dB时,在PSVG与ISVG信道下,CNN-SENet译码器性能接近于SC译码;在NSVG信道下,CNN-SENet译码器性能略高于SC译码,当BER为0.1时,可以多提供大约0.75 dB的编码增益;对于码率为(8,5)的极化码,信噪比为−1~2.5 dB时,CNN-SENet译码器性能整体都优于SC译码:在ISVG与NSVG信道下,当BER为0.1时,可以多提供大约1dB的编码增益;在PSVG信道下可以多提供大约0.5 dB的编码增益。

4 结 语

本文提出一种基于CNN-SENet的译码器,该神经网络译码器可以译码任意码率的极化码,并在水声信道下进行仿真。仿真结果表明,在−1~2.5 dB信噪比范围,在3种信道下,对于(8,4)码率的极化码,CNN-SENet译码与SC译码性能相近;对于(8,5)码率的极化码,CNN-SENet译码性能整体高于SC译码,在BER为0.1时,平均可以多提供约0.8 dB的编码增益。通过本次系统建模与仿真分析,在一定程度上解决了冻结比特位得不到充分利用的问题,为基于深度学习的极化码译码方案提供了一种新的思路。

参考文献
[1]
翟玉爽, 冯海泓, 李记龙. 极化码在OFDM水声通信中的应用研究[J]. 声学技术, 2021, 40(1): 29-38.
ZHAI Y S, FENG H H, LI J L. Research on the application of polar code in OFDM underwater acoustic communication[J]. Acoustic Technology, 2021, 40(1): 29-38.
[2]
ARIKAN E. Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels[J]. IEEE Transactions on information Theory, 2009, 55(7): 3051-3073. DOI:10.1109/TIT.2009.2021379
[3]
3GPP. Multiplexing and Channel Coding: 3GPP 38.212 V. 15.1. 0 [S]. 2018.
[4]
ZHANG Y X, LIU A J, PAN X F, et al. A modified belief propagation polar decoder[J]. IEEE Communications Letters, 2014, 18(7): 1091-1094. DOI:10.1109/LCOMM.2014.2316365
[5]
邱开虎, 黄志亮, 张莜燕, 等. 3×3核矩阵极化码的BP译码算法[J]. 无线电通信技术, 2024, 50(1): 168-172.
QIU K H, HUANG Z L, ZHANG Y Y, et al. BP decoding algorithm for 3×3-core matrix polarization code[J]. Radio Communication Technology, 2024, 50(1): 168-172.
[6]
ZHOU L X, CHAN S, ZHANG M X, et al. A fast computing decoder for polar codes with a neural network[J]. ICT Express, 2023, 9(6): 1001-1006. DOI:10.1016/j.icte.2023.02.005
[7]
ZHU H F, CAO Z W, ZHAO Y P, et al. Learning to denoise and decode: a novel residual neural network decoder for polar codes[J]. IEEE Transactions on Vehicular Technology, 2020, 69(8): 8725-8738. DOI:10.1109/TVT.2020.3000345
[8]
FANG J, BI M, XIAO S, et al. Neural successive cancellation polar decoder with tanh-based modified LLR over FSO turbulence channel[J]. IEEE Photonics Journal, 2020, 12(6): 1−10.
[9]
CAMMERER S, GRUBER T, HOYDIS J, et al. Scaling deep learning-based decoding of Polar codes via partitioning[C]//Proceedings of GLOBECOM 2017-2017 IEEE Global Communications Conference. Piscataway: IEEE Press, 2017.
[10]
WANG X M, LI J, CHANG H, HE J L. Optimization design of polar-LDPC concatenated scheme based on deep learning[J]. Computers & Electrical Engineering, 2020, 84: 106636.
[11]
郭锐, 冉凡春. 基于卷积神经网络的极化码译码算法[J]. 电信科学, 2020, 36(6): 119-124.
GUO R, RAN F C. Polar code decoding algorithm based on convolutional neural network[J]. Telecommunications Science, 2020, 36(6): 119-124.
[12]
邢莉娟, 李卓, 张泽栋. 水声通信中极化码的应用研究[J]. 电子学报, 2022, 50(9): 2096-2101.
XING L J, LI Z, ZHANG Z D. Research on the application of polar codes in underwater acoustic communication[J]. Acta Electronica Sinica, 2022, 50(9): 2096-2101.
[13]
艾宇慧, 惠俊英, 高静. 水声信道相关均衡器仿真研究[J]. 声学学报, 1999, (6): 589−597.
AI Y H, HUI J Y, GAO J. Simulation study on acoustic channel related equalizer[J]. Journal of Acoustics, 1999, (6): 589−597
[14]
HU J, SHEN L, ALBANIE S, et al. Squeeze-and-excitation networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(8): 2011-2023. DOI:10.1109/TPAMI.2019.2913372