一种应用于LDPC编码协作的联合边动态调度迭代译码方法与流程

文档序号:22232831发布日期:2020-09-15 19:37阅读:205来源:国知局
一种应用于LDPC编码协作的联合边动态调度迭代译码方法与流程

本发明提供一种应用于ldpc编码协作的联合边动态调度迭代译码方法,属于编译码技术领域。包括了编码协作系统中ldpc码的构造,信源节点、中继节点及目的节点的编译码方案。在联合置信传播迭代译码算法的基础上,提出了一系列的译码算法改进,并最终将改进的联合边动态调度迭代译码方法应用到编码协作系统中。



背景技术:

低密度奇偶校验(low-densityparity-check,ldpc)码是一类纠错能力很强的线性分组码,它在很多数据传输和数据存储信道上都表现出逼近信道容量的性能;ldpc码最早由gallager博士提出,但由于当时存储能力和计算机的限制,人们一直没有充分认识到ldpc码的优越性,直到mackay等人受到turbo码迭代译码的启发,提出了适用于ldpc码且译码性能接近香农极限的置信传播(beliefpropagation,bp)迭代译码算法;期间值得一提的是tanner所做的一项重要工作,他对ldpc码进行了推广并引入了ldpc码的图形表示即tanner图;tanner图奠定了消息传递算法的基础;至此,ldpc码再次引起了学者们的注意并被广泛研究和应用。

编码协作将信道编码技术和协作技术有机结合在一个系统中,通过相互独立的信道发送码字的不同部分,使之同时获得编码增益和协作分集增益,极大的提升了系统的可靠性;由于低密奇偶校验码性能逼近香农限,同时可以采用完全并行的迭代译码,减少译码时延,chakrabarti在2007年提出采用ldpc码的编码协作系统。

在ldpc编码协作系统中,目的节点译码器若采用传统协作系统译码方法对来自信源节点和协作中继的两路接收信号分别进行独立迭代译码,迭代结束后分别求基于两路信号的后验概率,再利用两者的后验概率得到联合后验概率进行译码判决;这虽然能得到一定的协作分集增益,但在每次独立译码迭代过程中,两路信号各自的软输出外信息并未实现互换,传统迭代译码未充分发挥协作系统的优势和潜能;而本发明采用的基于双层tanner图的联合边动态调度迭代译码,目的节点译码器采用联合译码新方法以此实现对两路接收信号的联合迭代译码,该译码方法实现了每次迭代过程中的外信息的充分交换。

影响ldpc码译码性能的主要因素,除了tanner图中环和围长,以及错误平层了陷阱集外,还有一个不可忽略的因素即译码调度;在译码过程中,变量节点和校验节点之间消息的更新次序称为调度;传统的置信传播采用的是洪泛(flooding)并行调度算法;洪泛算法对消息的更新顺序不加任何选择和甄别,在bp译码中消息是并行更新的,并不涉及边或者节点的次序问题;洪泛算法中节点的更新互不相关;与洪泛算法的并行更新不同,如果节点信息的更新采用串行的工作方式,通过利用本次迭代中已经更新的节点信息,将能够加快译码的收敛速度;串行调度分为动态串行和静态串行,其中动态串行译码算法又称为动态消息调度策略,校验节点有顺序地更新;以校验节点更新前后的信息差值的绝对值的大小,即剩余信息(residual),作为校验节点可靠度判断准则来排序;在译码的时候,消息更新前后的差值会随着译码迭代次数的增加逐渐减小直到差值为零,在差值为零的时候称为译码收敛;因此如果更新前后消息的差值越大,则说明该部分越难收敛,给未收敛的边或者节点提供更多的置信消息,提高了译码收敛速度同时付出的代价是每次迭代过程都需要求出节点信息更新前后的对数似然信息(llr)之差的绝对值,即剩余信息,并对剩余信息的大小进行排序,因而加大了计算量,对硬件实现的要求高;静态串行译码采用预先产生好的固定次序对消息进行更新;在实际译码的时候,置信度低的变量节点需要接收更多的外信息才能够正确译码,而对置信度高的变量节点,仅仅需要提供少量的外信息即可正确译码,因此优先处理置信度低的变量节点,能够加快译码的收敛速度;其中shuffled置信传播译码算法和分层置信传播译码算法是最常见的两种静态串行译码算法;本发明提出的基于联合边的动态调度迭代译码,保留了动态串行译码算法快速收敛性的同时,降低了计算残差值带来的译码复杂度;研究表明,除了加速收敛外,好的译码调度还可以提高纠错性能,克服陷阱集,从而降低高信噪比时候的错误平层。



