基于分层最小和算法的LDPC译码方法与流程

文档序号:16244379发布日期:2018-12-11 23:25阅读:1213来源:国知局
基于分层最小和算法的LDPC译码方法与流程

本发明涉及通信技术领域,尤其涉及一种基于分层最小和算法的ldpc译码方法。

背景技术

ldpc码(低密度奇偶校验码)是基于校验矩阵的一种线性分组码,由于具有较强的纠错能力得到了广泛应用。目前应用比较广泛的ldpc译码算法是llr-bp。llr-bp译码算法是对数域bp算法也是标准的译码算法,尽管该算法的译码性能较优,但是在译码迭代运算时需要大量的加法运算以及双曲正切函数的查表计算,具有很高的复杂度,不易于应用实现。最小和算法是一种简化的llr-bp算法,其没有了双曲正切函数的繁琐计算,用简单的比较和加法运算代替了原有复杂的指数和对数运算,很大程度上降低了计算复杂度,在硬件实现方面易于应用,但译码性能损失较多。针对最小和算法带来的性能损失,目前通常采用分层最小和算法,该算法在最小和算法的基础上将并行译码方式改为部分并行的串行译码方式,其将校验矩阵按行划分成若干层,每一层的校验节点和变量节点同时更新,更新后得到的变量节点后验概率和校验节点信息传递给下一层,再进行校验节点和变量节点信息的更新,直到最后一层译码完成时,根据得到的变量节点后验概率进行译码判决,从而完成一次完整的译码迭代。相对于未采用分层的译码算法,这种分层译码算法加快了译码收敛速度,变量节点信息被多次更新,很大程度上提高了译码性能。

然而,尽管分层最小和算法的译码性能有很大提高,但在某些情况下,其译码性能的提高存在限制,例如,以tanner图表示的ldpc检验矩阵为例,当tanner图上无环时,现有的基于分层最小和算法的译码方法可以达到最佳译码,而当tanner图上存在环(环是指从一个节点按边不重复回到同一节点的路径,即存在环时,信息会在两组节点间反复传递,难以更新,违背了迭代译码的初衷)特别是小环时,迭代译码会出现正反馈作用不明显,判决消息出现问题,从而导致错误判决,降低译码性能,尤其在中、高信噪比时,环的存在会造成变量节点和校验节点传递的外部信息出现震荡现象,降低译码算法的性能。现有的易于硬件实现的简化算法,例如分层最小和算法以及其他改进的最小和算法主要考虑如何降低复杂度以及通过修正信息幅度或多次更新变量节点信息来提高译码可靠性,而都没有考虑到tanner图上存在环时出现的外部消息振荡现象。

因此,需要对现有技术进行改进,以寻求一种可以削弱外部信息振荡现象,从而提高译码性能并且易于硬件实现的译码方法。



技术实现要素:

本发明的目的在于克服上述现有技术的缺陷,提供一种基于分层最小和算法的ldpc译码方法。

根据本发明的第一方面,提供了一种基于分层最小和算法的ldpc译码方法。该方法将ldpc的校验矩阵按行分为多个校验节点,按列分为多个变量节点,并且当ldpc的校验矩阵的元素为1时,认为该元素位于的行所对应的校验节点和该元素位于的列所对应的变量节点具有连接,其特征在于,当迭代次数没有达到预定的最大迭代次数或ldpc校验和不为全零向量时,重复执行以下步骤:

步骤1:变量节点根据接收到的前后两次外信息值的加权平均更新传送给相连的校验节点的信息;

步骤2:校验节点根据接收到的前后两次外信息值的加权平均值更新传递给相连的变量节点的信息;

步骤3:利用变量节点的后验概率进行译码判决。

在一个实施例中,在步骤1中,包括以下子步骤:

步骤11:将第一层的变量节点信息初始化为:

q(0)v=2z/σ2

其中,z为信道输出值,σ2为噪声方差,v表示变量节点索引。

步骤12:所述变量节点根据以下公式更新传递给所述校验节点的信息:

l_q(k)cv=q(l-1)v-r(k-1)vc

q(k)cv=βl_q(k)cv+(1-β)q(k-1)cv

