留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于因子图的SCMA和LDPC联合检测和译码

韩凯宁 张珍兵 胡剑浩 陈杰男

韩凯宁, 张珍兵, 胡剑浩, 陈杰男. 基于因子图的SCMA和LDPC联合检测和译码[J]. 电子科技大学学报, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
引用本文: 韩凯宁, 张珍兵, 胡剑浩, 陈杰男. 基于因子图的SCMA和LDPC联合检测和译码[J]. 电子科技大学学报, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
HAN Kai-ning, ZHANG Zhen-bing, HU Jian-hao, CHEN Jie-nan. A Factor Graph Based Joint Detection and Decoding Scheme for LDPC Coded SCMA System[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
Citation: HAN Kai-ning, ZHANG Zhen-bing, HU Jian-hao, CHEN Jie-nan. A Factor Graph Based Joint Detection and Decoding Scheme for LDPC Coded SCMA System[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008

基于因子图的SCMA和LDPC联合检测和译码

doi: 10.3969/j.issn.1001-0548.2017.05.008
详细信息
    作者简介:

    韩凯宁(1991-), 男, 博士生, 主要从事通信信号处理及高效VLSI实现方面的研究

  • 中图分类号: TN929.5

A Factor Graph Based Joint Detection and Decoding Scheme for LDPC Coded SCMA System

图(6)
计量
  • 文章访问数:  4136
  • HTML全文浏览量:  1165
  • PDF下载量:  107
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-09-12
  • 修回日期:  2016-11-14
  • 刊出日期:  2017-09-01

基于因子图的SCMA和LDPC联合检测和译码

doi: 10.3969/j.issn.1001-0548.2017.05.008
    作者简介:

    韩凯宁(1991-), 男, 博士生, 主要从事通信信号处理及高效VLSI实现方面的研究

  • 中图分类号: TN929.5

摘要: 稀疏码分多址(SCMA)和低密度奇偶校验码(LDPC)是未来移动通信系统中重要的多用户接入和信道编码备选方案。针对SCMA多用户检测性能不理想的问题,该文提出了基于因子图的SCMA和LDPC联合检测和译码方案(JDD),利用LDPC译码的外信息辅助SCMA的多用户检测,仿真结果表明,JDD方案能够获得显著的SCMA检测和LDPC译码性能增益,并使得译码性能逼近理想的单用户传输系统。为了实现算法性能与复杂度之间的折中,该文还提出了基于Jacobi对数近似和消息阻尼(Damping)技术的低复杂度联合检测和译码方案(RC-JDD),仿真和复杂度分析结果表明RC-JDD方案能够在保证译码性能的同时显著降低算法复杂度。

English Abstract

韩凯宁, 张珍兵, 胡剑浩, 陈杰男. 基于因子图的SCMA和LDPC联合检测和译码[J]. 电子科技大学学报, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
引用本文: 韩凯宁, 张珍兵, 胡剑浩, 陈杰男. 基于因子图的SCMA和LDPC联合检测和译码[J]. 电子科技大学学报, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
HAN Kai-ning, ZHANG Zhen-bing, HU Jian-hao, CHEN Jie-nan. A Factor Graph Based Joint Detection and Decoding Scheme for LDPC Coded SCMA System[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
Citation: HAN Kai-ning, ZHANG Zhen-bing, HU Jian-hao, CHEN Jie-nan. A Factor Graph Based Joint Detection and Decoding Scheme for LDPC Coded SCMA System[J]. Journal of University of Electronic Science and Technology of China, 2017, 46(5): 685-691, 794. doi: 10.3969/j.issn.1001-0548.2017.05.008
  • 稀疏码分多址(SCMA)作为一种码域的非正交接入技术[1],提供比传统正交接入技术多50%~200%的连接数,能够很好地满足未来移动系统海量大连接的应用需求[2],因此SCMA成为未来5G通信系统的重要备选接入技术[3]。LDPC码作为一种逼近香农限的信道编码[4],已经广泛应用于深空通信、光通信等领域[5-7],并且在诸多移动通信实验场景下展现了优越的译码性能[5],成为未来移动系统的重要备选信道编码方案。

    由于SCMA采用了非正交的接入方式,在带来频谱效率提升的同时,也给接收端多用户检测带来较大困难,使得系统误码率性能与理想单用户传输系统相比有较大差距。文献[8]中提出了一种外迭代的检测和译码方案(IDD),利用LDPC的译码外信息作为SCMA检测的先验信息来辅助SCMA检测,能够一定程度上提升系统的误码率性能。但是这种外迭代方案迭代次数多,计算复杂度高,收敛速度慢,并且误码率性能距离单用户传输系统仍然有差距。

    针对上述问题,本文提出了一种基于因子图的SCMA和LDPC高性能联合检测和译码方案(JDD),将SCMA检测和LDPC译码的因子图进行融合,设计了一个联合的概率推理问题进行迭代处理算法,使得SCMA检测和LDPC译码的外信息交互效率大大提高。仿真结果显示JDD方案能够带来显著的误码率性能增益,并且迭代次数远小于IDD方案;算法复杂度仅与传统的独立检测和译码方案相当。此外,针对JDD方案,本文提出了基于Jacobi对数近似方法和消息阻尼技术的降复杂度联合检测和译码(RC-JDD)方案,能够在保证译码性能的前提下,显著降低JDD方案的译码复杂度。

    • 假设无线接入系统有K个用户,N个资源块;在传统的正交接入技术中需要满足KN,使每个用户能够占用一个独立的资源块。而在以SCMA为代表的非正交接入技术中KN。一个简化的SCMA上行传输系统如图 1所示,其中用户消息比特经过LDPC编码之后的编码比特为$ \mathit{\boldsymbol{B}} = \left[{{b^1}, {b^2}, \cdots, {b^K}} \right] $,其中bk为第k个用户的编码比特。SCMA调制则根据码本进行映射$ {f^k}:{b^k} \to {\mathit{\boldsymbol{x}}^k} $,其中$ {\mathit{\boldsymbol{x}}^k} = {\left[{x_1^k, x_2^k, \cdots, x_N^k} \right]^{\rm{T}}} $为调制后的复数SCMA符号向量,xnk为第k个用户发射到第n个资源块上的符号。SCMA的稀疏特性体现为xk向量的元素中仅有少数为非零元,这样可以显著降低接收端的检测复杂度。各个用户的发射符号在每个资源块上进行叠加,经历了衰落信道之后到达接收端,接收到的信号$ \mathit{\boldsymbol{y}} = {[{y_1}, {y_2}, \cdots, {y_N}]^{\rm{T}}} $可以表示为:

      $$ \mathit{\boldsymbol{y}} = \sum\limits_{k = 1}^K {{\rm{diag(}}h_n^k{\rm{)}} \cdot {\mathit{\boldsymbol{x}}^k}} + \mathit{\boldsymbol{z}} $$ (1)

      图  1  6用户4资源块的简化SCMA上行传输系统

      式中,hnk为第k个用户到第n个资源块上的信道因子;$ \mathit{\boldsymbol{z}} = {[{z_1}, {z_2}, \cdots, {z_N}]^{\rm{T}}} $为加性高斯白噪声项。

      在接收端,SCMA检测和LDPC译码的信息交互方式主要分为3类:

      1) 文献[9]提出的独立检测和译码,即完成SCMA检测之后进行LDPC译码,然后直接输出译码结果,该方案收敛速度快,复杂度低,但是检测和译码性能较差,大约有3 dB的性能损失。

      2) 文献[8]提出的外迭代方案,即LDPC译码完成之后将译码外信息反馈给SCMA检测器辅助其进行多用户检测,如此进行几轮外迭代之后再输出最终译码结果,该方案能够显著提升检测和译码性能,但是收敛速度比较慢,迭代次数多,复杂度高。

      3) 本文提出的SCMA与LDPC联合检测和译码方案,该方案能够显著提高SCMA检测与LDPC译码之间外信息交互效率,具有目前已知最优的检测和译码性能,而迭代次数和复杂度仅与独立译码方案相当。

    • 本文提出的SCMA和LDPC的联合检测和译码方案(JDD)如图 2所示。JDD方案的消息传递过程可以在一个联合因子图上进行表示,该因子图中一共有3种节点,功能节点(FN),联合变量节点(JVN)和校验节点(CN)。其中功能节点代表接收端接收到的SCMA信号,联合变量节点表示对应发送端编码比特的估计值,校验节点表示LDPC的校验矩阵中规定校验方程。连接这3种节点的有两种连线关系,一种是由SCMA码本决定的FN与JVN之间的连线关系;另一种是由LDPC校验矩阵决定的JVN与CN之间的连线关系。JDD方案中,以上3种节点之间沿着所定义两种连线进行消息传递和迭代更新。下面将以用户K=6,资源块N=4,码本维度M=4的SCMA传输系统为例详细介绍3种节点之间消息传递和迭代更新过程。

      图  2  SCMA和LDPC联合检测译码(JDD)方案的联合因子图表示

    • 功能节点处的信号处理主要是首先计算接收到SCMA信号距离码本中所有星座点的欧氏距离,并由此计算联合条件概率$ P\left( {{y_n}\left| {{x_1}, {x_2}, {x_3}} \right.} \right) $。

      $$ {d_n}({m_1}, {m_{\rm{2}}}, {m_{\rm{3}}}) = \frac{{ - 1}}{{N_0^n}}{\left\| {{y_n} - (h_n^i{x_{n, i}} + h_n^j{x_{n, j}} + h_n^k{x_{n, k}})} \right\|^2} $$ (2)
      $$ P({y_n}\left| {{x_1}, {x_2}, {x_3}} \right.) \sim {\phi _n}({m_1}, {m_{\rm{2}}}, {m_{\rm{3}}}) = {{\rm{e}}^{{d_n}({m_1}, {m_{\rm{2}}}, {m_{\rm{3}}})}} $$ (3)

      式中,$ {m_1}, {m_2}, {m_3} = 0, 1, \cdots, M - 1 $;$ {x_{n, i}}({m_1}) $, $ {x_{n, j}}({m_2}) $, $ {x_{n, k}}({m_3}) $为第n个资源块上承载的i, j, k 3个用户的SCMA符号;$ {d_n}({m_1}, {m_{\rm{2}}}, {m_{\rm{3}}}) $为接收信号yn到各个星座点之间的欧氏距离。

      得到联合条件概率$ P({y_n}\left| {{x_1}, {x_2}, {x_3}} \right.) $之后,利用全概率公式对其进行边缘化,从而得到$ P({y_n}\left| {{x_i}} \right.) $。

      $$ I_{{F_n}}^{{\rm{S}}{{\rm{V}}_{n, i}}}({m_1}) = \sum\limits_{{m_2} = 0}^{M - 1} {\sum\limits_{{m_3} = 0}^{M - 1} {I_{{\rm{S}}{{\rm{V}}_{n, j}}}^{{F_n}}({m_2})I_{{\rm{S}}{{\rm{V}}_{n, k}}}^{{F_n}}({m_3}){\phi _n}({m_1}, {m_2}, {m_3})} } $$ (4)

      式中,$ I_{{\rm{S}}{{\rm{V}}_{n, j}}}^{{F_n}} $和$ I_{{\rm{S}}{{\rm{V}}_{n, k}}}^{{F_n}} $为变量节点$ {\rm{S}}{{\rm{V}}_{n, j}} $和$ {\rm{S}}{{\rm{V}}_{n, k}} $传递给功能节点Fn的消息;$ I_{{F_n}}^{{\rm{S}}{{\rm{V}}_{n, i}}} $为功能节点更新完成后传递给变量节点$ I_{{\rm{S}}{{\rm{V}}_{n, i}}}^{{F_n}} $的消息。

    • 校验节点更新主要是利用LDPC校验矩阵规定的校验方程对联合变量节点得到的编码比特的估计信息进行校验,并反馈回校验信息,其更新过程与LDPC的BP译码算法中的校验节点更新相同。

      $$ I_{{C_l}}^{{\rm{L}}{{\rm{V}}_i}}(b) = \frac{1}{2}\left[{1-2\left( {\prod\limits_{\forall k \ne i:{\rm{L}}{{\rm{V}}_k} \in \psi _{{C_l}}^{{\rm{LV}}}} {I_{{\rm{L}}{{\rm{V}}_k}}^{{C_l}}(b)} } \right)} \right] $$ (5)

      式中,$ b \in \left\{ {{\rm{0}}, {\rm{1}}} \right\} $;$ I_{{\rm{L}}{{\rm{V}}_k}}^{{C_l}}(b) $为变量节点LVk传递给校验节点Cl的消息;$ \psi _{{C_l}}^{{\rm{LV}}} $为与校验节点Cl相连的所有变量节点构成的集合。校验节点完成更新之后将得到的校验信息传递给联合变量节点。

    • 图 2所示,联合变量节点实际上由SCMA变量节点(SVN)和LDPC变量节点(LVN)两部分组成。这是因为SCMA检测过程是基于编码符号的多元消息传递,而LDPC译码是基于比特的二元消息传递,因此这两者之间需要进行符号概率与比特概率之间的转换。如果使用多元LDPC码,那么可以将这两种节点进行完全融合,而不需要比特与符号之间的相互转换。

      SCMA变量节点利用功能节点更新得到的信息和LDPC译码得到的译码外信息进行更新,计算传递给功能节点的消息为:

      $$ I_{{\rm{S}}{{\rm{V}}_k}}^{{F_{k,i}}}(m) = I_{{F_{k,j}}}^{{\rm{S}}{{\rm{V}}_k}}(m)I_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m)/\sum\limits_{m' = 0}^{M - 1} {I_{{F_{k,j}}}^{{\rm{S}}{{\rm{V}}_k}}(m')I_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m')} $$ (6)

      式中,$ m = 0, 1, \cdots, M - 1 $;$ {F_{k, i}} $和$ {F_{k, j}} $为与SCMA变量节点SVk相连的两个功能节点;$ I_{{F_{k, j}}}^{{\rm{S}}{{\rm{V}}_k}}(m) $为功能节点更新后得到的消息;$ I_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m) $为从LDPC姨妈部分传递到SVN节点的外信息。由于LDPC译码是基于比特的二元消息传递,因此需要进行比特到符号的转换,本文定义比特概率到符号概率的映射函数为:

      $$ M(m,{P_{{b_1}}},{P_{{b_2}}}) = \left\{ {\begin{array}{*{20}{c}} {(1 - {P_{{b_1}}})(1 - {P_{{b_2}}})\;\;\;\;\;m = 0}\\ {{P_{{b_2}}}(1 - {P_{{b_2}}})\;\;\;\;\;\;\;\;\;\;\;m = 1}\\ {(1 - {P_{{b_2}}}){P_{{b_2}}}\;\;\;\;\;\;\;\;\;\;\;m = 2}\\ {{P_{{b_2}}}{P_{{b_2}}}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;m = 3} \end{array}} \right. $$ (7)

      那么$ I_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m) = M(m, I_{{\rm{L}}{{\rm{V}}_{k, 1}}}^{{\rm{S}}{{\rm{V}}_k}}(b), I_{{\rm{L}}{{\rm{V}}_{k, 2}}}^{{\rm{S}}{{\rm{V}}_k}}(b)) $,$ {\rm{L}}{{\rm{V}}_{k, 1}} $和$ {\rm{L}}{{\rm{V}}_{k, 2}} $为与SCMA变量节点SVk相连的两个LDPC变量节点,$ I_{{\rm{L}}{{\rm{V}}_{k, 1}}}^{{\rm{S}}{{\rm{V}}_k}}(b) $和$ I_{{\rm{L}}{{\rm{V}}_{k, 2}}}^{{\rm{S}}{{\rm{V}}_k}}(b) $为LDPC变量节点更新得到的外信息。SCMA变量节点在更新的同时,还需要将SCMA检测的外信息传递给LDPC译码部,这部分的外信息应该不包含LDPC译码反馈外信息,以免造成消息传递的死锁从而陷入局部最优的问题,SCMA检测的外信息计算为:

      $$ I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m) = I_{{F_{k, i}}}^{{\rm{S}}{{\rm{V}}_k}}(m) \cdot I_{{F_{k, j}}}^{{\rm{S}}{{\rm{V}}_k}}(m)/\sum\limits_{m' = 0}^{M - 1} {I_{{F_{k, i}}}^{{\rm{S}}{{\rm{V}}_k}}(m') \cdot I_{{F_{k, j}}}^{{\rm{S}}{{\rm{V}}_k}}(m')} $$ (8)

      LDPC变量节点利用校验节点更新得到得到校验信息和SCMA检测部分得到的检测外信息进行更新,其中计算LDPC译码外信息为:

      $$ I_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(b) = \alpha \prod\limits_{\forall i:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} $$ (9)

      式中,$ I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b) $在校验节点更新中得到;$ {\rm{S}}{{\rm{V}}_{j, k}} $为与LDPC变量节点LVj相连的SCMA变量节点;α是为了保证所得到的$ I_{{\rm{L}}{{\rm{V}}_j}}^{{C_l}}(0) + I_{{\rm{L}}{{\rm{V}}_j}}^{{C_l}}(1) = 1 $的归一化因子;$ \psi _{{\rm{L}}{{\rm{V}}_j}}^C $是与LDPC变量节点LVj相连的所有校验节点的集合。LDPC变量节点计算传递给校验节点的消息为:

      $$ I_{{\rm{L}}{{\rm{V}}_j}}^{{C_l}}(b) = \alpha I_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}}(b)\prod\limits_{\forall i \ne l:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} $$ (10)

      式中,$ I_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}}(b) $为SCMA检测外信息。由于SCMA检测是基于符号的多元消息传递,因此,需要将SCMA变量节点更新得到的基于符号的外信息$ I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m) $映射到比特外信息,依据SCMA调制中的比特到符号的映射方式,本文定义符号概率到比特概率的映射函数为:

      $$ {M^{ - 1}}(i, {P_s}(m)) = \left\{ {\begin{array}{*{20}{c}} {{P_s}(2) + {P_s}(3)}&{i = 1}\\ {{P_s}(1) + {P_s}(3)}&{i = 2} \end{array}} \right. $$ (11)

      那么,SCMA检测符号外信息转换为比特外心的计算:

      $$ \left\{ \begin{array}{l} I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{L}}{{\rm{V}}_{k, i}}}(b = 1) = {M^{ - 1}}(i, I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m))\\ I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{L}}{{\rm{V}}_{k, i}}}(b = 0) = 1 - I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{L}}{{\rm{V}}_{k, i}}}(b = 1) \end{array} \right. $$ (12)

      SCMA和LDPC联合检测译码方案总结为:

      算法1:联合检测译码方案(JDD)

      Input: y, N0, H

      Output: $ {\hat b_j}, j = 1, 2, \cdots, J $

      Initialize: $ I_{{\rm{SV}}}^F(m) = 1/M,I_{{\rm{LV}}}^C(b) = 0.5;m = 0,1, \cdots ,M - 1,b \in \{ 0,1\} $

      Algorithm main loop:

      while(t≤Itermax)

      // FN update

      // CN update

      $ I_{{C_l}}^{{\rm{L}}{{\rm{V}}_i}}(b) = \frac{1}{2} - \frac{1}{2}\prod\limits_{\forall k \ne i:{\rm{L}}{{\rm{V}}_k} \in \psi _{{C_l}}^{{\rm{LV}}}} {1 - 2I_{{\rm{L}}{{\rm{V}}_k}}^{{C_l}}(b)} $

      // JVN update

      $ I_{{\rm{L}}{{\rm{V}}_j}}^{{C_l}}(b) = \alpha I_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}}(b)\prod\limits_{\forall i \ne l:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} $

      $ I_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m) = M(m, I_{{\rm{L}}{{\rm{V}}_{k, 1}}}^{{\rm{S}}{{\rm{V}}_k}}(b), I_{{\rm{L}}{{\rm{V}}_{k, 2}}}^{{\rm{S}}{{\rm{V}}_k}}(b)) $

      $ I_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(b) = \alpha \prod\limits_{\forall i:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} $

      $ I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{L}}{{\rm{V}}_{k, i}}}(b = 1) = {M^{ - 1}}(i, I_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m)) $

      // Early Stopping

      $ {\hat b_j} = \alpha I_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}}(b)\prod\limits_{\forall i:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {I_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} > 0.5 $

      if($ \mathit{\boldsymbol{\hat b}} \cdot \mathit{\boldsymbol{H}} = 0 $) End loop and output $ \mathit{\boldsymbol{\hat b}} $;

      end

      Output: $ \mathit{\boldsymbol{\hat b}} = \{ {b_j}\}, j = 1, 2, \cdots, J $

    • 本文提出的联合检测和译码方案(JDD)能够有效地改善SCMA检测和LDPC译码外信息的交互效率,提升系统的误码率性能。但是JDD方案也存在以下几个问题:1) JDD方案中需要大量的乘法和除法运算,使得JDD方案硬件实现复杂度很高;2) JDD方案中还包括EXP非线性运算,不仅运算复杂,而且由于其很大的动态范围,需要更多的数据位宽来表征。所以从硬件实现角度讲,JDD方案的复杂度并不令人满意。本文利用Jacobi对数近似的方法来降低JDD方案的复杂度,并利用消息阻尼技术来加速收敛,改善近似计算带来的性能损失。

    • Jacobi对数近似[9-10]是一种消息传递算法中经常使用的降低复杂度的方法,其主要思想是将概率域的消息传递转换到对数域,然后利用Jacobi对数近似计算来降低复杂度,Jacobi对数近似式为:

      $$ \ln ({e^x} + {e^y}) = \max \{ x, y\} + {{\rm{e}}^{ - |x - y|}} \approx \max \{ x, y\} $$ (13)

      从式可以看到,利用Jacobi近似计算可以将两次EXP指数运算、一次加法运算和一次自然对数运算转换成一次取最大值的运算,可以显著降低计算复杂度。

      将算法1中的JDD方案转换到对数域,并利用Jacobi近似计算来降低复杂度,可以得到降低复杂度的联合检测和译码方案(RC-JDD),如算法2所示。

      算法2  降低复杂度的联合检测和译码方案(RC-JDD)

      Input: y, N0, H

      Output: $ {\hat b_j}, j = 1, 2, \cdots, J $

      Initialize: $ I_{{\rm{SV}}}^F(m) = 1/M,I_{{\rm{LV}}}^C(b) = 0.5; $

      $ m = 0, 1, \cdots, M - 1, b \in \{ 0, 1\} $

      Algorithm main loop:

      while(t≤Itermax)

      // FN update

      // CN update

      // JVN update

      $ {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{C_l}} = {\rm{LI}}_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}} + \sum\limits_{\forall i \ne l:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {{\rm{LI}}_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}} $

      $ {\rm{LI}}_{{\rm{LV}}}^{{\rm{S}}{{\rm{V}}_k}}(m) = {\rm{LM}}(m, {\rm{LI}}_{{\rm{L}}{{\rm{V}}_{k, 1}}}^{{\rm{S}}{{\rm{V}}_k}}(b), {\rm{LI}}_{{\rm{L}}{{\rm{V}}_{k, 2}}}^{{\rm{S}}{{\rm{V}}_k}}(b)) $

      $ {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}} = \sum\limits_{\forall i \ne l:{C_i} \in \psi _{{\rm{L}}{{\rm{V}}_j}}^C} {{\rm{LI}}_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}} $

      $ {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t) = \alpha \cdot {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t) + (1 - \alpha ) \times $

      $ {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t - 1) $ //Damping

      $ {\rm{LI}}_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{L}}{{\rm{V}}_{k, i}}} = \mathop {\max }\limits_{m:{b_{i, m}} = 1} \left\{ {{\rm{LI}}_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m)} \right\} - \mathop {\max }\limits_{m:{b_{i, m}} = 0} \left\{ {{\rm{LI}}_{{\rm{S}}{{\rm{V}}_k}}^{{\rm{LV}}}(m)} \right\} $

      // Early Stopping

      $ {\hat b_j} = {\rm{LI}}_{{\rm{S}}{{\rm{V}}_{j, k}}}^{{\rm{L}}{{\rm{V}}_j}}(b) + \sum\limits_{\forall i \ne l:{C_i} \in \psi _{L{V_j}}^C} {{\rm{LI}}_{{C_i}}^{{\rm{L}}{{\rm{V}}_j}}(b)} > 0 $

      if($ \mathit{\boldsymbol{\hat b}} \cdot \mathit{\boldsymbol{H}} = 0 $) End loop and output $ \mathit{\boldsymbol{\hat b}} $ ;

      end

      Output: $ \mathit{\boldsymbol{\hat b}} = \{ {b_j}\}, j = 1, 2, \cdots, J $

    • 消息阻尼(message damping)是一种已知的可以改善消息传递算法收敛速度的增强技术,其基本操作是在消息传递算法每一次消息更新的时候,将更新后的消息与上一次迭代得到的消息进行优化组合,得到新的消息,以此来达到更稳定的收敛特性。例如,将消息阻尼技术应用到RC-JDD方案中,LDPC译码到SCMA检测的外信息传递上,如:

      $$ {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t) = \alpha {\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t) + (1 - \alpha ){\rm{LI}}_{{\rm{L}}{{\rm{V}}_j}}^{{\rm{S}}{{\rm{V}}_{j, k}}}(t - 1) $$ (14)

      式中,$ \alpha \in [0, 1] $为阻尼因子,大小可由数据仿真得到。从式可以看到,第t次迭代LDPC变量节点传递给SCMA变量节点的消息有第t次迭代的消息和第t-1次迭代的消息加权组合得到。

    • 本节将介绍JDD和RC-JDD方案与传统检测和译码方案的性能仿真对比和复杂度分析对比。

    • 在加性高斯白噪声(AWGN)信道条件下,本文对JDD方案、独立检测和译码方案[9]和外迭代的检测和译码方案[8]进行了性能仿真对比,其中SCMA码本采用6用户,4资源块,150%过载,码本大小为4。LDPC码采用1/2码率,672码长。其中对于独立检测译码方案和外迭代检测译码方案中SCMA检测器和LDPC译码器的内迭代次数分别设置为5次和50次,IDD方案中,外迭代次数设置为5次。JDD方案中,总的迭代次数设置为50次,以上所有方案均采用LDPC提前终止译码策略,即当LDPC码校验矩阵全部满足时提前终止译码,而不需要达到最大译码迭代次数。

      独立检测译码(individual)、外迭代的检测译码(IDD)和联合检测译码方案的误码率方针对比如图 3所示。JDD方案相比相比individual方案有2.6 dB的性能增益,相比IDD方案有1.5 dB的性能增益。图 3还给出了QPSK调制的单用户传输性能作为对比。可以看到,JDD方案相比QPSK单用户系统在提供1.5倍频谱效率增益的同时,性能损失仅为0.5 dB。图 4给了不同阻尼系数对RC-JDD方案的性能影响,考虑到误码率10-4附近是无线通信系统典型的工作场景,因此本文选择在信噪比为3.4 dB条件(对应误码率10-4~10-5之间)下进行仿真;通过仿真获得不同条件下最佳的阻尼系数值。RC-JDD方案与JDD方案的误码率性能对比如图 5所示,RC-JDD相比JDD方案性能损失仅为0.5 dB,而消息阻尼系数由图 4所示选取为0.3。

      图  3  独立检测译码方案、外迭代的检测译码方案和联合检测译码方案的误码率性能方针对比

      图  4  3.4 dB信噪比条件下不同阻尼系数RC-JDD方案的误码性能

      图  5  RC-JDD方案与JDD方案的误码率性能对比

    • RC-JDD方案虽然增加了MAX操作的数量,但是乘法(MUL)和指数运算(EXP)的操作数能够显著降低。将图 6a的计算复杂度转换到总的硬件实现复杂度,如图 6b所示,可以看出RC-JDD相比JDD方案能够降低90%的复杂度。其中,加法操作的硬件实现复杂度归一化为1 u.t,MAX操作为2 u.t,乘法操作为10 u.t,指数EXP运算为20 u.t。

      图  6  RC-JDD方案、JDD方案和独立检测译码方案的复杂度对比

    • 针对SCMA检测和LDPC译码性能不理想的问题,本文提出了一种基于因子图的SCMA和LDPC高性能联合检测和译码方案(JDD),它能够带来显著的误码率性能增益,并且译码复杂度仅与传统的独立检测和译码方案相当。此外,为了进一步降低JDD方案的复杂度,本文又提出了基于Jacobi对数近似方法和消息阻尼技术的降复杂度联合检测和译码(RC-JDD)方案,能够在保证译码性能的前提下,显著降低JDD方案的译码复杂度。

参考文献 (10)

目录

    /

    返回文章
    返回