技术实现要素:

本发明的目的在于提供一种译码复杂度和译码性能折中的能够应用于ldpc编码协作系统的联合边动态调度迭代译码方法。

为了实现上述目的,本发明的技术方案包括以下步骤:一种应用于ldpc编码协作的联合边动态调度迭代译码方法,具体包括如下内容:

步骤1.1、单信源单中继编码协作系统各节点的编码,信源节点s和中继节点r分别采用ldpc码,信源节点s将编码生成的码字发送至中继节点r和目的节点d,中继节点r将接收到的来自信源节点s的信号进行译码后再次编码并将校验位发送至目的节点d;

步骤1.2、ldpc编码协作系统中的联合迭代译码,目的节点d对来自信源节点s和中继节点r的两路信号进行联合迭代译码;

步骤1.3、加快译码收敛性的动态串行译码算法,将校验节点更新前后的信息差值绝对值即剩余信息的大小作为校验节点可靠性判断准则,排序决定节点更新的顺序;

步骤1.4、降低译码复杂度的静态串行译码算法,静态串行译码算法将其之前更新过的消息立即用于后续节点的更新;

步骤1.5、加快译码收敛性同时降低译码复杂度的基于边的动态调度置信传播译码算法译码算法,通过设定阈值将校验节点动态分为最不可靠、不可靠、可靠三类;选择性地更新tanner图的边信息。

进一步的,所述步骤1.1的具体步骤是:

步骤1.1.1、所述信源节点s通过编码器ldpc-s对产生的信息比特编码,生成码字并通过广播信道发送至中继节点s和目的节点d;

步骤1.1.2、中继节点r接收来自信源节点s的信息,通过译码器decoder-r译码得到原始的信息比特,并采用编码器ldpc-r重新编码,然后将编码取得的校验比特通过广播信道发往目的节点d。

进一步的,所述步骤1.2的具体步骤是:

步骤1.2.1、目的节点d接收来自信源节点s及中继节点r的两路信号,基于ldpc-s对应的校验矩阵h1和ldpc-r对应的校验矩阵h2,得到对应于整个协作系统的联合检验矩阵h;

步骤1.2.2、得到对应于联合校验矩阵h的联合tanner图,该联合tanner图具有双层结构,h1、h2的共同变量节点同h1的校验节点一起组成双层tanner图的第一层,h2的变量节点和h2的校验节点组成双层tanner图的第二层;基于双层tanner图,目的节点d译码器实现对两路接收信号的联合迭代译码。

进一步的,所述步骤1.3的具体步骤是:

步骤1.3.1、以校验节点更新前后的信息差值绝对值即剩余信息的大小作为校验节点可靠度判断准则来排序,剩余信息越大则该节点的可靠度越小,反之则越大;

步骤1.3.2、按照剩余信息排序,优先更新剩余信息大的节点,由于剩余信息越大则该节点的可靠度越小,优先更新可靠度小的节点,加快译码收敛速度。

进一步的,所述步骤1.4的具体步骤是:

步骤1.4.1、静态串行译码采用预先产生好的固定顺序对消息进行更新,在对校验节点的处理时先计算传入的所有信息,后再计算传出的所有信息,至处理完所有的校验节点;

步骤1.4.2、变量节点使用上一次校验节点的信息,并使用本次迭代的校验节点的信息进行外信息的更新,变量节点的后验概率信息同时进行更新。

进一步的,所述步骤1.5的具体步骤是:

步骤1.5.1、通过设置阈值对校验节点的可靠性进行分类;

步骤1.5.2、将不满足校验方程的节点归为type-1类,此类节点全部进行传递新的消息更新;将满足校验方程且可靠性小于阈值的节点归为type-2类,此类节点具有有错误译码的相连变量节点,确定与其相连的可靠性最小的前若干个变量节点集,向该节点集传递新的消息更新;将同时满足检验方程且节点大于设定的阈值的节点归为tpye-3类,在下次迭代过程中停止更新与type-3节点相连的任何节点;

