一种集合译码方法和集合译码器与流程

文档序号:12828619阅读:180来源:国知局
一种集合译码方法和集合译码器与流程

本发明涉及通信技术领域,特别涉及一种集合译码方法和集合译码器。



背景技术:

差错控制编码又称信道编码,能保证通信系统中数据传输的可靠性。低密度奇偶校验码(ldpc码)是一类性能逼近香农极限的线性纠错码,并广泛应用于对数据要求可靠性高的传输系统中。在过去的十余年里,二进制ldpc码因其出色的表现引起了相当大的关注并得到快速发展。多进制ldpc码可以获得比二进制ldpc码更大的性能增益,然而代价是极其高昂的计算复杂度和存储内存,因此阻碍了多进制ldpc码在实际中的应用和发展。

多进制ldpc码的译码校验矩阵的二分图即tanner图,由变量节点、校验节点和连接校验节点和变量节点的边构成。现有的多进制ldpc码的译码方法主要有两种:基于置信度传播(bp)的译码算法和基于大数逻辑(mlgd)的译码算法。基于bp的译码算法是译码性能最好的多进制信息传播译码算法,但是其译码复杂度也最大。对于有限域gf(q)(2r)下的多进制ldpc码,基于bp的译码算法在译码过程中,对每个码字符号需要存储该符号全部q个域元素的置信度,并传播长度为q的置信度向量。在每个校验节点的更新运算时需要q2数量级的计算复杂度。而基于mlgd的译码算法在译码过程中对于每个码字符号,只存储并传递该码字符号中可靠性最大的域元素。在译码过程中只进行简单的有限域加法和整数加法运算,因此可以显著降低基于bp译码算法的计算和存储复杂度。然而,基于mlgd的译码方法存在严重的性能损失现象,并且随着ldpc码校验矩阵列重的减小,其 性能损失越严重,甚至可能过早出现错误平台。因此,如何在计算复杂度、存储复杂度与译码性能之间实现平衡是多进制ldpc码译码亟待解决的难题。



技术实现要素:

本发明所要解决的技术问题是如何降低译码过程中的计算复杂度。

为此目的,本发明提出了一种集合译码方法,包括:根据符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单位进行译码过程中的计算。

优选地,该方法包括以下步骤:

s1:接收比特信息,计算符号信息向量或直接接收符号信息向量;

s2:将所述符号信息向量初始化至二分图中,并将所述符号信息向量传递给对应的校验节点;

s3:根据所述符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单位在所述校验节点进行校验节点更新计算,并同时进行码字判决,若是合法的码字,则终止译码,输出译码结果;否则将校验节点更新计算结果传递给变量节点;

s4:进行变量节点更新计算,将计算结果传递给所述校验节点再次进行码字判决,如此反复迭代直到译出正确码字或直到达到最大迭代次数为止。

优选地,该方法还包括:将所述置信度在第一预设范围的所述符号信息向量划分为多个集合,每个集合含有一个符号;将所述置信度在第二预设范围的所述符号信息向量划分为多个集合,每个集合含有多个符号;其中,所述第一预设范围的置信度比所述第二预设范围的置信度高。

优选地,所述以集合为单位进行译码过程中的计算包括:将一个符号信息向量中含有多个符号的集合与另一个符号信息向量中置信 度最高的集合进行计算。

优选地,所述将一个符号信息向量中含有多个符号的集合与另一个符号信息向量中置信度最高的集合进行计算具体包括:

将一个符号信息向量中含有多个符号的集合的编号与另一个符号信息向量中置信度最高的集合的符号进行加和运算。

优选地,所述以集合为单位进行译码过程中的计算包括:

根据不同集合置信度的不同,将多个符号信息向量之间的集合按照预设的路径进行计算。

优选地,该方法还包括:同一个集合的多个符号在计算过程中使用相同的置信度。

优选地,所述含有多个符号的集合的置信度是所述多个符号的置信度的最大值。

另一方面,本发明还提供了一种集合译码器,其特征在于,包括:接收单元、初始化单元、校验节点更新计算单元、变量节点更新计算单元;

所述接收单元用于接收比特信息,计算符号信息向量;或直接接收符号信息向量;

所述初始化单元用于将所述符号信息向量初始化至二分图中,并将所述符号信息向量传递给对应的校验节点;

