一种基于交错行列消息传递的LDPC码改进译码算法的制作方法

文档序号:13033557阅读:476来源:国知局
一种基于交错行列消息传递的LDPC码改进译码算法的制作方法与工艺

本发明属于信号处理领域,涉及低密度奇偶校验(lowdensityparity-check,ldpc)码译码算法,该方案通过对交错行列消息传递(i-crmp)译码算法进行改进,而提出一种新的ldpc译码算法。



背景技术:

低密度奇偶校验(lowdensityparity-check,ldpc)码译码算法的性能对其综合性能与实际应用起着极其至关重要的作用,又ldpc码的调度方式在其译码算法中起着重要的作用,常见的置信传播(beliefpropagation,bp)译码算法和对数似然比置信传播(log-likelihoodratiobeliefpropagation,llr-bp)算法采用的是洪水调度方式,即同时更新校验节点或者变量节点。洪水调度方式采用的是并行调度方式,这种调度方式的缺点是收敛速度较慢。为了在本次迭代中能够及时传递节点更新的消息,提出了一种串行调度方式,在这种串行调度方式中,有基于校验节点的更新有分层置信传播(layered-bplbp)算法,也有基于变量节点的梳洗置信传播(shuffled-bp,sbp)算法,按照矩阵中行的顺序提出了行消息传递(rowmessage-passing,rmp)算法,按照矩阵中列的顺序提出了列消息传递(columnmessage-passing,cmp)算法,将rmp算法与cmp算法相结合了起来,交替执行,提出了交错行列消息传递(interlacedcolumnrowmessage-passing,i-crmp)算法,在译码性能和收敛速度上都获得了不错的提升。

在上述译码串行调度方式中,虽然取得了不错的性能,但是其节点信息的更新顺序却是固定的,已证明好的消息更新顺序能够提升译码性能。为此,我们将串行调度译码算法引入动态调度策略译码算法中的残差值的思想,对算法中消息的更新顺序进行重新排序,使得其每次迭代更新的顺序都是不相同的。仿真表明,本文所提出的译码算法能够在译码纠错性能和译码收敛速度上取得不错的提升。



技术实现要素:

有鉴于此,本发明基于交错行列消息传递(interlacedcolumnrowmessage-passing,i-crmp)算法,引入动态调度策略译码算法中的残差值的思想,提出一种新颖的基于交错行列消息传递的ldpc码改进译码算法。目的在于改善ldpc码译码算法的译码纠错性能和加快其译码的收敛速度。

为达到上述目的,本发明提供如下技术方案:

一种新的基于交错行列消息传递的改进译码算法设计,包括:

第一步,对各变量节点进行初始化操作。

第二步,对变量节点求其残差值,并对其进行排序,找到该排序对应的变量节点的位置。

第三步,按照第二步给定的顺序,首先对第一个变量节点进行更新,将更新后的消息传递到与其相邻的第一个校验节点,然后再将校验节点的消息传递到所有与其相邻的变量节点中去。接着将变量节点更新后的消息传递到与其相邻的第二个校验节点,如此重复,直到传递到最后一个相邻的校验节点。最后再对第二步给定顺序中接下来的变量节点重复上述过程。

第四步,进行译码判决,如果满足译码判决条件或者达到最大迭代次数,则停止迭代;否则返回第二步中去。

本发明的有益效果在于:本发明提出的一种新的基于交错行列消息传递的改进译码算法,通过引入动态调度策略译码算法中的残差值思想到串行译码调度算法中去,改变了原有的交错行列消息传递译码算法的消息更新顺序。而原算法的消息更新顺序是固定的,每次迭代都是按照这个顺序固定的,这样的顺序并不是最合适的。基于此,引入残差值的思想进来能够将这个固定的顺序改进为更适合自身的动态的顺序,即每次迭代的消息更新顺序都不一样。而好的消息更新顺序又能够提升译码纠错性能,并加快其译码收敛速度。

附图说明

为了使本发明的目的、技术方案和优异效果更加清楚,本发明提供如下附图进行说明:

图1为本发明方案的技术路线图;

图2为i-crmp算法的消息传递过程图3为pss-16qam映射方案中的ss映射星座图;

图3为本发明改进的算法与其他几种算法的纠错性能对比图;

图4为本发明的改进算法与其他几种算法的迭代次数对比图。

具体实施方式

下面将结合附图,对本发明的具体实施方式和优选仿真实例进行详细的描述。