其中,c表示校验节点索引,v表示变量节点索引,k表示迭代次数,l表示分层数目索引,q(0)cv=2z/σ2,β为加权系数,取值范围为0.1至0.9,q(l-1)v表示上一层变量节点的后验概率信息,r(k-1)vc表示上一次迭代的校验节点信息,表示变量节点传递给校验节点的信息,表示校验节点传递给变量节点的临时信息。

在一个实施例中,在步骤2中,所述校验节点根据以下公式更新传递给所述变量节点的信息:

r(k)vc=βl_r(k)vc+(1-β)r(k-1)vc

其中,n(c)\v表示与校验节点c相连的所有变量节点中除去v节点的集合,表示校验节点传递给变量节点的临时信息,β为加权系数,取值范围为0.1至0.9,表示校验节点传递给变量节点的信息,sign()表示取符号运算。

在一个实施例中,在步骤3中,包括以下子步骤:

步骤31:所述校验节点根据以下公式更新后验概率:

其中,q(l-1)v表示上一层l-1层变量节点的后验概率信息,r(k-1)vc表示上一次迭代的校验节点信息,r(k)vc表示当前迭代的校验节点信息,q(l)v表示当前l层变量节点的后验概率信息,ml(v)表示第l层与变量节点相连的所有校验节点集合;

步骤32:当时,判定变量节点接收到的信息vj=0,否则判断vj=1,其中j=1,2,···,n,j是变量节点接收到信息索引。

根据本发明的第二方面,提供了一种基于分层最小和算法的ldpc译码装置。该装置包括:

变量节点更新单元:用于根据接收到的前后两次外信息值的加权平均更新传送给相连的校验节点的信息;

校验节点更新单元:用于根据接收到的前后两次外信息值的加权平均值更新传递给相连的变量节点的信息;

译码判决单元:用于利用变量节点的后验概率进行译码判决;

其中,将ldpc的校验矩阵按行分为多个校验节点,按列分为多个变量节点,并且当ldpc的校验矩阵的元素为1时,认为该元素位于的行所对应的校验节点和该元素位于的列所对应的变量节点具有连接。

与现有技术相比,本发明在分层最小和算法的基础上通过引入加权系数来修正变量节点的外部信息从而削弱外部信息震荡现象,计算变量节点先验概率的更新和校验节点的更新时,分别采用前后两次外部信息值加权平均的方法,保证译码的可靠性并提高译码性能。此外,相对于现有的llr-bp算法,本发明的译码方法省去了复杂的指数运算和对数运算,仅增加一部分加法运算,因此复杂度更低并且更易于硬件实现。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了与ldpc校验矩阵对应的tanner图的示意;

图2示出了根据本发明一个实施例的基于分层最小和算法的ldpc译码方法的流程图。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

为了便于理解,下文结合tanner图表示的ldpc校验矩阵来描述本发明的基于最小和算法的译码方法。

tanner图是一种二分图,分为校验节点和变量节点,根据校验矩阵可以构造ldpc码的tanner图表示。tanner图和校验矩阵具有以下对应关系:tanner图有n个变量节点(或称信息节点)和m个校验节点,分别对应校验矩阵h的列数和行数,如果第i个变量节点和第j个校验节点之间有边相连,则h(j,i)=1,否则h(j,i)=0。例如,图1示出了与校验矩阵对应的tanner图,包括6个变量节点v1、v2、v3、v4、v5、v6和3个校验节点c1、c2、c3,由于第一列第二行的元素为1,即h(1,2)=1,因此,v1和c2之间有边连接,类似地,可得出其它节点之间的连接关系,每个变量节点可与多个校验节点相连,每个校验节点可与多个变量节点相连。

当采用分层最小和方法进行译码时,首先读入一组数据a存于变量节点中,当校验矩阵h中的某一层参与译码时,对应的变量节点将其存储的数据发送到校验节点,这些数据在校验节点计算,得到新的a值,再将其送回变量节点,更新变量节点中存储的数据,从而完成一层的译码操作。然后执行新的一层的译码,直至完成指定的译码迭代次数,输出完成译码操作的数据。例如,图1含有6个变量节点3个校验节点,输入的待译码数据首先存储于6个变量节点。这些数据随后被送入3个校验节点,每个校验节点从与之相连的变量节点读取数据,送入校验节点的数据在节点中进行相应的译码计算,完成计算后的新数据被校验节点送回至各原变量节点,用于更新变量节点的中原始数据,从而完成一次迭代译码操作。译码器在进行若干次迭代译码之后,输出变量节点中的数据作为译码结束后的结果。