所述校验节点更新计算单元用于根据所述符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单位在所述校验节点进行校验节点更新计算,并同时进行码字判决,若是合法的码字,则终止译码,输出译码结果;否则将校验节点更新计算结果传递给变量节点;

变量节点更新计算单元用于进行变量节点更新计算,将计算结果传递给所述校验节点再次进行码字判决,如此反复迭代直到译出正确码字或直到达到最大迭代次数为止。

优选地,所述校验节点更新计算单元还用于将置信度在第一预设范围的所述符号信息向量划分为多个集合,每个集合含有一个符号;将置信度在第二预设范围的所述符号信息向量划分为多个集合,每个集合含有多个符号;其中,所述第一预设范围的置信度比所述第二预设范围的置信度高

通过采用本发明所提供的一种集合译码方法和集合译码器,降低了译码复杂度,尤其降低了在校验节点的计算复杂度。同时本发明通过合理划分集合、采用合适的集合置信度可以提供不低于现存译码方法的性能,提供高质量的译码结果,提高译码效率。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了一个5行10列的ldpc码校验矩阵的二分图示意图;

图2示出了基于二分图的迭代译码方法的典型流程示意图;

图3示出了ems算法中校验节点的单步计算过程示意图;

图4示出了本发明集合译码方法的流程示意图;

图5示出了本发明集合划分方法的一种示例示意图;

图6示出了本发明集合译码方法中基于路径进行计算的一个可能示例;

图7示出了本发明集合译码器中校验节点更新计算单元的一种示例示意图。

具体实施方式

下面将结合附图对本发明的实施例进行详细描述。

本发明的集合译码方法可以适用于任意概率译码器,本发明以多进制ldpc码为例对本发明的实施方式展开详细描述。

如图1所示,是一个(10,5)ldpc码校验矩阵的二分图表示,又称为tanner图,tanner图中的节点被分成变量节点vn和校验节点cn 两类。其中每一个变量节点vn都对应译码矩阵中的一列,代表码字中的一个符号;每一个校验节点对应译码矩阵中的一行,代表一个校验方程;连接变量节点与校验节点之间的线对应译码矩阵中不为0的元素,称之为边。

如图2所示,基于二分图的迭代译码方法的典型流程如下:由信道接收到的比特信息序列或符号信息向量序列经由变量节点初始化入二分图,传递给对应的校验节点。在校验节点进行校验节点更新计算,同时进行码字判决,若是合法的码字,则终止译码,输出译码结果;否则将校验节点更新计算结果传递给变量节点。然后进行变量节点更新计算,将计算结果传递给校验节点再次进行码字判决。如此反复迭代直到译出正确码字或达到最大迭代次数为止。

在传统的多进制ldpc码迭代译码过程中,计算是基于符号的,以ems算法中校验节点的计算为例,计算公式为:

u和v分别是两个已按照置信度大小排序的符号信息向量,向量中每个元素都有两个属性:符号和置信度(llr)。同一个向量中不同元素的符号不同。符号之间的加法遵从伽罗华域的加法运算,置信度之间的加法遵从实数加法运算。e也是一个已按照置信度大小排序的符号信息向量,由u和v向量计算得出。e中符号为x的元素的置信度按如下方式计算:对于u中符号为xu的元素,如果在v中存在一个符号为xv的元素使得xu+xv=x(伽罗华域加法),则将二者的置信度相加;u中可能存在多个不同的xu都能在v中找到对应的元素xv,则最终e中符号x的置信度取这些所有可能结果中的最小值。

如图3所示,输入符号信息向量a,b已根据置信度由大到小排序。当输入数据有nm个不同符号时,每步需要计算次。

本发明提供了一种集合译码方法,根据符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单 位进行译码过程中的计算。其中优选地,如图4所示,该集合译码方法可以包括以下步骤:s1:接收比特信息,计算符号信息向量或直接接收符号信息向量;s2:将所述符号信息向量初始化至二分图中,并将所述符号信息向量传递给对应的校验节点;s3:根据所述符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单位在所述校验节点进行校验节点更新计算,并同时进行码字判决,若是合法的码字,则终止译码,输出译码结果;否则将校验节点更新计算结果传递给变量节点。s4:进行变量节点更新计算,将计算结果传递给所述校验节点再次进行码字判决,如此反复迭代直到译出正确码字或直到达到最大迭代次数为止。具体地,将迭代译码过程中符号信息向量的nm个不同符号划分为nc(nc<nm)个集合,以集合为单位进行迭代译码过程中的计算。仍以校验节点的计算为例,如图5所示,此时每步只需要计算次。

