1.一种基于因子图的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,若达到,则输出当前判决结果。
2.如权利要求1所述的基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,S2包括以下步骤:
S201:中间变量初始化;其中,所述中间变量初始化为:将联合变量节点JV传递给功能节点F的消息初始化为以及联合变量节点JV传递给校验节点C的消息初始化为m表示二进制域比特到符号映射后的符号,b表示当前比特的取值:
S202:信道信息初始化;其中,根据接收信号y和信道噪声估计值N0,计算各个资源块承载的全部用户可能发送码字的联合条件概率φn。
3.如权利要求2所述的基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,在LDPC校验节点更新过程中,利用计算在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算
在LDPC到SCMA消息的传递过程中,利用计算在SCMA到LDPC消息的传递过程中,利用计算
在LDPC变量节点更新过程中,利用和计算在SCMA变量节点更新过程中,利用和计算
其中,表示LDPC到SCMA传递的消息,表示SCMA到LDPC传递的消息,表示LDPC变量节点到LDPC校验节点的消息,表示SCMA变量节点到SCMA功能节点的消息。
4.如权利要求3所述的基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,在LDPC到SCMA消息的传递过程中,利用计算的算式为:
其中,k=1,2,…,KL/2,m=0,1,…,M-1,b∈{0,1},α为归一化因子,且
在SCMA到LDPC消息的传递过程中,利用计算的算式为:
其中,
m=0,1,…,M-1,b∈{0,1},表示用户占用的资源块数。
5.如权利要求3所述的基于因子图的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个功能节点。
6.如权利要求3所述的基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,在LDPC校验节点更新过程中,利用计算的算式为:
其中,l=1,2,…,KL/2,b∈{0,1},JVl,i和JVl,j为与第l个校验节点Cl相连接的第i个和第j个变量节点;
在SCMA功能节点更新过程中,利用和相应资源块承载的全部用户可能发送码字的联合条件概率φn计算的算式:
其中,n=1,2,…,NL/2,表示资源块上承载的用户数。
7.如权利要求6所述的基于因子图的SCMA和LDPC联合检测译码算法,其特征在于,计算资源块承载的全部用户可能发送码字的联合条件概率φn的算式为:
其中,n=1,2,…,NL/2,表示资源块上承载的用户数,为SCMA编码后的码字,在接收端第n个资源块上接收到的信号为:其中为噪声项,hkn为第k个用户到第n个资源块对应的信道增益。
8.一种基于因子图的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,若达到,则输出当前判决结果。