在译码过程的每一轮迭代中,由变量节点向校验节点传递的信息是基于变量节点对应的码元经过信道后的观察值和由邻接的校验节点在上一次迭代过程中传递过来的消息联合计算的,需要注意的是,由某个变量节点v向校验节点c所传递的消息的计算中不包含在上一次迭代中由校验节点传递给该变量节点的消息,由校验节点向变量节点传递的消息也有同样的情况。

本发明的译码方法在现有分层最小和算法的基础上进行了改进,在行分层基础上引入加权系数对前后两次外部信息进行加权平均来修正节点的外部信息。在一个实施例,本发明的译码方法具体包括以下步骤(参见图2所示)。

第一步、初始化变量节点和校验节点。

将校验矩阵h划分为lsum层,各层校验节点的信息r(k)vc初始化为0,根据接收到信息v的对数似然比,可以得到第一层的变量节点初始信息为:

q(0)v=2z/σ2(1)

其中,z为信道输出值,σ2为噪声方差,k表示迭代次数。

第二步、更新变量节点的先验概率。

对每一层的变量节点采用以下公式更新先验概率

l_q(k)cv=q(l-1)v-r(k-1)vc(2)

q(k)cv=βl_q(k)cv+(1-β)q(k-1)cv(3)

其中,c表示校验节点索引,v表示变量节点索引,k表示迭代次数,l表示分层数目索引,q(0)cv=2z/σ2,β为引入的加权系数,取值范围为[0.1-0.9],q(l-1)v表示上一层变量节点的后验概率信息,r(k-1)vc表示上一次迭代的校验节点信息,表示变量节点传递给校验节点的信息,表示校验节点传递给变量节点的临时信息。

上述公式(2)和(3)表示,上一层的变量节点后验概率信息q(l-1)v和校验节点信息会传递给下一层,作为外部信息影响下一层的信息更新。并且,变量节点传递给校验节点的信息是前后两次外部信息值(即)进行加权平均的结果。

第三步、检验节点的更新

r(k)vc=βl_r(k)vc+(1-β)r(k-1)vc(5)

其中,n(c)\v表示与校验节点c相连的所有变量节点中除去v节点的集合,表示校验节点传递给变量节点的临时信息,表示校验节点传递给变量节点的信息,sign()表示取符号运算。

而在现有的分层最小和方法中,校验节点的更新公式为:

其中,sign()表示取符号运算,abs()表示取绝对值运算,

将本发明的校验节点更新公式(4)和(5)与现有技术中的公式(6)对比可知,本发明的校验节点更新省去了复杂的指数运算和对数运算,如关于φ(x)的计算,而只增加了一部分加法运算,如加权平均的计算,因此复杂度更低,更易于硬件实现。

第四步、变量节点后验概率更新

每一层变量节点的后验概率采用下式进行更新:

其中,q(l-1)v表示上一层变量节点的后验概率信息,r(k-1)vc表示上一次迭代的校验节点信息,r(k)vc表示本次迭代的校验节点信息,q(l)v表示当前l层变量节点的后验概率信息,ml(v)表示第l层与变量节点相连的所有校验节点集合。

第五步、译码判决

利用变量节点的后验概率进行译码判决,当时,判定接收到的信息vj=0,否则vj=1,其中j=1,2,···,n,j是接收到信息(或称数据)索引。

第六步、输出译码结果

当达到预定的最大迭代次数或校验和为全零向量时,获得译码结果。

具体地,令k=k+1,重复以上第二步第五步,直到vht=0或者达到规定的最大迭代次数时,译码停止,得到译码结果,其中,ht表示校验矩阵的转置。

综上所述,本发明在分层最小和算法的基础上进行改进,在变量节点和校验节点的更新中通过加权平均计算节点之间传递的信息,从而提高了变量节点和校验节点之间信息传递的独立性,解决了tanner图存在环时,译码结果无法快速收敛到最优结果的问题,特别是在中、高信噪比区,通过引入加权系数能够削弱外部信息振荡现象,因此译码性能更优。本发明引入的加权系数可针对不同的通信场景(例如,不同的信噪比条件)仿真确定。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1