优选的,所述将符号信息向量划分为多个集合包括:根据所述符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合。将置信度在第一预设范围的所述符号信息向量划分为多个集合,每个集合含有一个符号;将置信度在第二预设范围的所述符号信息向量划分为多个集合,每个集合含有多个符号;其中,所述第一预设范围的置信度比所述第二预设范围的置信度高。具体的,根据符号信息向量不同符号的置信度进行划分,将置信度高的划分为多个集合,每个集合含有一个符号,将置信度低的也划分为多个集合,每个集合有多个符号,以nm=8,nc=4为例,一种可能的划分方式如图5所示,原始符号信息向量中置信度较高的前两个元素分别独自划分为一个集合,后六个元素按置信度高低每三个一组划分为两个集合。

根据不同集合置信度的不同,在迭代译码计算过程中,我们可以只选择置信度较高的集合进行运算,从而进一步降低计算复杂度。优选地,所述以集合为单位进行译码过程中的计算包括:将一个符号信 息向量中含有多个符号的集合与另一个符号信息向量中置信度最高的集合进行计算。具体的,以图5中的划分为例,符号信息向量a,b分别被划分为四个集合a1,a2,a3,a4及b1,b2,b3,b4,其中集合a1,a2,b1,b2中都只含有一个元素,即集合a1,a2,b1,b2中都只含有一个符号,而集合a3,a4,b3,b4中都含有多个元素,即含有多个符号。因此在计算过程中,对a1,a2与b1,b2集合可以计算它们之间两两的计算结果,而对a3,a4只计算它们与b1集合之间的计算结果,对b3,b4只计算它们与a1集合之间的计算结果。

优选的,为了降低计算复杂度,同一个集合的多个符号在计算过程中使用相同的置信度。所述含有多个符号的集合的置信度是所述多个符号的置信度的最大值。具体的,在基于符号的译码方法中,不同符号可能拥有不同的置信度,而本发明中是基于集合的译码方法,集合根据置信度进行划分,对于含有多个符号的集合,为了降低计算复杂度,同一个集合的所有符号在计算过程中使用相同的置信度。含有多个符号的集合的置信度等于该集合中所有符号原置信度的最大值,以图5中的划分为例,集合a1的置信度γa1等于原符号信息向量中符号a1的置信度γa1,同样的,集合a2的置信度集合a3的置信度γa3=γa3,集合a4的置信度γa4=γa6。

为了降低译码复杂度,所述将一个符号信息向量中含有多个符号的集合与另一个符号信息向量中置信度最高的集合进行计算包括:将一个符号信息向量中含有多个符号的集合的编号与另一个符号信息向量中置信度最高的集合的符号进行加和运算。具体地,将含有多个符号的集合根据集合内所包含的元素由一个唯一的编号表示,含有一个符号的集合仍使用该符号表示,则在迭代译码过程中的计算为一个集合编号与一个符号的加和运算,该运算得到一个新的集合编号,且新的集合编号对应的集合中的符号是含有多个符号的集合中的所有元素的符号分别和所加符号之和。仍以图5中的划分为例,集合a1只 包含一个元素a1,则将a1由符号a1表示;集合b3中包含三个元素b3,b4,b5,将b3由编号β1表示。集合b3与集合a1之间的运算,为β1+a1,运算结果为一个新的集合编号β2,且编号β2对应的集合中也包含有三个元素,分别为a1+b3,a1+b4,a1+b5。

此外,如图6所示,以集合为单位进行译码过程中的计算还可以采用基于路径的计算过程:根据不同集合置信度的不同,将多个符号信息向量之间的集合按照预设的路径进行计算。其中,图6所示的计算过程与图5所示的计算过程是两种不同的方法,图5每次只对两个端口进行运算,对于多端口需要将两个端口的运算结果与其它端口进行运算,属于串行或半并行的方法,而图6所示的计算过程每次可以直接对所有端口进行运算,属于并行的方法。

如图6所示,对于有多个输入端口的计算单元,可以按照已规划好的路径选择对应的集合进行运算,并且根据输入信息向量置信度分布的不同可从多种规划方案中选择一个最合适的路径方案。