1.结合附图1说明,一般来说,bp算法都是通过tanner图的边进行消息传递的。节点消息根据传入节点的消息产生新的消息,并将其传递到相邻的节点中去。令m表示图中所有消息的向量,mk表示向量中第k个消息。fk(m)是从m生成mk的函数。

ldpc码可以由tanner图表示,其中包括n个变量节点vj,j∈{1,…,n}和m个校验节点ci,i∈{1,…,m}。沿着tanner图的边进行消息传递对应于后验概率(或llr)。llr的符号显示码字比特的最可能的值,llr的绝对值表示可靠性。在ldpc图中对于任何变量节点vj和任何校验节点ci彼此相邻其消息传递函数可以表示如下:在文献[14]定义如下:

其中是变量节点vj的信道信息,yj是接收信号。表示除了ci与变量节点vj相连的全部校验节点集合,表示除了vj与校验节点ci相连的全部变量节点集合。l(vj)是变量节点vj的llr值。

bp译码是一种迭代算法,其传递消息直到满足停止规则。在洪水调度中,同时更新所有变量消息mc→v,之后在同一次迭代中同时更新所有变量节点传递到校验节点的消息mv→c。最后,根据l(vj)的符号进行判定,当所有校验方程满足条件或达到最大迭代次数时,译码算法就会停止迭代。

2结合附图2说明,i-crmp算法阐述如下:首先,通过公式(1)对一个变量节点进行消息更新,如第一个变量节点v1;然后,使用公式(2)更新与第一变量节点v1相邻的第一个校验节点c1;在移动到与v1相邻的第二个校验节点c3进行计算之前,先将更新后的第一个校验节点c1的消息传递到与其相邻的变量节点中去,不包括最初将其值传递给该校验节点的变量节点;接着再使用公式(1)更新来自第一变量节点的相邻校验节点集合的第二个校验节点c3。

3.结合附图2说明,为了进一步提升i-crmp算法的译码纠错性能并且加快其收敛速度,本文通过对动态调度策略译码算法的研究,引入残差值的概念,使其调度顺序不再是固定的,而是根据残差值的大小来决定。即在每一次进行迭代消息更新前,先对其残差值进行从大到小的方式排序,再将其存储于队列q中,找到队列q所对应的节点,按照该顺序进行节点的消息更新。

残差值的定义2如下:

r(mk)=||f(mk)-mk||(4)

即节点更新后的值减去该节点更新前的值,再取绝对值。

其算法步骤如下:

(1)初始化:变量节点的初始概率信息。

(2)消息迭代更新过程:

通过公式(4)计算残差值r(mc→v),并对残差值进行排序,将其存储于队列q中。

①与cmp算法类似进行变量节点更新:

找到队列q中元素所对应的变量节点位置,对变量节点vj进行有序更新。

②与cmp算法类似进行校验节点更新:

对那些与变量节点相邻的校验节点按顺序进行更新。

③与rmp算法类似进行变量节点更新

采用公式(6)对与②中更新完的校验节点所相邻的变量节点全部进行更新。

(3)译码判决:

根据公式(3)计算l(vj)。

若hyt=0或已达到最大迭代次数,则停止迭代;否则返回第(2)步继续迭代。

4.结合附图3说明,图3为qc-ldpc(756,252)码分别应用bp算法、rmp算法、cmp算法、i-crmp算法与本文的改进译码算法进行纠错性能对比仿真的结果图。由图2中可以看出,当误码率在10-4时,本文改进的算法相比于rmp与cmp算法分别获得0.25db与0.24db的净编码增益;当误码率为10-5时,本文改进的算法相比于i-crmp算法能够获得0.13db的净编码增益。

5.结合附图4说明,图3为bp算法、rmp算法、cmp算法、i-crmp算法与本文算法的仿真迭代次数的对比图。由图3中可以看出,迭代次数会随着信噪比的增加而迅速减小,并且本文的改进算法迭代次数远小于bp算法、rmp算法与cmp算法的迭代次数,而且相比于i-crmp算法,在2.5db~3db的时候,减少了约一半的迭代次数,表明本文的改进译码算法在收敛速度上得到了一定程度的改善。

仿真参数设置如下:本发明选取的码型为qc-ldpc(756,252)码,仿真信道为加性高斯白噪声(additivewhitegaussiannoise,awgn)信道,采用bpsk调制,译码最大迭代次数设定为20。

最后说明的是,以上优选仿真实例仅用以说明本发明的技术方案而非限制,尽管通过上述优选仿真实例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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