简化的低密度校验码译码器实现方法

文档序号:7531195阅读:155来源:国知局
专利名称:简化的低密度校验码译码器实现方法
技术领域
本发明涉及一种编码技术领域的方法,具体是一种简化的低密度校验码译码器实现方法。
背景技术
低密度校验码(简称LDPC码)的研究是继turbo码之后纠错码领域掀起的又一研究热潮,它向逼近香农极限的目标又跨进了一步。由于LDPC码具有相当好的性能,因此它在很多领域中都有很广泛的应用。最近几年,LDPC信道编码技术已经被选为欧洲卫星电视广播DVB-S2中的信道编码标准。另外在蜂窝移动通信、宽带卫星通信、无线个人区域网(802.15)、无线移动宽带接入网(802.20)以及其它诸如数据存储介质设备访问和有线调制解调器(Cable Modem)、数字用户线(DSL)等通信系统也正考虑将其作为信道编码规范。在LDPC码的译码算法中,BP算法(Belief Propagation Algorithm)具有非常好的性能,因此被广泛应用于LDPC译码器中。但是由于BP算法本身的复杂度较高,译码器的结构往往非常复杂,需要消耗大量的硬件资源,因此提出了许多简化的算法。一种经典的简化算法是MSA算法(Minimal Sum Algorithm),其优越的地方是在计算校验节点的信息的时候具有非常低的算法复杂度,硬件容易实现,但这种算法的的性能很差,另外还有使用加性修正的MSA算法。
经对现有技术的文献检索发现,Achilleas Anastasopoulos在《GlobalTelecommunications Conference》2001.Page(s)1021-1025 vol.2上提出的“A comparison between the sum-product and the min-sum iterativedetection algorithms based on density evolution”(一种基于密度演化的和积算法与最小和算法的比较,Achilleas Anastasopoulos,2001年全球通信会议,第2卷,第1021-1025页),该文中就介绍了一种加性修正的MSA算法,这种算法的复杂度比BP算法低,同时拥有和BP算法差不多的性能,但是在硬件实现的时候需要使用n选3的选择器,因此与传统的MSA算法(使用n选2的选择器)相比,具有较高的硬件复杂度。

