本发明涉及无线通信技术领域,特别涉及一种基于因子图的SCMA和LDPC联合检测译码算法及装置。
背景技术:
SCMA(Sparse Code Multiple Access)技术是一种面向5G大容量,海量连接,超低时延等需求而设计的一种备选多址技术。在发送端,它将编码比特直接映射为复数域多维码字,不同用户的码字在相同的资源块上以稀疏的扩频方式非正交叠加;接收端则利用稀疏性进行低复杂度的多用户联合检测。相比OFDMA技术,SCMA以非正交叠加的方式,实现在同等资源数量条件下,同时服务更多用户,从而有效提升系统整体容量。
LDPC码是一种线性分组信道纠错编码,被证明能够逼近香农信道容限,由于在DVB、IEEE 802.11g等通信标准的成功应用以及所展现出的良好纠错性能,LDPC目前也成为未来5G标准的重要备选纠错编码。
目前,现有运用SCMA检测和LDPC译码进行联合检测译码的方案主要有两种,其中一种是SCMA检测与LDPC译码独立进行,没有LDPC译码到SCMA检测的信息反馈过程,这种方案优点在于结构简单,收敛速度快,但是缺点在于没有充分利用LDPC的译码信息,使得误码率性能不理想。另外一种是SCMA检测和LDPC译码首先独立进行内部迭代,在完成若干次内迭代之后,通过外部迭代将LDPC译码信息反馈给SCMA检测器,这种方案能够有效提升误码率性能,但是这种方案存在SCMA检测和LDPC译码之间信息传递效率低,收敛速度慢,复杂度高等缺点。
另一方面,SCMA的检测性能和LDPC的译码性能都很大程度上依赖于检测算法和译码算法的优劣。MPA(Message Passing Algorithm)迭代译码算法被证明是SCMA在MAP准则下最优的译码器,能够用可实现的硬件开销达到令人满意的译码性能。BP(Belief Propagation)迭代译码算法是目前已知的性能最优的LDPC码译码算法。但是即使使用这两种目前已知最优的检测和译码算法,SCMA传输系统的误码率性能距离理想的单用户传输性能仍然有很大的差距,造成了SCMA技术虽然提供更多接入用户,但同时也带来了较大的误码率,这样的性能损失成为其在未来5G系统中应用的瓶颈。
技术实现要素:
本发明的目的在于:解决现有技术中运用SCMA检测和LDPC译码进行联合检测译码的方案,SCMA传输系统的误码率性能距离理想的单用户传输性能仍然有很大的差距的问题。
为了实现上述发明目的,本发明提供一种基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,包括以下步骤:
S1:参数设定;根据码本,设定资源块数N,承载用户数K,调制阶数M,修剪饱和处理门限[Dmin,Dmax],最大迭代次数Imax,LDPC码长L;
S2:联合迭代译码;其中,每一次迭代,需完成LDPC校验节点更新和SCMA功能节点更新,并在LDPC校验节点更新后,进行LDPC到SCMA消息的传递,完成SCMA变量节点更新,以及在SCMA功能节点更新后,进行SCMA到LDPC消息的传递,完成LDPC变量节点更新;
S3:每完成一次迭代,则判断当前判决结果是否满足LDPC校验矩阵,若满足,则跳出迭代过程,输出当前判决结果,否则继续迭代,并在迭代前,判断迭代次数是否达到最大迭代次数Imax,若达到,则输出当前判决结果。
根据一种具体的实施方式,S2包括以下步骤:
S201:中间变量初始化;其中,所述中间变量初始化为:将联合变量节点JV传递给功能节点F的消息初始化为以及联合变量节点JV传递给校验节点C的消息初始化为m表示二进制域比特到符号映射后的符号,b表示当前比特的取值:
S202:信道信息初始化;其中,根据接收信号y和信道噪声估计值N0,计算各个资源块承载的全部用户可能发送码字的联合条件概率φn。
根据一种具体的实施方式,在LDPC校验节点更新过程中,利用计算在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算
在LDPC到SCMA消息的传递过程中,利用计算在SCMA到LDPC消息的传递过程中,利用计算
在LDPC变量节点更新过程中,利用和计算在SCMA变量节点更新过程中,利用和计算
其中,表示LDPC到SCMA传递的消息,表示SCMA到LDPC传递的消息,表示LDPC变量节点到LDPC校验节点的消息,表示SCMA变量节点到SCMA功能节点的消息。
根据一种具体的实施方式,在LDPC到SCMA消息的传递过程中,利用计算的算式为:
其中,α为归一化因子,且
在SCMA到LDPC消息的传递过程中,利用计算的算式为:
其中,表示用户占用的资源块数。
根据一种具体的实施方式,在LDPC变量节点更新过程中,利用和计算的算式为:
其中,k=1,2,…,KL/2,b∈{0,1},α为归一化因子,且Ck,i和Ck,j为与变量节点JVk相连的第i个和第j个校验节点;
在SCMA变量节点更新过程中,利用和计算的算式为:
其中,k=1,2,…,KL/2,m=0,1,…,M-1,Fk,i和Fk,j为与变量节点JVk相连的第i个和第j个功能节点。
根据一种具体的实施方式,在LDPC校验节点更新过程中,利用计算的算式为:
其中,l=1,2,…,KL/2,b∈{0,1},JVl,i和JVl,j为与第l个校验节点Cl相连接的第i个和第j个变量节点;
在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算的算式:
其中,n=1,2,…,NL/2,表示资源块上承载的用户数。
根据一种具体的实施方式,计算资源块承载的全部用户可能发送码字的联合条件概率φn的算式为:
其中,n=1,2,…,NL/2,表示资源块上承载的用户数,为SCMA编码后的码字,在接收端第n个资源块上接收到的信号为:其中为噪声项,hkn为第k个用户到第n个资源块对应的信道增益。
基于同一发明构思,本发明还提供一种基于因子图的SCMA和LDPC联合检测译码装置,其包括参数设定模块、初始化模块、联合变量节点更新模块、功能节点更新模块、校验节点更新模块和判决结果输出模块;其中,
所述参数设定模块,用于根据码本,设定资源块数N,承载用户数K,调制阶数M,修剪饱和处理门限[Dmin,Dmax],最大迭代次数Imax,LDPC码长L;
所述初始化模块,用于根据接收信号y和信道噪声估计值N0,计算各个资源块承载的全部用户可能发送码字的联合条件概率φn,以及将联合变量节点JV传递给功能节点F的消息初始化为和将联合变量节点JV传递给校验节点C的消息初始化为
所述联合变量节点,用于完成每次迭代过程中的LDPC到SCMA和SCMA到LDPC消息的传递以及SCMA变量节点与LDPC变量节点的更新;
所述功能节点更新模块,用于完成每次迭代过程中SCMA功能节点的更新;
更新模块,用于完成每次迭代过程中LDPC校验节点的更新;
所述判决结果输出模块,用于在每完成一次迭代后,判断当前判决结果是否满足LDPC校验矩阵,若满足,则跳出迭代过程,输出当前判决结果,否则继续迭代,并在迭代前,判断迭代次数是否达到最大迭代次数Imax,若达到,则输出当前判决结果。
与现有技术相比,本发明的有益效果:本发明利用LDPC的译码信息辅助SCMA多用户检测,并将SCMA检测迭代过程与LDPC译码的迭代过程在因子图上进行联合,得到SCMA检测和LDPC译码的联合因子图,从而在每一次迭代都进行SCMA检测和LDPC译码的信息融合,而且从比特能量效率来看,本发明能够逼近理想的单用户传输性能,从平均迭代次数上来看,本发明大大低于外迭代方案,且与传统的无反馈方案相当,收敛速度快,不会带来明显的额外的检测和译码复杂度,能够更好的满足未来5G系统的性能需求。
附图说明:
图1是本发明方法的流程示意图;
图2是本发明装置的结构示意图。
具体实施方式
下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
本发明利用N个资源块(例如OFDMA的时频资源块),承载K个接入用户,过载因子为λ=K/N。每个用户的数据被映射到N个资源块上,达到N倍扩频的效果,且有N<K稀疏特性,从而显著降低多用户联合检测的复杂度。SCMA编码可以表示为其中即为SCMA编码后的码字。在接收端第n个资源块上接收到的信号为,其中为噪声项,hkn为第k个用户到第n个资源块对应的信道增益。
如图1所示的本发明方法的流程示意图;其中,本发明基于因子图的SCMA和LDPC联合检测译码算法包括以下步骤:
S1:参数设定;根据码本,设定资源块数N,承载用户数K,调制阶数M,修剪饱和处理门限[Dmin,Dmax],最大迭代次数Imax,LDPC码长L。
具体的,比如在一个规则码本下,利用4个资源块承载6个用户,调制阶数为4,编码器采用码率为1/2,码长672的LDPC码,接收端LDPC译码器采用BP译码的SCMA系统模型,在该规则码本下每个资源块承载3个用户,而每个用户占用2个资源块,因此,参数设定N=4,K=6,M=4,Dmin=-15,Dmax=0,Imax=30,L=672,其中,每个资源块上承载的用户数每个用户占用的资源块数另外在非规则码本下,每个资源块承载的用户可能不同,本发明同样适用。
S2:联合迭代译码;其中,每一次迭代,需完成LDPC校验节点更新和SCMA功能节点更新,并在LDPC校验节点更新后,进行LDPC到SCMA消息的传递,完成SCMA变量节点更新,以及在SCMA功能节点更新后,进行SCMA到LDPC消息的传递,完成LDPC变量节点更新。
S3:每完成一次迭代,则判断当前判决结果是否满足LDPC校验矩阵,若满足,则跳出迭代过程,输出当前判决结果,否则继续迭代,并在迭代前,判断迭代次数是否达到最大迭代次数Imax,若达到,则输出当前判决结果。
在本发明基于因子图的SCMA和LDPC联合检测译码算法中,利用LDPC的译码信息辅助SCMA多用户检测,并将SCMA检测迭代过程与LDPC译码的迭代过程在因子图上进行联合,得到SCMA检测和LDPC译码的联合因子图,从而在每一次迭代都进行SCMA检测和LDPC译码的信息融合。
具体的,S2包括以下步骤:
S201:中间变量初始化;其中,中间变量初始化为:将联合变量节点JV传递给功能节点F的消息初始化为以及联合变量节点JV传递给校验节点C的消息初始化为m表示二进制域比特到符号映射后的符号,b表示当前比特的取值。
S202:信道信息初始化;其中,根据接收信号y和信道噪声估计值N0,计算各个资源块承载的全部用户可能发送码字的联合条件概率φn。
并且,在LDPC到SCMA消息的传递过程中,利用计算在SCMA到LDPC消息的传递过程中,利用计算
在LDPC变量节点更新过程中,利用和计算在SCMA变量节点更新过程中,利用和计算
在LDPC校验节点更新过程中,利用计算在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算
其中,表示LDPC到SCMA传递的消息,表示SCMA到LDPC传递的消息,表示LDPC变量节点到LDPC校验节点的消息,表示SCMA变量节点到SCMA功能节点的消息。
在S1中参数设定完成后,进行S2步骤的迭代,其中,i,j均为中间变量。
在LDPC到SCMA消息的传递过程中,利用计算的算式为:
其中,α为归一化因子,且
在SCMA到LDPC消息的传递过程中,利用计算的算式为:
其中,
在LDPC变量节点更新过程中,利用和计算的算式为:
其中,k=1,2,…,KL/2,b∈{0,1},α为归一化因子,且Ck,i为与变量节点JVk相连的校验节点;
在SCMA变量节点更新过程中,利用和计算的算式为:
其中,k=1,2,…,KL/2,m=0,1,…,M-1,Fk,i和Fk,j为与变量节点JVk相连的第i个和第j个功能节点。
在LDPC校验节点更新过程中,利用计算的算式为:
其中,l=1,2,…,KL/2,b∈{0,1},JVl,i和JVl,j为与第l个校验节点Cl相连接的第i个和第j个变量节点;
在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算的算式:
其中,n=1,2,…,NL/2,
在S202中,计算资源块承载的全部用户可能发送码字的联合条件概率φn的算式为:
其中,n=1,2,…,NL/2,为SCMA编码后的码字,在接收端第n个资源块上接收到的信号为,其中为噪声项,hkn为第k个用户到第n个资源块对应的信道增益。
结合图2所示的本发明装置的结构示意图;其中,基于因子图的SCMA和LDPC联合检测译码装置包括参数设定模块、初始化模块、联合变量节点更新模块、功能节点更新模块、校验节点更新模块和判决结果输出模块。
其中,参数设定模块,用于根据码本,设定资源块数N,承载用户数K,调制阶数M,修剪饱和处理门限[Dmin,Dmax],最大迭代次数Imax,LDPC码长L。
初始化模块,用于根据接收信号y和信道噪声估计值N0,计算各个资源块承载的全部用户可能发送码字的联合条件概率φn,以及将联合变量节点JV传递给功能节点F的消息初始化为和将联合变量节点JV传递给校验节点C的消息初始化为
联合变量节点,用于完成每次迭代过程中的LDPC到SCMA和SCMA到LDPC消息的传递以及SCMA变量节点与LDPC变量节点的更新。
功能节点更新模块,用于完成每次迭代过程中SCMA功能节点的更新。校验节点更新模块,用于完成每次迭代过程中LDPC校验节点的更新。
判决结果输出模块,用于在每完成一次迭代后,判断当前判决结果是否满足LDPC校验矩阵,若满足,则跳出迭代过程,输出当前判决结果,否则继续迭代,并在迭代前,判断迭代次数是否达到最大迭代次数Imax,若达到,则输出当前判决结果。
本发明装置用于实施本发明方法,其具体工作方式参考本发明方法,此处不再赘述。
上面结合附图对本发明的具体实施方式进行了详细说明,但本发明并不限制于上述实施方式,在不脱离本申请的权利要求的精神和范围情况下,本领域的技术人员可以作出各种修改或改型。