论文部分内容阅读
【摘要】 文章将二元LDPC码对数域的分层译码算法成功运用在多元LDPC码的译码过程当中。仿真结果表明,在理想加性高斯白噪声信道环境下,QPSK调制时,多元LDPC码分层译码算法的性能明显优于传统的对数域译码算法,因此它可以有效提升消息传递算法的收敛速度,减少译码延时。
【关键词】 多元LDPC码 分层译码算法 QPSK调制
低密度校验码(LDPC codes)是Gallager于1962年提出的一种逼近香农限的线性分组码。文献[1]首次提出了定义在有限域上的多元LDPC码,他们证实在中短码长时多元LDPC码比二元LDPC码有更好的性能。同时相对于二元LDPC码,多元LDPC码更能有效地与高阶调制相结合,节省带宽。然而多元LDPC码的译码算法大多有一个共同的缺陷:译码迭代次数多,收敛速度慢。文献[2]提出了一种在二元LDPC码中使用的对数域分层译码算法,并证明该算法能有效提升二元LDPC码的收敛速度。
一、多元LDPC码及其分层译码算法
多元LDPC码是由M行N列稀疏校验矩阵H定义的一种线性分组码,该矩阵大部分都由伽罗华域中的零元素组成,只有很少一部分元素来自其中的非零元素。要得到多元LDPC码的校验矩阵,应该首先设计对应的二元矩阵,然后将矩阵中的非零元素用伽罗华域中的非零元素替代。无论是二元校验矩阵还是多元校验矩阵都可用码字的Tanner图表示[3],在表示过程中,校验矩阵的列对应Tanner图的变量节点,行对应Tanner图的校验节点。只要校验矩阵的第i行第j列对应的元素非零,则Tanner图的校验节点ci与变量节点vj就有一条边相连。需要注意的的是:如果校验矩阵是多元的,那么连接校验节点和变量节点的边上要标明第i行第j列的具体元素值。
多元LDPC码的译码算法大多采用并行处理的消息传递译码算法。相比这种传统的更新机制,文献[2]证实确实存在一种其它的更新规则能够显著提升消息传递译码算法的收敛速度。为了更好地描述分层译码算法的步骤,必须先定义几个概念:对于M行N列的多元LDPC码校验矩阵,定义N(i)代表与第i个校验节点ci相连的变量节点(1≤i≤M),定义p(vj=k|y)代表由信道接收值y判断变量节点vj(1≤j≤N)取k(k∈GF(q)={0,1,…q-1})时的概率。因此在初始化时每个变量节点具有q个描述其处于不同状态的概率组成的向量。为了避免计算的不稳定性,笔者采用了对数似然比向量,因此描述变量节点vj的对数似然比向量为(1)
在初始化刚开始时LQj是唯一可以判断变量节点vj所处状态的信息。随着迭代过程的进行,变量节点vj的信息LQj得到更新。定义R为第l次迭代时校验节点ci传递给变量节点vj的信息,Q为第l次迭代时变量节点vj传递给校验节点ci的信息。基于以上定义,多元LDPC码迭代过程的核心操作如下:
上式当中的ψ操作与多元LDPC码传统的对数域译码算法相同。每次迭代完成之后,根据vj=argmax(LQj),(1≤j≤N)进行译码判决,如果找到码字迭代过程就终止,否则要达到最大迭代次数maxiter跳出迭代过程。对于每个变量节点信息LQj,不断地被与之相连的校验节点更新。因此在与变量节点vj相连的下一个校验节点处理过程当中能够更及时地用到更新的变量信息。因此对数域分层译码算法可以有效提升译码的收敛速度。
二、仿真分析
为了验证多元LDPC码的对数域分层译码算法性能,文章选用了码长为200,码率为0.5, GF(4)上的多元LDPC码,并进行QPSK调制,在理想加性高斯白噪声信道环境下进行仿真,结果如图1所示。
由图1可以观察到随着信噪比的增加,对数域分层译码算法成功译码所需的迭代次数明显少于传统的对数域译码算法,并且当信噪比一定时,随着最大迭代次数的增加,对数域分层译码算法的优势将更加明显,这主要是由于当最大迭代次数增加时,分层译码算法相比传统的译码算法在译码过程中,将更优先得到最新的更新信息,从而提升译码的收敛速度。由图 2可以观察到在信噪比一定时,随着译码最大迭代次数的增加,码字的误比特性能将会越来越好,而且在相同的译码最大迭代次数时,分层译码算法的性能优于传统的译码算法。可见分层译码算法确实可以提升译码性能,减小译码延时。
三、结论
文章在分析二元LDPC码分层译码算法的基础上,将该算法成功运用到多元LDPC码的译码过程当中。仿真结果表明分层译码算法可以有效提升译码的收敛速度,减小译码延时。因此多元LDPC码分层译码算法是时延小、性能要求高译码系统的极佳备选方案之一。
【关键词】 多元LDPC码 分层译码算法 QPSK调制
低密度校验码(LDPC codes)是Gallager于1962年提出的一种逼近香农限的线性分组码。文献[1]首次提出了定义在有限域上的多元LDPC码,他们证实在中短码长时多元LDPC码比二元LDPC码有更好的性能。同时相对于二元LDPC码,多元LDPC码更能有效地与高阶调制相结合,节省带宽。然而多元LDPC码的译码算法大多有一个共同的缺陷:译码迭代次数多,收敛速度慢。文献[2]提出了一种在二元LDPC码中使用的对数域分层译码算法,并证明该算法能有效提升二元LDPC码的收敛速度。
一、多元LDPC码及其分层译码算法
多元LDPC码是由M行N列稀疏校验矩阵H定义的一种线性分组码,该矩阵大部分都由伽罗华域中的零元素组成,只有很少一部分元素来自其中的非零元素。要得到多元LDPC码的校验矩阵,应该首先设计对应的二元矩阵,然后将矩阵中的非零元素用伽罗华域中的非零元素替代。无论是二元校验矩阵还是多元校验矩阵都可用码字的Tanner图表示[3],在表示过程中,校验矩阵的列对应Tanner图的变量节点,行对应Tanner图的校验节点。只要校验矩阵的第i行第j列对应的元素非零,则Tanner图的校验节点ci与变量节点vj就有一条边相连。需要注意的的是:如果校验矩阵是多元的,那么连接校验节点和变量节点的边上要标明第i行第j列的具体元素值。
多元LDPC码的译码算法大多采用并行处理的消息传递译码算法。相比这种传统的更新机制,文献[2]证实确实存在一种其它的更新规则能够显著提升消息传递译码算法的收敛速度。为了更好地描述分层译码算法的步骤,必须先定义几个概念:对于M行N列的多元LDPC码校验矩阵,定义N(i)代表与第i个校验节点ci相连的变量节点(1≤i≤M),定义p(vj=k|y)代表由信道接收值y判断变量节点vj(1≤j≤N)取k(k∈GF(q)={0,1,…q-1})时的概率。因此在初始化时每个变量节点具有q个描述其处于不同状态的概率组成的向量。为了避免计算的不稳定性,笔者采用了对数似然比向量,因此描述变量节点vj的对数似然比向量为(1)
在初始化刚开始时LQj是唯一可以判断变量节点vj所处状态的信息。随着迭代过程的进行,变量节点vj的信息LQj得到更新。定义R为第l次迭代时校验节点ci传递给变量节点vj的信息,Q为第l次迭代时变量节点vj传递给校验节点ci的信息。基于以上定义,多元LDPC码迭代过程的核心操作如下:
上式当中的ψ操作与多元LDPC码传统的对数域译码算法相同。每次迭代完成之后,根据vj=argmax(LQj),(1≤j≤N)进行译码判决,如果找到码字迭代过程就终止,否则要达到最大迭代次数maxiter跳出迭代过程。对于每个变量节点信息LQj,不断地被与之相连的校验节点更新。因此在与变量节点vj相连的下一个校验节点处理过程当中能够更及时地用到更新的变量信息。因此对数域分层译码算法可以有效提升译码的收敛速度。
二、仿真分析
为了验证多元LDPC码的对数域分层译码算法性能,文章选用了码长为200,码率为0.5, GF(4)上的多元LDPC码,并进行QPSK调制,在理想加性高斯白噪声信道环境下进行仿真,结果如图1所示。
由图1可以观察到随着信噪比的增加,对数域分层译码算法成功译码所需的迭代次数明显少于传统的对数域译码算法,并且当信噪比一定时,随着最大迭代次数的增加,对数域分层译码算法的优势将更加明显,这主要是由于当最大迭代次数增加时,分层译码算法相比传统的译码算法在译码过程中,将更优先得到最新的更新信息,从而提升译码的收敛速度。由图 2可以观察到在信噪比一定时,随着译码最大迭代次数的增加,码字的误比特性能将会越来越好,而且在相同的译码最大迭代次数时,分层译码算法的性能优于传统的译码算法。可见分层译码算法确实可以提升译码性能,减小译码延时。
三、结论
文章在分析二元LDPC码分层译码算法的基础上,将该算法成功运用到多元LDPC码的译码过程当中。仿真结果表明分层译码算法可以有效提升译码的收敛速度,减小译码延时。因此多元LDPC码分层译码算法是时延小、性能要求高译码系统的极佳备选方案之一。