步骤1.5.3、动态地根据节点确定其在type-1、type-2及tpye-3三类中的类型,选择性地更新tanner图的边信息;新消息更新仅沿tanner图的不可靠边传播,在加快译码收敛性的同时,降低译码算法复杂度。

具体的:(1)、构造单信源单中继编码协作系统各节点的编码;根据编码协作系统的特点,提出一种采用编码简单实用的ldpc系统码的协作方式,采用ldpc系统码的编码协作通信系统的编码实现分为以下步骤:

步骤1:信源节点s将信息比特序列经过:

的ldpc系统码(ldpc-1)编码生成码长为n的码字

步骤2:协作中继节点r对信源节点s发送的受到噪声干扰的码字进行译码;假定译码器能正确译码,r用检验矩阵为

的ldpc系统码(ldpc-2)编码器对上述译码输出码字中的信息比特序列进行再次编码,生成码字为由于码字c1和c2有相同的信息位,故r仅将码字c2的检验位传送至目的节点d;

步骤3:对编码协作通信系统目的节点而言,整个编码系统满足如下检验关系:

hc=0(3)

上式中即c1整个码字和c2的检验位共同组成一个码长n+m2的符合码字,与此对应的整个编码系统的检验矩阵为:

整个单信源单中继的编码协作系统模型如图1。

(2)、此应用于ldpc编码协作的联合边动态调度迭代译码算法是鉴于flooding洪泛并行调度,为了提高译码收敛性而采用动态串行调度,同时为了减少残差计算量带来的复杂度,改进为静态串行调度,最终优化译码性能和降低算法复杂度,提出了联合边动态调度迭代译码;动态串行译码利用残差值做为排序的度量,优先更新残差值最大消息;静态串行译码采用预先产生好的固定次序对消息进行更新;在此基础上,通过使用奇偶校验方程和相邻变量节点的对数似然比llr信息来定义校验节点可靠性,校验节点根据可靠性程度被分成不同组,只更新那些可靠性低于阈值的与校验节点相连的边;降低了动态串行译码算法计算残差带来的复杂度的同时还排除了ldpc码短环的发生,保留了bp消息独立性假设,提高了ber性能。

其中动态串行译码步骤如下:

步骤1:典型的动态串行译码是残差置信传播(residualbeliefpropagation,rbp)如从节点ni传向节点nj的消息是则残差定义如下:

其中,上标old表示更新之前已经传递的消息,new表示本次更新将要传递的消息;rbp译码的消息更新过程可以采用图3表示,首先对每一条边计算消息mc→v的残差r(mc→v),排序并保存起来,假设(2,3)边的残差值最大,计算和更新接着,对于v3的所有相连校验节点,更新消息然后计算与c3和c4相连边的残差值,并对残差值重新排序;在rbp译码算法中,每次更新都需要计算每条边上置信消息的差值然后按照残差由大到小降序排序,选择残差最大的边进行更新,直到译码算法最后收敛或者达到最大译码迭代次数;因此,每次的更新都需要涉及残差计算、排序、找最大值和更新计算等操作,增加了译码的复杂度;除此之外,rbp译码算法也是一种“贪婪性”算法,每次更新中,只对残差值最大的部分进行处理,且只有一个变量节点进行了消息的更新;其余的变量节点由于接收到的外信息较少而变的极不稳定,很容易再次出错;rbp算法的收敛速度最快,但是随着更新次数的增加,受“贪婪性”算法的影响,译码性能并不理想,会过早的出现错误平层现象,因此大大限制了算法的应用。

步骤2、针对rbp算法的“贪婪性”问题,一种改进的动态串行译码算法被提出,称为(node-wiserbp,nw-rbp)。nw-rbp根据度量αc动态地选择需要更新的校验节点,其中对每一个校验节点有:

在nw-rbp的消息更新过程中;假设c2是度量值最大的检验节点,则优先对它进行处理,产生和传播校验节点传向变量节点的消息接着对变量节点v2和v3,传播消息mv→c;在rbp算法中只有一个变量节点接收到消息,而nw-rbp算法逐节点的进行消息更新,可以使更多的变量节点接收到外信息;在更新次数较少的时候,rbp的收敛速度要比nw-rbp快,但是随着更新迭代次数的增加,nw-rbp算法优于rbp算法,这是由于nw-rbp算法放慢了收敛速度,从而在一定程度上克服了rbp算法的贪婪性。

其中静态串行译码步骤如下:

步骤1、shuffled译码算法本质上是基于变量节点消息序列进行更新的,shuffled置信传播译码算法是对bp译码算法的一种改进;在标准bp译码算法中,新的消息必须要等到下一次迭代才得以传递,在shuffled算法中,其之前更新过的消息会立即用于后续节点的更新;shuffled译码算法中,初始化、译码停止条件和bp译码算法一致,这两种算法的区别在于消息的更新次序,shuffled译码算法中消息的更新过程可以描述为两步;校验节点的消息更新和变量节点的消息更新;对于所有的检验节点ci以及他们相邻的变量节点vj,vj∈n(ci),检验节点的消息更新公式为:

变量节点的消息更新公式为:

shuffled算法在译码过程中及时更新垂直方向上由变量节点传向校验节点的信息并在水平方向上校验节点的更新中体现;因此,在第l个迭代周期,不仅有上一次迭代过程中的还有本次迭代更新后的

步骤2、分层置信传播译码算法从校验节点的角度,顺序进行译码;lbp译码算法除了加快了译码的收敛速度,其变量节点特殊的消息处理方式更加有效地简化了求和计算量;在lbp算法中,校验节点信息处理公式为:

上标old和new表示更新前和更新后的消息;在该算法中,由l(v)和mc→v可以直接计算出mv→c,因此可以减少译码过程中的计算量;

边动态调度译码dbp步骤如下:

本发明所提出的低复杂度的基于边动态调度方案:dbp算法是基于校验节点运行时的可靠性,选择性地更新代码图的边。新消息更新仅沿代码图的不可靠边传播;突出特征为降低了bp解码复杂度并同时改善了错误性能;此外,限制消息更新的流程还排除了ldpc码短环的发生,这保留了在变量节点和校验节点处的bp消息独立性假设;通过使用奇偶校验方程和相邻变量节点的对数似然比llr信息来定义校验节点可靠性;我们把校验节点集分成不同的组,只更新那些可靠性低的校验节点的边,当校验节点及其直接相邻变量节点的可靠性足够高时,可以避免连接两个节点的不必要的更新操作;由于每次迭代中更新了部分图形边,因此减少了消息更新的总数,从而降低了整体译码复杂度;同时也降低了图环的不利影响,带来了更好的错误率性能;信息更新从检验节点到变量节点,沿着双边em,n,i表示迭代次数;信息更新从变量节点到校验节点,沿着双边em,n,i表示迭代次数;其中信道内在信息是初始信息也指变量节点的对数似然比(llr)。

本发明的有益效果如下:节点信息的更新采用串行的工作方式,使得节点有顺序地更新;在下一次更新中及时利用本次迭代中已经更新的节点信息,加快了译码的收敛速度;其中动态消息调度策略,以校验节点更新前后的信息差值的绝对值的大小,即剩余信息(residual)作为校验节点可靠度判断准则来排序;在译码的时候,消息更新前后的差值会随着译码迭代次数的增加逐渐减小直到差值为零,在差值为零的时候译码收敛;因此如果更新前后消息的差值越大,则说明这该部分越难收敛,给未收敛的边或者节点提供更多的置信消息,提高了译码收敛速度;静态串行译码采用预先产生好的固定次序对消息进行更新;在实际译码的时候,置信度低的变量节点需要接收更多的外信息才能够正确译码,而对置信度高的变量节点,仅仅需要提供少量的外信息即可正确译码,因此优先处理置信度低的变量节点,能够加快译码的收敛速度;本发明提出的基于联合边动态调度迭代译码,保留了动态串行译码算法快速收敛性的同时,降低了动态串行译码每次译码中都需要求出节点信息更新前后的对数似然信息(llr)之差的绝对值,即剩余信息,并对剩余信息的大小进行排序带来的大量计算;不仅加速了译码收敛,根据节点可靠性只更新可靠度低于阈值且不满足检验方程的节点的边,间接性的解决了tanner图中的短环问题,从而提高了纠错性能。