具体地,图6所示为一个五端口输入计算单元的一种可能的路径规划示意图。根据输入的信息向量置信度分布的不同,计算单元从若干固定的已规划路径方案中选择一种,直接对相应的集合进行运算,而不再进行比较与排序。该计算过程输入必须是已排序的信息向量,但是输出的信息向量可能是未排序的,但是只要保证其中元素不含相同的符号即可,是否已排序不会影响之后的计算过程。由于节省了排序比较单元,所以会大幅减少资源占用。

另一方面,采用上述的集合译码方法,本发明还提供了一种集合译码器,包括:接收单元、初始化单元、校验节点更新计算单元、变量节点更新计算单元;所述接收单元用于接收比特信息,计算符号信息向量;或直接接收符号信息向量;所述初始化单元用于将所述符号信息向量初始化至二分图中,并将所述符号信息向量传递给对应的校验节点;所述校验节点更新计算单元用于根据所述符号信息向量的不 同符号的置信度的不同,将所述符号信息向量划分为多个集合,以集合为单位在所述校验节点进行校验节点更新计算,并同时进行码字判决,若是合法的码字,则终止译码,输出译码结果;否则将校验节点更新计算结果传递给变量节点;变量节点更新计算单元用于进行变量节点更新计算,将计算结果传递给所述校验节点再次进行码字判决,如此反复迭代直到译出正确码字或直到达到最大迭代次数为止。

优选的,所述校验节点更新计算单元根据所述符号信息向量的不同符号的置信度的不同,将所述符号信息向量划分为多个集合。所述校验节点更新计算单元将置信度在第一预设范围的所述符号信息向量划分为多个集合,每个集合含有一个符号;将置信度在第二预设范围的所述符号信息向量划分为多个集合,每个集合含有多个符号;其中,所述第一预设范围的置信度比所述第二预设范围的置信度高。所述含有多个符号的集合与置信度最高的集合进行运算。同一个集合的多个符号在计算过程中使用相同的置信度。所述含有多个符号的集合的置信度是所述多个符号的置信度的最大值。

其中较优的,该集合译码器还包括数据存储单元,所述数据存储单元用于存储所述符号信息向量。具体的,在本发明设计的集合译码器中,符号信息向量的符号和置信度分别由个数为nm和nc的两组存储单元s和l保存,仅保存置信度的存储单元l中的数据参与译码迭代过程中的计算、比较等过程,存储单元s中的数据只用于生成新的符号。对应于图5的计算,如图7所示,为本发明集合译码器中校验节点更新计算单元的可能示例,该校验节点更新计算单元中有三个数据选择模块,三个数据选择模块在最小值模块上方,三个数据选择模块分别用γa1+γb1、γa1+γb2、γa2+γb1进行初始化,对三个选择模块的输出进行比较,最后通过最小值模块将最小值输出,并对提供最小值的数据选择模块进行更新。当最小值由第一个数据选择模块提供时,若此时该模块中数据为γa2+γb2,则不再更新该模 块,且之后该模块的输出不再参与比较,否则将该模块中数据更新为γa2+γb2;当最小值由第二个数据选择模块提供时,假设此时该模块中数据为γa1+γbi,则将该模块数据更新为γa1+γb(i+1);当最小值由第三个数据选择模块提供时,假设此时该模块中数据为γai+γb1,则将该模块数据更新为γa(i+1)+γb1。当第k个模块的输出最小时,最小值模块输出该数据,并控制数据选择模块k读入下一个数据,其余数据选择模块数据不变。同时最小值模块根据k生成地址,控制寄存器lu、lv及su、sv分别输出数据进行计算。地址寄存器中保存三个数据选择模块各自下一个数据的地址,根据最小值模块的比较结果控制两组寄存器的输出。而当采用图6所示的基于路径进行计算时,译码装置只需使用一个存储单元储存预先规划好的若干路径方案,根据路径方案选择输入的信息向量中对应的集合直接进行运算即可。

通过采用本发明所提供的集合译码方法和集合译码器,降低了译码复杂度,尤其降低了在校验节点的计算复杂度。同时本发明通过合理划分集合、采用合适的集合置信度可以提供不低于现存译码方法的性能,提供高质量的译码结果,提高译码效率。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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