发明内容
本发明的目的在于针对现有技术的不足,提出一种简化低密度校验码译码器实现的方法,使其对BP算法中的校验节点信息的计算进行了改进,选择最小和次小值的时候,使用了n选2的复选器进行硬件实现,降低硬件实现的复杂度,同时具有很好的译码性能。
本发明是通过以下技术方案实现的,所涉及的译码器结构中,包含一系列的BNU模块(计算信息节点信息的模块)和CNU模块(计算校验节点信息的模块),在CNU模块中使用n选2的选择器、选择模块和计算模块,BNU模块和CNU模块之间有许多边相连,BNU模块和CNU模块通过这些边和与之相连的模块进行信息的传递和迭代,得到正确的信息。具体步骤如下(1)BNU模块的初始化BNU模块接收来自信道的传递过来的经过初始化的信息L(ci),并通过与CNU模块相连的边将这些信息传递给CNU模块;(2)CNU模块对接收的信息的处理及传递处理后的信息CNU模块接收到来自与之相连的BNU模块的信息之后,分别计算传递给每个与之相连的BNU模块的信息;(3)BNU模块对接收的信息的处理及传递处理后的信息BNU模块接收到CNU模块传递过来的信息以后,分别计算传递给每个与之相连的CNU模块的信息;(4)对信息进行判断及对判断以后的结果进行校验,决定是否中止迭代。
本发明主要是对LDPC译码的硬件实现中CNU模块的结构进行了简化,其最大的特点是使用了n选2的选择器,而除了使用MSA算法以外,一般的CNU模块的结构至少需要一个n选3的选择器,其硬件的实现相对于n选2的选择器而言复杂很多,因此本发明中的对硬件的简化方法对于降低硬件的复杂度很有好处。
所述的步骤(2),具体实现如下
假设这个BNU模块的编号是i,CNU模块的编号是j,则首先统计除第i个BNU模块以外,所有与第j个CNU模块相连的BNU模块传递给该CNU模块信息的负值的个数,如果个数为奇数个,则取值为-1,否则取值为1,用sgn来记录这个值。同时CNU模块将在所有与之相连的BNU模块传递的信息中,通过一个n选2的选择器,选出绝对值最小值min和绝对值次小值sub,用这两个值计算传递给BNU模块的信息。
接下来将min和sub通过一个选择模块分不同的情况进行选择。在这里,分两种情况进行讨论①第i个BNU模块传递给第j个CNU模块的信息是所有与该CNU模块相连的BNU模块中信息绝对值最小的信息,选择模块输出sub,则计算模块(选择模块的下一级模块)用sub同sgn相乘作为传递给第i个BNU模块信息。
②第i个BNU模块传递给第j个CNU模块的信息是所有BNU模块传递给该CNU模块信息中绝对值为最小值以外的数值,选择模块把min和sub同时输出,而计算模块用如下公式计算传递给BNU模块信息令a=min/2,b=sub/2则CNU模块传递给BNU模块的信息为L(rji)=sgn·(ab)其中a⊕b=min{a,b}+0.5|a+b|<2,|a-b|>|a+b|min{a,b}-0.5|a-b|<2,|a+b|>2|a-b|min{a,b}else]]>所述的步骤(3),具体实现如下假设BNU模块的编号是i,与第i个BNU模块相连的一个CNU模块的编号是j,则①BNU模块将所有与之相连的CNU模块传递过来的信息同初始信息一起加起来,假设这个值为acc
②用acc减去第j个CNU模块传递给BNU模块的信息L(rji),作为传递给第j个CNU模块的信息。
即L(qij)=acc-L(rji)所述的步骤(4),具体实现如下①计算每个信息位的后验概率,即acc;②对每个后验概率的值进行判断,如果后验概率大于0,则该信息位取0,否则取1;③检查判决之后的码是否满足校验矩阵,如果满足校验或者迭代超过最大次数时,停止迭代。否则返回步骤(2)继续迭代。
本发明中,对BP算法中的校验节点信息的计算进行了改进,同时使用了n选2的选择器实现对最小和次小的值的选取,然后根据不同的情况,选出了合适的值进行计算,很好地保持了译码算法的性能,它具有同BP算法差不多的译码性能。硬件复杂度很低。另外,对计算公式进行了加性修正,这样在无需查phi表的情况下即可计算校验节点的信息。
具体实施例方式
为更好的理解本发明的技术方案,以下给出一个使用BPSK方式调制的(3,6)LDPC码在AWGN信道中译码的具体实施例,具体的步骤如下(1)对于每个BNU模块,计算它们模块的初始值L(ci)L(ci)=2yi/σ2其中yi是从信道中接收到的信号,σ2是信道噪声的方差。
(2)CNU模块将使用一个6选2的选择器在6个信息节点传递给校验节点的信息中选择一个最小值,一个次小值,然后根据BNU模块传递给CNU模块值的情况进行选择和计算。
假设第i个CNU模块收到的BNU模块的信息分别是1.4,-1.2,-1.6,2.4,-2.6,1.8。则计算CNU模块传递给与之相邻的BNU模块的信息。首先选择min和sub的值,由BNU模块的信息可以知道,min=1.2,sub=1.4,接下来计算传递给每个BNU模块的信息,第一个信息是1.4,除去这个值以后其余的值的负值的个数是奇数,所以sgn的值的为负的,另外1.4不是最小值,所以根据第②种情况计算,可得传递给相应BNU模块的信息是-0.1。同样的情况,可以计算其余的信息分别是1.4,0.1,-0.1,0.1,-0.1。
(3)BNU模块接收到CNU模块传递过来的信息以后,分别计算传递给每个与之相连的CNU模块的值;(4)计算每个信息位的后验概率,并对概率进行判断和校验,决定是否中止迭代。
对于最普遍的信息位宽为5的(3,6)LDPC码,同一般的使用加性修正的MSA译码算法的实现相比,每个CNU模块可以节省5个位宽为5的2选1比较器,而对于并行度为32的译码器,一个译码器至少可以节省160个位宽为5的2选一的比较器。
权利要求
1.一种简化低密度校验码译码器实现的方法,其特征在于,包含一系列的BNU模块和CNU模块,在CNU模块中使用n选2的选择器、选择模块和计算模块,具体步骤如下(1)BNU模块的初始化BNU模块接收来自信道的传递过来的经过初始化的信息L(ci),并通过与CNU模块相连的边将这些信息传递给CNU模块;(2)CNU模块对接收的信息的处理及传递处理后的信息CNU模块接收到来自与之相连的BNU模块的信息之后,分别计算传递给每个与之相连的BNU模块的信息;(3)BNU模块对接收的信息的处理及传递处理后的信息BNU模块接收到CNU模块传递过来的信息以后,分别计算传递给每个与之相连的CNU模块的信息;(4)对信息进行判断及对判断以后的结果进行校验,决定是否中止迭代。
2.根据权利要求1所述的简化低密度校验码译码器实现的方法,其特征是,所述的步骤(2),具体实现如下假设这个BNU模块的编号是i,CNU模块的编号是j,则首先统计除第i个BNU模块以外,所有与第j个CNU模块相连的BNU模块传递给该CNU模块信息的负值的个数,如果个数为奇数个,则取值为-1,否则取值为1,用sgn来记录这个值;同时CNU模块将在所有与之相连的BNU模块传递的信息中,通过一个n选2的选择器,选出绝对值最小值min和绝对值次小值sub,用这两个值计算传递给BNU模块的信息,接下来将min和sub通过一个选择模块分情况进行选择。
3.根据权利要求2所述的简化低密度校验码译码器实现的方法,其特征是,所述的选择模块分情况进行选择,具体分两种情况①第i个BNU模块传递给第j个CNU模块的信息是所有与该CNU模块相连的BNU模块中信息绝对值最小的信息,选择模块输出sub,则计算模块用sub同sgn相乘作为传递给第i个BNU模块信息;②第i个BNU模块传递给第j个CNU模块的信息是所有BNU模块传递给该CNU模块信息中绝对值为最小值以外的数值,选择模块将min和sub同时输出,而计算模块用如下公式计算传递给BNU模块信息令a=min/2,b=sub/2则CNU模块传递给BNU模块的信息为L(rji)=sgn·(ab)其中a⊕b=min{a,b}+0.5|a+b|<2,|a-b|>2|a+b|min{a,b}-0.5|a-b|<2,|a+b|>2|a-b|min{a,b}else.]]>
4.根据权利要求1所述的简化低密度校验码译码器实现的方法,其特征是,所述的步骤(3),具体实现如下假设BNU模块的编号是i,与第i个BNU模块相连的一个CNU模块的编号是j,则①BNU模块将所有与之相连的CNU模块传递过来的信息同初始信息一起加起来,假设这个值为acc;②用acc减去第j个CNU模块传递给BNU模块的信息L(rji),作为传递给第j个CNU模块的信息,即L(qij)=acc-L(rji)。
5.根据权利要求1所述的简化低密度校验码译码器实现的方法,其特征是,所述的步骤(4),具体实现如下①计算每个信息位的后验概率,即acc;②对每个后验概率的值进行判断,如果后验概率大于0,则该信息位取0,否则取1;③检查判决之后的码是否满足校验矩阵,如果满足校验或者迭代超过最大次数时,停止迭代,否则返回步骤(2)继续迭代。
全文摘要
一种编码技术领域的简化低密度校验码译码器实现的方法,包含一系列的BNU模块和CNU模块,在CNU模块中使用n选2的选择器、选择模块和计算模块,步骤如下BNU模块的初始化;CNU模块对接收的信息的处理及传递处理后的信息;BNU模块对接收的信息的处理及传递处理后的信息;对信息进行判断及对判断以后的结果进行校验,决定是否中止迭代。本发明最大的创新点在于在选择最小和次小值的时候,使用了n选2的复选器进行硬件实现,同普通的简化算法(使用n选3复选器)相比进一步简化,在保持原有的良好的性能的同时,大大降低了硬件实现的复杂度。
文档编号H03M13/00GK1731685SQ20051002907
公开日2006年2月8日 申请日期2005年8月25日 优先权日2005年8月25日
发明者朱嘉, 潘宇, 倪俊枫, 张海滨, 徐友云 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1