SCMA系统的DNN解码方法及解码通信设备
技术领域
本发明涉及无线通信领域,具体为一种SCMA系统的DNN解码方法及解码通信设备。
背景技术
传统SCMA(Sparse Code Multiple Access,SCMA,稀疏码多址接入)解码器采用消息传递算法(Message Passing Algorithm,MPA),结合先验概率,利用因子图在用户节点和资源节点之间迭代更新后验概率消息,以尽可能准确地解析原多用户发送的码字。相比于最大似然算法(Maximum Likelihood,ML)检测,MPA解码器的算法复杂度虽有所降低,但硬件实现依然较为困难,其复杂度随用户数量成指数级增长,从而导致解码效率低,不能满足未来5G系统的部署需求。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于深度神经网络(Deep NeuralNetwork,DNN)的SCMA信号解码方法及解码通信设备,其可以大幅降低解码器的复杂度,同时其便于操作,由此提高解码效率和性能。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:
一方面,提出一种SCMA系统的DNN解码方法,其包括如下步骤:
S1、搭建用于产生SCMA信号的SCMA系统,以及在将SCMA信号发送装置的源码字与SCMA信号接收装置接收到的SCMA信号数据进行关联后获得训练样本数据集;
S2、建立基于深度神经网络的SCMA解码器模型;
S3、根据所述训练样本数据集训练上述SCMA解码器模型;
以及S4、将训练后的SCMA解码器模型加载至解码平台,并通过所述SCMA解码器模型对SCMA信号进行解码。
优选的,所述步骤S1包括:
S1.1、搭建用于产生SCMA信号的SCMA系统,以及搭建SCMA发送机和SCMA接收机,记录并存储SCMA发送机的源码字,并通过SCMA发送机将所述SCMA系统产生的SCMA信号发送至物理环境中;
S1.2、SCMA接收机接收物理环境中的SCMA信号,且记录并存储SCMA信号数据;
S1.3、将SCMA发送机的源码字与SCMA接收机存储的SCMA信号数据进行关联,记录并存储关联结果数据;
S1.4、重复步骤S1.1-1.3,记录并存储每次重复得到的关联结果数据,以此得到不同信噪比条件下的信号数据集;
以及S1.5、整理不同信噪比条件下的信号数据集中的源码字以及与其关联的SCMA信号数据,由此得到所述训练数据集。
优选的,所述步骤S2包括:
S2.1、建立解码器的输入层,且所述输入层包括至少一个用于接收SCMA信号数据的资源块;
S2.2、建立解码器的隐藏层,并通过下述公式(1)完成所述隐藏层的数据输出,
其中,yl-1是上一层的数据输出,和bl分别是本层的权重和偏置;
S2.3、建立解码器的输出层,且所述输出层用于输出包括至少一个用户的码字的解码结果;每个用户对应m=log2(M)个输出层节点,分别对应解码出来的m个比特向量,所述输出层的节点总数是mJ,其中M是每个用户的码字个数,J是用户数;
S2.4、按照下述公式(2)计算至少一个输出层节点的输出概率σ(x):
σ(x)=(1+e-x)-1 (2);
以及按照下述公式(3)计算预测值与真实值之间的不一致程度:
其中,y=(y1,…,y2K)T是上述训练数据集中从物理环境中收集的SCMA信号数据;b=(b1,…,bmJ)T是与之关联的源码字;Wd,bd分别代表整个解码器的权重和偏置集合;d(·;Wd,bd)表示解码器的最后输出值,其值是解码出来的比特向量此处的也即公式(2)计算出的输出节点的输出概率σ(x),[0,1]为取值范围,πi[·]表示取向量的第i个元素的值。
优选的,所述步骤S2.1中,每个资源块设有两个输入节点,分别对应复数信号的实部和虚部。
优选的,步骤S3中采用随机梯度下降法对上述SCMA解码器模型进行训练,使得交叉熵损失函数满足下述公式(4)所述条件;
优选的,步骤S3中还包括:
S3.1变量Xavier初始化,使得每一层输出的初始状态yl均需要满足以下公式(5)所述条件:
Var[yl]=Nl,i·Var[Wl]·Var[yl-1] (5);
其中,Var[·]表示取方差;yl-1是第l-1层输出的初始状态;Wl是第l层的权重;Nl,i是第l层输入节点总数;
S3.2、将每一层的数据在完成线性输出前进行批量归一化;
S3.3按照步骤S3.1和3.2反复训练SCMA解码器模型,且在训练完成后保存SCMA解码器模型。
优选的,步骤S3.1中,其中,Nl,o是第l层输出节点总数,且对于反向梯度传递而言,要求Nl,o·Var[Wl]=1。
优选的,所述步骤S3.2包括:
S3.2.1、对于每个输出节点k∈{1,…,Nl,0},分别按照公式(6)、(7)计算均值μβ,k和方差σβ,k 2;
其中,Zl,k (i)表示的向量中的第k个元素,Nb表示完整训练集被分成Nb个批次,i表示第i个批次;
S3.2.2、按照公式(8)进行标准化运算:
其中,
S3.2.3、按照公式(9)进行缩放与转换运算,以获得批量归一化结果al,k i:
其中,γl,k i以及βl,k i是在训练期间与原权重和偏置一起学习得到的缩放转换系数,最终将al,k i代入公式(1)中进行非线性计算。
优选的,所述步骤S4包括:
S4.1、将经步骤S3保存的SCMA解码器模型导出并优化,再将其加载至开发板平台;
S4.2、接收SCMA发送机发送的信号,并将收到的SCMA信号转至已加载的SCMA解码器模型进行解码处理,编译运行后实时在线解码输出。
另一方面,还提供一种用于实现上述解码方法的解码通信设备,其包括:
训练数据生成模块,其用于将源码字与SCMA信号数据进行关联,且根据关联结果数据得到不同信噪比条件下的信号数据集,由此得到训练数据集;
模型生成模块,其用于建立基于深度神经网络的SCMA解码器模型;
模型训练成模块,其用于对上述SCMA解码器模型进行训练,且在训练完成后保存SCMA解码器模型;
开发板平台,其用于加载优化后的解码器模型文件,且将接收到的SCMA信号加载至所述解码器模型文件中进行实时在线解码处理,并输出处理结果。
(三)有益效果
与现有技术相比,本发明采用软件无线电平台搭建SCMA系统,同时构建SCMA解码器模型,并将所述SCMA解码器模型部署至AIR-T等开发板上,其操作过程简单、快捷,尤其适用于过载的非正交多址接入无线通信系统,由此可在不增加SCMA解码器复杂度的前提下提高SCMA解码准确率,相对于传统基于MPA算法的SCMA解码器而言,本发明中基于DNN的SCMA解码器在计算复杂度与解码误码率方面性能都有所提升。
附图说明
图1为实施例一中SCMA解码器模型的网络结构图;
图2为实施例二中解码设备的结构示意图;
图2a为实施例二中模型生成模块的结构示意图;
图2b为实施例二中模型训练成模块的结构示意图;
图2c为实施例二中开发板平台的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本实施例提供了一种SCMA系统的DNN解码方法,其包括如下步骤:
S1、搭建用于产生SCMA信号的SCMA系统,以及在将SCMA信号发送装置的源码字与SCMA信号接收装置接收到的SCMA信号数据进行关联后获得训练样本数据集;
具体的,所述步骤S1包括如下步骤:
S1.1、利用软件无线电结构平台(如GNU Radio等)搭建用于产生SCMA信号的SCMA系统,以及利用软件无线电设备(包括USRP B210)等搭建SCMA发送机和SCMA接收机,设置相关参数,记录并存储SCMA发送机的源码字,并通过SCMA发送机将将所述SCMA系统产生的SCMA信号发送至物理环境中;
所述设置相关参数包括:设置USRP B210的UHD sink模块参数,如将中心频率设为500MHZ、Gain Value设为50、Gain Type设为absolute、Antenna设置为TX/RX、采样率设为100K、其他参数均为默认参数等;设置USRP source模块参数(参见USRP B210的UHD sink模块参数设置方式);以及设置其他一些模块参数,包括发送的码字、包头格式、包头校验以及载波分配参数(包含FFT长度、载波、前导码载波、前导码字、同步符号、Cyclic Prefixer长度、编译运行中的一项或几项);上述参数的具体设置方式根据实际设计需要而定,在此不做具体限定;
S1.2、SCMA接收机接收物理环境中的SCMA信号,且记录并存储SCMA信号数据;
S1.3、将SCMA发送机的源码字与SCMA接收机存储的SCMA信号数据进行关联,记录并存储关联结果数据;
S1.4、重复步骤S1.1-1.3,且每次重复时对应更改Gain Value的值,记录并存储每次重复得到的关联结果数据,以此得到不同信噪比条件下的信号数据集;由此,在收集数据的过程中,通过更改发送机和接收机的增益,可使得本发明的SCMA解码器适应不同信噪比的信号,具有更全的泛化能力,同时避免解码器出现过拟合和欠拟合;
S1.5、整理不同信噪比条件下的信号数据集中的源码字以及与其关联的SCMA信号数据,由此得到训练数据集,且将所述训练数据集加载并存储至Numpy数组中;
S2、建立基于深度神经网络(Deep Neural Network,DNN)的SCMA解码器模型(如图1所示);其具体包括如下步骤:
S2.1、建立解码器的输入层,且所述输入层包括至少一个用于接收SCMA信号数据的资源块;考虑到接收到的信号是幅度相位(IQ)组成的复数信号,因此在所述输入层中,每个资源块设有两个输入节点,分别对应复数信号的实部和虚部,如图1所示,其中输入节点Ri和Ii分别对应SCMA信号的实部和虚部,如此,所述输入层的节点总数是2*K个(其中K是资源块个数);
S2.2、建立解码器的隐藏层,用于进行SCMA信号特征学习与提取,图1中iNj代表第i隐藏层的第j个节点;
进一步的,通过下述公式(1)(也即Tanh函数)完成所述隐藏层的数据输出,
其中,yl-1是上一层的数据输出,和bl分别是本层的权重和偏置;需要说明的是,所述隐藏层可以有若干个,若“本层”不是第一个隐藏层,则“上一层”为该隐藏层的上一隐藏层,如图l所示,若“本层”为3N1这一隐藏层,则“上一层”为2N1这一隐藏层,以此类推;若“本层”是第一个隐藏层,则“上一层”为输入层,如图1所示,若“本层”为1N1这一隐藏层,则“上一层”为输入层,以此类推;
S2.3、建立解码器的输出层,且所述输出层用于输出包括至少一个用户的码字的解码结果;其中,每个用户对应m=log2(M)(其中M是每个用户的码字个数)个输出层节点,分别对应解码出来的m个比特向量,由此,所述输出层的节点总数是mJ(其中J是用户数);
S2.4、按照下述公式(2)(也即sigmoid函数)计算至少一个输出层节点的输出概率σ(x):
σ(x)=(1+e-x)-1 (2);
以及按照下述公式(3)计算预测值与真实值之间的不一致程度:
其中,y=(y1,…,y2K)T是上述训练数据集中从物理环境中收集的SCMA信号数据;b=(b1,…,bmJ)T是与之关联的源码字;Wd,bd分别代表整个解码器的权重和偏置集合;d(·;Wd,bd)表示解码器的最后输出值,其值是解码出来的比特向量此处的也即公式(2)计算出的输出节点的输出概率σ(x),[0,1]为取值范围,πi[·]表示取向量的第i个元素的值;
整体上,如图1所示,本实施例中的SCMA解码器模型为一种基于DNN的模型,包括1个输入层,6个隐藏层以及1个输出层,其中,输入层、隐藏层以及输出层的建立方式参照步骤S2.1-2.4,在此不再赘述;
S3、根据所述训练样本数据集训练上述SCMA解码器模型
本步骤中采用常用的随机梯度下降法对上述SCMA解码器模型进行训练,以搜寻逼近各隐藏层的最优权重和偏置,使得交叉熵损失函数满足下述公式(4)所述条件;
优选的,本步骤中使用ADAM算法进行SCMA解码器模型训练,由此便于在Tensorflow等人工智能学习系统中直接使用;
同时,训练数据集被分成若干批数据集送入上述模型中进行训练,记每一层的线性输出则为完整训练数据集在该层的线性输出集合,其中,Nb为批数据集大小;
进一步的,为了避免训练过程中可能出现梯度消失和梯度爆炸问题,本步骤中还引入变量Xavier初始化方法和变量批量归一化方法;具体的,其包括如下步骤:
S3.1变量Xavier初始化,使得每一层(可以是输入层、隐藏层以及输出层中的任意一层)输出的初始状态yl均需要满足以下公式(5)所述条件:
Var[yl]=Nl,i·Var[Wl]·Var[yl-1] (5);
其中,Var[·]表示取方差;yl-1是第l-1层输出的初始状态;Wl是第l层的权重;Nl,i是第l层输入节点总数,且对于前向梯度传递而言,要求Nl,i·Var[Wl]=1,对于反向梯度传递来说,要求Nl,o·Var[Wl]=1,Nl,o是第l层输出节点总数;优选的,为避免上述两个条件互相抵触,本实施例选取对权重进行随机初始化;
S3.2、变量批量归一化:
进一步的,每一层的数据在完成线性输出前均采取以下步骤进行批量归一化:
S3.2.1、对于每个输出节点k∈{1,…,Nl,0},分别按照公式(6)、(7)计算均值μβ,k和方差σβ,k 2;
其中,Zl,k (i)表示的向量中的第k个元素,Nb表示完整训练集被分成Nb个批次,i表示第i个批次;
S3.2.2、按照公式(8)进行标准化运算:
其中,ε为常数(为一可训练的常数,其取值由训练结果决定);
S3.2.3、按照公式(9)进行缩放与转换运算,以获得批量归一化结果al,k i:
其中,γl,k i以及βl,k i是在训练期间与原权重和偏置一起学习得到的缩放转换系数,最终将al,k i代入公式(1)中进行非线性计算;
S3.3按照步骤S3.1和3.2反复训练SCMA解码器模型,且在训练完成后保存SCMA解码器模型;
S4、将训练后的SCMA解码器模型加载至解码平台,并通过所述SCMA解码器模型对SCMA信号进行解码;其具体包括:
S4.1、将经步骤S3保存的SCMA解码器模型导出成UFF文件格式(universal fileformat),然后利用TensorRT等AI推理平台将UFF文件格式的SCMA解码器模型优化成.plan文件,再由AIR-T等开发板平台提供的TensorRT GRC模块等导入模块导入,再设置TensorRTGRC模块等导入模块的参数,以将经过步骤S3训练的SCMA解码器模型加载至AIR-T等开发板平台;
S4.2、利用AIR-T等开发板平台提供的无线电接收模块接收SCMA发送机发送的信号,将收到的SCMA信号接入到TensorRT GRC模块等导入模块,进而通过导入模块转至已加载的SCMA解码器模型进行解码处理,编译运行后实时在线解码输出。
实施例二:
本实施例还提供了一种用于实现实施例一中解码方法的SCMA解码设备,如图2所示,其包括:
信号发送机1,其用于将SCMA系统中产生的SCMA信号发送至物理环境中;
信号接收机2,其用于接收物理环境中的SCMA信号,且记录并存储SCMA信号数据;
训练数据生成模块3,其用于将信号发送机1的源码字与SCMA信号数据进行关联,记录并存储关联结果数据,且根据关联结果数据得到不同信噪比条件下的信号数据集,由此得到训练数据集,且将所述训练数据集加载并存储至Numpy数组中;
模型生成模块4,其用于建立基于深度神经网络的SCMA解码器模型;具体的,如图2a所示,其包括:输入层建立模块41,其用于接收SCMA信号数据,且具有至少一个资源块;隐藏层建立模块42,其用于进行SCMA信号特征学习与提取,且根据公式(1)完成所述隐藏层的数据输出;输出层建立模块43,其用于根据公式(2)计算至少一个输出层节点的输出概率,且根据所述公式(3)计算预测值与真实值之间的不一致程度,最后输出包括至少一个用户的码字的解码结果;
模型训练成模块5,其用于采用常用的随机梯度下降法对上述SCMA解码器模型进行训练,以搜寻逼近各隐藏层的最优权重和偏置,使得交叉熵损失函数满足公式(4)所述条件,且在训练完成后保存SCMA解码器模型;具体的,如图2b所示,所述模型训练成模块5还包括:变量初始化模块51,其用于使得每一层输出的初始状态yl均需要满足公式(5)所述条件;以及变量归一化模块52,其用于将每一层的数据在非线性激活之前进行批量归一化;
模型文件优化模块6,其用于将SCMA解码器模型导出成UFF文件格式,再利用TensorRT等AI推理平台将UFF文件格式的SCMA解码器模型优化成.plan文件;
开发板平台(如AIR-T等)7,如图2c所示,其包括导入模块71(如TensorRT GRC模块等)以及无线电接收模块72,用于加载优化后的解码器模型文件,且将接收到的SCMA信号加载至所述解码器模型文件中进行实时在线解码处理,并输出处理结果。
实施例三:
本实施例提供一种无线通信设备,其包括实施例三中所述的解码设备。
传统的SCMA解码方法多采用MPA(Message Pass Algorithm)算法,其复杂度为O(Xdf),其中,df为用户过载度,而本发明中的解码器是一种基于DNN的解码器,其复杂度为(见表1中的复杂度对比),其中NL为隐藏层层数,,NHN为隐藏层节点数。由计算过程可知,基于传统MPA算法的SCMA解码器的复杂度会随着用户数的增加呈指数级增长,而基于DNN的SCMA解码器的复杂度增长缓慢。
表1复杂度对比
例如,对于6个用户共用4个资源块的SCMA特定场景来说,假设1次乘法操作相当于10次加法操作的时间,1次对数或指数操作相当于20次加法操作时间。表2给出在MPA算法迭代5次且信噪比和误码率相同的情况下基于MPA算法的SCMA解码器以及本发明基于DNN的SCMA解码器的复杂度对比情况。由些可见,在这个特定例子中,本发明的基于DNN的SCMA解码器的复杂度较之MPA算法,性能提升了接近50%。
表2复杂度对比举例
综上所述,本发明提供了一种基于深度神经网络的SCMA解码器,其采用软件无线电平台搭建SCMA系统,同时构建SCMA解码器模型,并将所述SCMA解码器模型部署至AIR-T等开发板上,其操作过程简单、快捷,尤其其适用于过载的非正交多址接入无线通信系统,由此可在不增加SCMA解码器复杂度的前提下提高SCMA解码准确率,相对于传统基于MPA算法的SCMA解码器而言,本发明中基于DNN的SCMA解码器在计算复杂度与解码误码率方面性能都有所提升。
需要说明的是,实施例一至三中的技术特征可进行任意组合,且组合而成的技术方案均属于本发明的保护范围。并且,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。