附图说明

图1为本发明中单信源单中继编码协作系统模型示意图;

图2为本发明中ldpc编码协作系统对应的双层tanner结构图;

图3本发明中rbp算法的更新过程示意图;

图4(a)本发明中dbp算法校验节点根据可靠性分类情况示意图;

图4(b)本发明中dbp算法中信息的传递更新准则示意图;

图5为本发明中编码协作系统与点对点系统的联合边动态调度迭代译码性能仿真示意图;

图6为本发明中不同译码算法性能仿真示意图;

图7为本发明中不同信道下编码协作系统的联合边动态调度迭代译码性能仿真图。

具体实施方式

下面将结合附图,对本发明的实施例进行更进一步的描述。

实施例1:单信源单中继ldpc编码协作通信系统:

结合图1说明基于ldpc编码的单信源单中继编码协作系统的编码方案:

步骤1:信源节点s将信息比特序列经过:

的ldpc系统码(ldpc-1)编码生成码长为n的码字

步骤2:协作中继节点r对信源节点s发送的受到噪声干扰的码字进行译码;假定译码器能正确译码,中继节点r用检验矩阵为:

的ldpc系统码(ldpc-2)编码器对上述译码输出码字中的信息比特序列进行再次编码,生成码字为由于码字c1和c2有相同的信息位,故r仅将码字c2的检验位传送至目的节点d;

步骤3、对编码协作通信系统目的节点d而言,整个编码系统满足如下检验关系:

hc=0(15)

上式中即c1整个码字和c2的检验位共同组成一个码长n+m2的符合码字,与此对应的整个编码系统的检验矩阵为:

实施例2:一种应用于ldpc编码协作的联合边动态调度迭代译码方法,该方法保留了动态串行译码算法快速收敛性的同时,降低了计算残差值带来的译码复杂度;不仅加速译码收敛,选择性更新tanner图边间接的降低了短环带来的影响,因此该算法也提高了译码性能。

结合图2说明基于ldpc编码联合迭代译码方案:

步骤1:信源节点s和中继节点r分别使用检验矩阵如下h1和h2的分组码c1和c2;中继节点r将译码器输出作为其信息序列进行再编码;对目的节点d译码器而言,整个编码协作系统校验矩阵所对应的双层tanner图如图2所示;其中vn(n=1,ln)为h1和h2的共同变量节点,vn(n=n+1,ln+m2)为h2的变量节点;为h1的检验节点,为h2的检验节点;将vn(n=1,ln)和组成双层tanner图的第一层,vn(n=n+1,ln+m2)和组成双层tanner图的第二层,这就是本发明提出的具有双层结构的双层tanner图;将双层tanner图中的所有校验节点视为一个统一的检验节点整体进行处理。

结合图3说明动态串行译码算法:

步骤1:rbp以校验节点更新前后的信息差值的绝对值的大小作为剩余信息(residual),即校验节点可靠度判断准则来排序,剩余信息越大,该节点的可靠度越小,反之则越大;优先更新可靠度小的节点,能使译码收敛的速度加快;在rbp译码算法中,每次更新都需要计算每条边上置信消息的差值然后按照残差由大到小降序排序,选择残差最大的边进行更新,直到译码算法最后收敛或者达到最大译码迭代次数;因此,每次的更新都需要涉及残差计算、排序、找最大值和更新计算等操作,增加了译码的复杂度;其rbp没有克服陷阱集的原因是由于:“贪婪性”的问题;rbp选中一条边进行相应更新并立即根据停止条件进行判决,也就意味陷阱集中少数几个错误变量节点很快就得到了纠正,然后过快的收敛使得在纠正陷阱集中剩余的错误变量节点时,前面已经得到纠正的变量节点极不稳定,在接下来的迭代过程中又接受错误信息回到错误状态如此反复,使得错误变量节点始终不能脱离陷阱集;

步骤2:nw-rbp算法优先更新并同时传递具有最大剩余信息的校验节点的所有对数似然信息;该算法每次选择具有最大αc值的校验节点进行更新和传递:

在更新次数较少的时候,rbp的收敛速度要比nw-rbp快,但是随着更新迭代次数的增加,nw-rbp算法优于rbp算法,这是由于nw-rbp算法放慢了收敛速度,从而在一定程度上克服了rbp算法的贪婪性;在高信噪比的时候,nw-rbp可以达到很低的错误率,有效的降低了错误平层,这是因为该算法的更新方式可以克服陷阱集的影响;nw-rbp算法在具有较快的译码速度的同时,也具有很好的译码性能。

静态串行译码算法:

标准bp译码算法中,变量节点和校验节点的处理是交替进行的,首先对所有的校验节点进行处理,紧接着对所有的变量节点进行处理;与bp算法的更新过程不同,在lbp算法中,按一定的顺序对每一个校验节点进行处理,先计算传入它的所有信息,之后再计算从它传出的所有信息,直到所有的校验节点都被处理过;与洪泛算法相比,lbp译码算法没有增加任何额外的译码复杂度,lbp译码时,算法收敛所需要的迭代次数仅仅是洪泛算法的一半,且在译码器的最大迭代次数受限的情况下,lbp的纠错性能要优于洪泛算法;对于lbp译码算法,校验节点的外信息计算是基于tanner图的;对于shuffled译码中每一行来说,变量节点既使用上一次的校验节点的信息,又使用本次迭代的校验节点的信息进行外信息的更新,变量节点的后验概率信息也进行更新,加快了消息的传递速度,对于变量节点而言完全是串行的结构,迭代译码过程通过使用本次迭代的校验节点的信息和变量节点信息,提高了译码的收敛速度。

结合图4说明边动态调度译码算法:

表1:阐述了dbp译码算法的更新标准:

其中,定义如下:

表示变量节点传递给校验节点的信息;表示校验节点传递给变量节点的信息;表示内在信道状态信息,即校验节点更新过程中,变量节点传递给校验节点的初始信息,译码边收敛标准为了描述图形边缘的收敛(可靠性)标准,定义了校验节点的可靠性度量

其中,由与校验节点cm相连的变量节点的最小对数似然比(llr)定义的即伪后验概率;其值越大越说明与校验节点相连的相邻变量节点相关联的译码码字比特的置信度水平很高;使用和奇偶校验(校正因子)我们将m个校验节点分成三种不同的类型;其中采用二进制(n,k)ldpc码,m=n-k:

检验节点的可靠性值公式为:

变量节点的更新过程为:

i=1时,表明变量节点vn传递外信息到第一层tanner图中的第m个校验节点

i=2时,表明变量节点vn传递外信息到第二层tanner图中的第m个校验节点

边可靠性分类分为三类;type-1:最不可靠。用表示所有不满足奇偶检验的校验节点;这些节点是最不可靠的校验节点,因为奇偶检验方程非零;因此我们将向所有变量节点vn∈n(cm)传递新的消息更新;type-2:不可靠;满足但是可靠值小于阈值即的所有校验节点被归为此类;说明type-2的校验节点仍有一些错误译码的相邻变量节点;为此,我们将确定与检验节点cm相连的t个可靠性最小的变量节点集,表示为:nt-min(cm)将它们视为可能错误的变量节点;之后,我们仅向这些可能出错的变量节点即vn∈nt-min(cm)传递新的消息更新;type-3:可靠:其中的校验节点将会被归类为type-3;因此在下一次迭代中不会更新与type-3中校验点相邻的任何变量节点;根据校验节点类型选择可靠度阈值γ;定义了检验-节点-类型概率来选择阈值;定义为:p(type-2)、p(type-3);是由校验节点被选为type-2或者type-3;为了使得两种类型的校验节点具有相同的机会参与下一次译码迭代即p(type-2)=(type-3)使得两者类型的校验节点具有相同的概率。我们得到γ的值为:

通过数值模拟方法选择t的值:

基于校验节点分类,通过使用二进制边缘状态矢量s来表示边缘的收敛状态:

s={εm,n|1≤m≤m,vn∈(cm)}(25)

其中εm,n∈{0,1},这个边状态矢量s将会用于确定某个边下次是否需要迭代。

dbp译码算法的具体流程如下:

总而言之,在下一次迭代过程中,信息仅在εm,n=1的边上传递更新;使用这个边状态矢量,可以调节上述提到的动态调度的消息传递;算法中的k为用于计算每个译码码字执行v2c(变量节点to校验节点,v)/c2v(校验节点to变量节点,c)消息更新操作的平均数量;算法中的z用于计算每个译码码字执行的边缘状态矢量s更新的平均数量。

m、n分别为校验节点和变量节点数量;dv和dc分别为变量节点度数和校验节点度数;k是每个码字校验节点更新的次数,e为tanner图的边数,满足e=dv×n=dc×m;t为可靠性最低的边相连的节点个数(取t=2);

表2:不同译码算法的复杂度比较:

其中

结合图5、6、7分析同等条件下,仿真采用了二进制相移键控调制,目的节点d信道状态信息已知,译码算法采用本发明所提到的dbp;考虑两种信信道场景下的译码性能:(a)s-d和r-d信道为相互独立的awgn信道,但是具有不同的snr;(b)s-d和r-d信道为相互独立的瑞利块衰落信道,在每个码字时间里信道衰落保持不变,且s-d和r-d信道的平均信噪比相同;对码长为512,码率为1/2的采用上述环境进行译码性能仿真,迭代次数为10次;对比并分析了不同条件下的仿真结果。

如图5所示,码长512,码率1/2的ldpc在瑞利块衰落信道下采用二进制相移键控调制,比较了编码协作系统和点对点系统的译码性能;结果表明编码协作系统的性能优于点对点非协作系统;这是由于编码协作将信道编码技术和协作技术有机结合在一个系统中,通过相互独立的信道发送码字的不同部分,使之同时获得编码增益和协作分集增益,极大的提升了系统的可靠性,且随着迭代次数的增加,性能增益越明显;该增益归功于中继的设置提高了目的节点部分接收信号的信噪比,而通过联合迭代译码算法,可以提升整个协作系统的ber性能;在ber=10-3数量级时,编码协作系统相比于对点系统获得约5db的增益,译码性能得到改善。

同等仿真条件下,选取码长为512,码率为1/2的ldpc码,对单信源单中继编码协作系统下不同译码算法的性能进行仿真比较,仿真结果如图6所示;从图6中可以看出,传统bp译码性能优于最小和译码算法ms,这是因为,最小和译码算法用译码性能换取译码复杂度,使得ms译码复杂度大大降低的同时,也导致了译码性能的损失;dbp译码性能优于传统bp;这是由于本发明提出的dbp译码,只更新那些可靠性低于阈值,且不满足校验方程的节点边,间接的消除了ldpc码短环带来的不利影响,增加了节点之间的独立性,提升了消息的可靠性,从而提高了译码性能,当ber=10-6数量级时,dbp译码算法相比于传统bp译码算法得约0.4db的增益,译码性能得到改善;与此同时,对比传统bp译码,dbp只更新可靠性低的节点,这无疑减少了译码过程中大量的迭代过程;对比rbp译码,dbp根据可靠性与阈值的大小关系和是否满足检验方程来确定下次迭代过程中需要更新的节点,而非每次迭代过程中都计算所有节点残差值、再排序、选出最大残差值对应节点进行更新,下一次迭代也采取这种复杂度很高的策略;显得dbp译码复杂度远远低于rbp;dbp具有很好的译码性能和较低的译码复杂度,使其具有广阔的应用市场。具有广泛的应用价值。

图7在同等条件下,对比了编码协作系统在高斯信道和瑞利信道下的译码性能仿真;采用单信源单中继编码协作系统下,码长512,码率1/2的ldpc码,译码算法采用dbp译码算法,仿真了ldpc编码协作系统在不同信道下的译码性能;首先,迭代次数越多,tanner图中各节点获得的信息的准确性越高,译码性能越好;瑞利信道,因为瑞利乘性因子的存在,使得只有在信道信噪比很高的情况下,译码性能才好。

以上仅为本发明实例中一个较佳的实施方案。但是,本发明并不限于上述实施方案,凡按本发明所做的任何均等变化和修饰,所产生的功能作用未超出本方案的范围时,均属于本发明的保护范围。

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