用于非二进制LDPC码解码的校验子计算的基本校验节点处理的制作方法

文档序号:14196946阅读:242来源:国知局
用于非二进制LDPC码解码的校验子计算的基本校验节点处理的制作方法

本发明一般涉及数字通信,尤其涉及用于对使用纠错码编码的信号进行解码的方法和设备。



背景技术:

纠错码允许检测和校正由信道噪声、干扰或在其存储或从发射机到接收机传输期间影响数据的任何损害引起的错误。错误的检测和/或校正依赖于在编码过程期间向原始数据添加冗余数据。

在许多数据传输和存储系统和设备中使用纠错码来提供在有噪声的不可靠的传输信道上数字数据的可靠和可能无错的传送。这些技术正面临着巨大的需求,并且被用于各种应用,包括例如在无线自组织网络(例如在wi-fi802.11中标准化)、在无线电通信系统(例如,3g,4g/lte,5g和超过这些的)、在基于光纤的传输系统以及在数字视频广播(例如在dvb-c2,dvb-s2x和dvb-t2中标准化)中的语音和多媒体传输。

线性码属于纠错码类别。它们的特征在于码字的线性特性,根据该特性,两个或更多个码字的任何线性组合是码字。

根据使用卷积码的第一线性“卷积编码”方法,编码过程基于逐符号对数据进行编码。

根据第二线性“块编码”方法,编码处理基于通过固定大小的符号块对数据进行编码。示例性的线性块码包括汉明码(hammingcodes)、里德-所罗门码(reed-solomoncodes)、turbo码和低密度奇偶校验(ldpc)码。

纠错码可能是二进制或非二进制的。在q=2阶的伽罗瓦域(galoisfields)gf(q)上构造的码是二进制码。因此,任何码字的各种分量(以下称为“符号”)属于值集合{0,1}。在q>2阶的伽罗瓦域gf(q)上构造的码是非二进制的。因此,各种符号取gf(q)中的值。

给定线性特性,任何线性纠错码都可以由通常由g表示的发生器矩阵和通常用h表示的奇偶校验矩阵表示,由关系g.ht=0链接。发生器和奇偶校验矩阵的条目属于在其上构建代码的域。奇偶校验矩阵定义了设计成被码字所满足的奇偶校验约束。特别地,ldpc码由包括比非零条目数量高很多的零条目数量的稀疏奇偶校验矩阵指定。

可以基于与基础代码的奇偶校验矩阵相关联的代码的图形表示(即所谓的“tanner图”)来执行对使用线性纠错码编码的数据进行解码。线性纠错码的图形表示包括两组节点:被称为“变量节点”的第一组节点和被称为“校验节点”的第二组节点。变量节点和校验节点通过边链接在一起。变量节点和校验节点形成处理单元。每个变量节点与奇偶校验矩阵的列相关联。每个校验节点与奇偶校验矩阵的行相关联,即与奇偶校验方程相关联。变量节点与校验节点之间的连接是由奇偶校验矩阵的非零条目来确定的。

迭代解码器可用于对使用线性块纠错码编码的数据进行解码。给定表示例如通信信道的输出的编码符号的噪声序列,迭代解码器在多次迭代期间处理噪声序列,使其在每次迭代中更接近原始的编码符号序列。

tanner图表示可用于实现迭代解码。因此,解码处理可以通过经由图形中连接它们的不同边缘在与变量节点和校验节点相关联的处理单元之间的消息的迭代交换来执行。每个变量节点处理单元或校验节点处理单元从图形中的相应连接的节点接收输入消息,并且在处理输入消息之后,将输出消息传送到与图形中的连接节点对应的至少一个处理单元。如果满足所有奇偶校验约束,从而返回解码的码字,或者通过达到最大迭代次数而不满足所有奇偶校验约束,则解码过程停止。

不同变量节点处理单元和校验节点处理单元之间的传递消息携带与编码符号相关联的信息。消息可以包括符号和测量符号的可靠性的度量(以下称为“可靠性度量”)。符号的可靠性度量可以例如对应于其估计的概率密度函数,测量该符号等于用于编码的代码的构造域中的每个值的概率。

早期迭代解码算法被设计用于二进制码并应用于二进制ldpc码。它们是“和积”算法(也称为“信念传播”或“消息传递”算法)以及“最小和”算法,它们都在“n.wibereg,h-a.loeliger和r.kotter,codesanditerativedecodingongeneralgraphs,europeantransactionsontelecommunicationsandrelatedtechnologies,specialissueonturbocoding,1995年6月”中进行了公开。它们在错误解码概率方面提供近似最佳性能。

设计用于非二进制码的迭代解码算法受到“和积”算法的启发。用于非二进制码的示例性迭代解码器包括例如以下公开的“多进制(q-ary)和积”算法:

-“m.daveyandd.mackay,low-densityparitycheckcodesovergf(q),ieeecommunicationsletters,第2卷,第6,第165-167页,1998年6月”,

-“d.j.c.mackayandm.davey,evaluationofgallagercodesforshortblocklengthandhighrateapplications,inproceedingsofimaworkshoponcodes,systemsandgraphicalmodels,1999年”,以及

-“l.barnaultandd.declercq,fastdecodingalgorithmforldpcovergf(q),inproceedingsofieeeinformationtheoryworkshop,第70-73页,2003年4月”。

一些迭代解码算法基于对数尺度计算,通过将积运算转换为简单的求和运算来降低计算复杂度。这种解码方案包括:

-在“h.sadjadpour,maximumaposterioridecodingalgorithmsforturbocodes,inproceedingsofspie,第4045卷,2000年”中公开的'max-log-map'turbo码解码器,

-在“d.declercqandm.fossorier,decodingalgorithmsfornon-binaryldpccodesovergf,ieeetransactionsoncommunications,第55卷,第4,第633–643页,2007年4月”中公开的“扩展最小和”(ems)非二进制ldpc码解码器,以及

-在“v.savin,min-maxdecodingfornon-binaryldpccodes,inproceedingsofieeeinternationalsymposiumoninformationtheory,第960–964页,2008年7月”中公开的‘最小-最大(min-max)’非二进制ldpc码解码器。

ems算法基于变量节点处理单元和校验节点处理单元之间交换的消息的对数域计算。由于ems算法的最大复杂度是由校验节点处理单元执行的计算,所以ems算法对处理的消息应用排序和截断,以进一步减轻校验节点处理单元的计算复杂度和存储器要求。根据与包括在接收到的输入消息中的符号相关联的可靠性度量的顺序执行消息排序。执行消息截断以在给定的输入和/或输出消息中保留最可靠的符号。

可以根据各种架构,对来自排序和截断后的输入消息的校验节点处理单元的级别的输出消息进行计算。现有架构包括“向前-向后”架构和基于校验子的架构。

在“向前-向后”架构中,由校验节点处理单元执行的计算被划分为涉及多个基本校验节点处理单元(以下称为“基本校验节点处理器”)的多个串行计算。每个基本校验节点处理器处理两个或更多个输入消息以产生后续阶段中随后由剩余的基本校验节点处理器使用的中间消息。计算的中间消息基于与解码符号相关联的可靠性度量进行排序。此外,每个基本校验节点处理器执行冗余的消除以抑制包括相同符号的消息,同时保持包括最可靠的冗余符号的消息。基本校验节点处理的示例性算法包括:

-“e.boutillonandl.conde-canencia,bubblecheck:asimplifiedalgorithmforelementarychecknodeprocessinginextendedmin-sumnon-binaryldpcdecoder,electronicsletters,第46卷,第9,第633-634页,2010年4月”中公开的‘bubblecheck’算法,以及

-“e.boutillon,l.conde-canenciaanda.alghouwayel,designofagf(64)-ldpcdecoderbasedontheemsalgorithm,ieeetransactionsoncircuitsandsystems,第60卷,第10,第2644-2656页,2013年10月”中公开的被称为“l-bubble校验”的‘bubblecheck’算法的改进版本。

bubble-check和l-bubblecheck算法基于从两个输入消息中减去由基本校验节点处理器计算的最佳中间结果的搜索空间。

在基于校验子的架构中,校验节点处理单元实现基于校验子的解码。从排序和截断后的输入消息计算输出消息需要两个步骤。在第一步骤中,校验节点处理单元计算涉及所有输入消息的称为“校验子”的一组值。在第二步骤中,与每个输出消息相关联地执行解相关操作。解相关操作在于从所计算的校验子中取消先前从作为所计算的输出消息的接收者的变量节点处理单元接收到的输入消息的贡献。基于校验子的架构公开在:

-“p.schlafer,n.when,m.alles,t.lehnigk-emdenande.boutillon,syndromebasedchecknodeprocessingofhighordernb-ldpcdecoders,inproceedingsoftheinternationalconferenceontelecommunications,第156-162页,2015年4月”;

-“p.schlaferetal.,anewarchitectureforhighspeed,lowlatencynb-ldpcchecknodeprocessing,inproceedingsofieeeinternationalsymposiumonpersonal,indoorandmobileradiocommunications,2015年8月”。

基于校验子的架构允许并行计算,这对于高阶伽罗瓦域是特别有利的。然而,利用这种架构,计算复杂度由计算出的校验子数量所支配,计算出的校验子数量随着输入消息的数量的增加而增加。

向前-向后架构允许降低硬件成本。然而,它引入高延迟,导致系统吞吐量的降低。基于校验子的架构引起了高度的复杂性,主要是由于计算的校验子数量的增加导致的。在实际解码系统中基于校验子的架构的实现需要大量的计算和存储资源,计算和存储资源并不总是可用的。特别地,该架构的一些实际实现不适用于具有高编码率的非二进制码的解码。

因此,需要开发用于在ems解码器中、特别是通常在任何基于tanner图的迭代解码器中实现的校验节点处理单元的高效和低复杂度的架构。



技术实现要素:

为了解决这些和其他问题,提供了一种在解码器中实现的用于对信号进行解码的校验节点处理单元。校验节点处理单元被配置为接收至少三个输入消息并且生成至少一个输出消息。校验节点处理单元包括:

-校验子计算器,被配置为使用至少两个基本校验节点处理器从所述至少三个输入消息确定一组校验子。每个校验子包括符号、与所述符号相关联的可靠性度量以及二进制向量;

-解相关单元,被配置为与至少一个输出消息相关联地确定来自确定的一组校验子的一组候选分量。每个候选分量包括符号和与所述符号相关联的可靠性度量。一组候选分量包括包含了相同符号的一对或多对分量;和

-选择单元,被配置为通过从与所述至少一个输出消息相关联的一组候选分量中选择包括不同符号的分量来确定至少一个输出消息。

根据一些实施例,至少一个基本校验节点处理器可以被配置为从第一消息和第二消息确定中间消息,所述第一消息和第二消息是从接收的至少三个输入消息导出的。中间消息可以包括一个或多个分量和与每个分量相关联的中间二进制向量。每个分量可以包括符号和与所述符号相关联的可靠性度量。此外,包括在中间消息中的一个或多个分量可以被排序为给定顺序的符号的可靠性度量。在这些实施例中,校验子计算器可以被配置为根据从所有输入消息确定的中间消息来确定一组校验子。

根据一些实施例,提供的校验节点处理单元可以在用于对信号进行解码的解码器中实现,该信号使用至少一个纠错码进行编码。来自所接收的至少三个输入消息的每个消息可以包括一个或多个分量,每个分量包括符号和与该符号相关联的可靠性度量。在这样的实施例中,至少一个基本校验节点处理器可以被配置为通过对所述至少一个纠错码的构造域应用加法运算来确定包括在中间消息的分量中的符号。加法操作可以应用于包括在第一消息的分量中的符号以及包括在第二消息的分量中的符号。

根据一些实施例,至少一个基本校验节点处理器可以被配置为通过对给定的代数结构应用加法运算来确定包括在中间消息的分量中的可靠性度量。加法运算可以应用于包括在第一消息的分量中的可靠性度量以及包括在第二消息的分量中的可靠性度量。

在一些实施例中,可以在由实数域、整数域和自然数域组成的组中选择给定的代数结构。

根据一些实施例,校验子计算器还可以被配置为将包括在至少三个输入消息中的每个分量与初始二进制值相关联。因此,第一消息和第二消息的每个分量可以与从初始二进制值导出的二进制向量相关联。在这样的实施例中,至少一个基本校验节点处理器可以被配置为通过应用向量级联操作来确定与中间消息的分量相关联的中间二进制向量。向量级联操作可以应用于与第一消息的分量相关联的二进制向量和与第二消息的分量相关联的二进制向量。

在一些实施例中,包括在每个输入消息中的分量可以按照包括在这些分量中的符号的可靠性度量的给定顺序进行排序。在这样的实施例中,校验子计算器可以被配置为将包括最可靠符号的分量与等于预定义的第一值的初始二进制值进行关联,并且将剩余分量与等于预定义的第二值的初始二进制值进行关联。

根据一个实施例,预定义的第一值可以等于零,并且预定义的第二值可以等于1。

此外,包括在每个校验子中的二进制向量可以包括多个比特,每个比特与输出消息相关联。在这样的实施例中,解相关单元可以被配置为通过在所确定的一组校验子中选择包括在其中与给定输出消息相关联的比特等于预定义的第一值的二进制向量的校验子来确定与给定输出消息相关联的一组候选分量。

根据一个实施例,基本校验节点处理器可以以串行架构来实现。

根据另一个实施例,基本校验节点处理器可以以树架构来实现。

仍然根据另一个实施例,基本校验节点处理器可以以混合架构实现,该混合架构包括以串行架构实现的一些基本校验节点处理器和以树架构实现的一些基本校验节点处理器。

根据一些实施例,选择单元可以被配置为通过根据一组候选分量中的符号的可靠性度量来从与至少一个输出消息相关联的一组候选分量中选择包括不同符号的预定数量的分量来确定至少一个输出消息。

在一些实施例中,所述至少一个纠错码可以是非二进制纠错码。

还提供了一种在解码器中实现的校验节点处理单元处计算至少一个输出消息的方法。解码器被配置为对信号进行解码。校验节点处理单元被配置为接收至少三个输入消息。该方法包括:

-从所述至少三个输入消息确定一组校验子。每个校验子包括符号、与符号相关联的可靠性度量和二进制向量;

-与至少一个输出消息相关联地确定来自该组校验子的一组候选分量。每个候选分量包括符号和与该符号相关联的可靠性度量。该组候选分量包括包含了相同符号的一对或多对分量;以及

-通过从与所述至少一个输出消息相关联的一组候选分量中选择包括不同符号的分量来确定至少一个输出消息。

还提供了一种用于在解码器中实现的校验节点处理单元处计算至少一个输出消息的计算机程序。解码器被配置为对信号进行解码。校验节点处理单元被配置为接收至少三个输入消息。该计算机程序产品包括:

非暂时性计算机可读存储介质和存储在非暂时性计算机可读存储介质上的指令,指令在由处理器执行时使得处理器:

-从至少三个输入消息确定一组校验子。每个校验子包括符号、与符号相关联的可靠性度量和二进制向量;

-与至少一个输出消息相关联地确定来自该组校验子的一组候选分量。每个候选分量包括符号和与该符号相关联的可靠性度量。该组候选分量包括包含了相同符号的一对或多对分量;以及

-通过从与所述至少一个输出消息相关联的一组候选分量中选择包括不同符号的分量来确定至少一个输出消息。

有利地,各种实施例允许减少在校验节点处理单元处的输出消息的计算中涉及的计算的校验子的数量。结果,可以显著地减少在纠错码解码器中实现的校验节点处理单元处的计算复杂度。

此外,各种实施例允许来自基于校验子的解码的并行性和基本校验节点处理的线性复杂度的双重优点。这样的组合允许降低校验节点处理单元的硬件实现的成本、吞吐量改进和硅面积节省。

在考察附图和详细描述后,本发明的其它优点对于技术人员而言将变得清楚。

附图说明

并入并构成本说明书的一部分的附图连同上面给出的本发明的一般描述以及下面给出的实施例的详细描述一起说明了本发明的各种实施例。

图1是根据一些实施例的对通信系统的本发明的示例性应用的框图;

图2是根据一些实施例的迭代解码器的框图;

图3是示出根据一些实施例的校验节点处理单元的结构的框图;

图4是表示根据本发明的实施例的基本校验节点处理单元的结构的框图。

图5是表示根据在串行架构中实现多个基本校验节点处理器的实施例的校验子计算器的结构的框图;

图6是表示根据多个基本校验节点处理器以树架构实现的实施例的校验子计算器的结构的框图;

图7是表示根据使用基本校验节点处理器的串行实现的一些实施例的校验节点处理单元的结构的框图。

图8是描绘根据一些实施例的基于使用多个基本校验节点处理器的校验子解码在校验节点处理单元处确定输出消息的方法的流程图;

图9是说明根据一些实施例的由基本校验节点处理器处理的两个输入消息的分量的矩阵表示的图;

图10是说明根据实施例的由基本校验节点处理器处理的两个输入消息的分量的矩阵表示的图;

图11是说明根据另一实施例的由基本校验节点处理器处理的两个输入消息的分量数量的矩阵表示的图;

图12是说明根据本发明的一些实施例的使用涉及多个基本校验节点处理器的校验子解码获得的帧错误率的图;

图13是说明根据本发明的一些实施例的基本校验节点处理器的数量和基本校验节点处理器的输入/输出的数量形式的复杂度的表格;以及

图14是表示根据在混合架构中实现多个基本校验节点处理器的实施例的校验子计算器的结构的框图。

具体实施方式

本发明的实施例提供了具有降低的计算复杂度的用于对使用纠错码编码的信号进行解码的设备、方法和计算机程序产品。特别地,各种实施例提供了在用于对使用非二进制纠错码编码的信号进行解码的迭代解码算法中实现的校验节点处理单元的改进的架构。

根据各种实施例的方法、设备和计算机程序产品可以在各种类型的数字数据传输和存储系统中实现,并且可以用于不同类型的应用中,例如有线、无线和光通信、固态数据存储设备、磁光记录,数字电视和视频广播。

将参考数字通信系统对本发明的一些实施例进行以下描述,仅用于说明的目的。然而,本领域技术人员将容易地理解,本发明的各种实施例可以集成在其他类型的系统(例如有线,无线,声学,光学和分子系统等)中。

此外,仅为了说明的目的,将参考线性块纠错码对本发明的一些实施例进行以下说明,但是本领域技术人员将容易地理解本发明的各种实施例可以应用于任何类型的线性码(包括卷积码),更一般地应用于任何类型的纠错码。

参考图1,示出了本发明在数字通信系统100中的示例性的实现。通信系统100可以包括发射机设备10和接收机设备12。发射机设备10(以下称为“发射机”)被配置为经由传输信道11将数据信息传送到接收机设备12(以下称为“接收机”)。

根据本发明的一些实施例,发射机10可以包括纠错码(ecc)编码器103,其被配置为使用线性块纠错码将由u表示的数字输入数据块101编码成码字c。接收机12可以被配置为通过传输信道11接收编码数据或码字的噪声副本p。接收机12可以包括纠错码解码器123,其被配置为将数字输出数据块125作为原始数字输入数据块101的估计来输送。

数字输入数据101可以在被ecc编码器103编码之前被预先压缩。适于增加信息吞吐量的任何源编码方案(图1中未示出)可以用于执行压缩。由ecc编码器103编码的数据可以由调制器105进一步调制。调制器105可以被配置为将编码数据映射到模拟信号s并将其映射到传输信道11上。

接收机12可以包括被配置为执行反向功能的同源处理装置。它可以包括解调器121,其被配置为通过在由ecc解码器123进行ecc解码之前从传输信道执行接收信号p的解调来生成信号y。解调器121可以被配置为将接收到的信号或信道输出移动返回进入基带并执行低通滤波、采样和量化。可以使用任何源解码器(图1中未示出)进一步解压缩由ecc解码器123解码的数据。ecc解码器123可以被配置为实现根据本发明的各种实施例的涉及多个校验节点处理单元的迭代解码算法。

在本发明在诸如计算机网络系统的有线通信系统的应用中,发射机10和/或接收机12可以是被配置为在有线网络中操作的任何设备。在这种应用中的示例性设备包括连接到小面积或大面积有线网络的计算机、路由器或交换机。此外,在这种应用中,传输信道11可以是用于确保在不同连接的设备之间传送数据的任何类型的物理电缆。

在本发明在诸如自组织无线网络、无线传感器网络和无线电通信系统之类的无线通信系统的另一应用中,发射机10和/或接收机12可以是被配置为在无线环境中工作的任何类型的固定或移动无线设备。适用于这种应用的示例性设备包括膝上型计算机、平板计算机、移动电话、机器人、iot设备、基站等。传输信道11可以是适合于这种类型的应用的任何无线传播介质。此外,传输信道11可以容纳多个发射机10和接收机12。在这样的实施例中,多址技术和/或网络编码技术可以与纠错码组合使用。示例性的多址技术包括时分多址(tdma)、频分多址(fdma)、码分多址(cdma)和空分多址(sdma)。

在本发明在光通信系统例如基于光纤的系统的另一个应用中,发射机10和接收机12可以是被配置成分别发送和接收通过光链路传播的数据信息的任何光收发机设备。示例性的光通信系统包括偏振分复用(pmd)和模分复用(mdm)系统。

对于任何类型的有线(例如基于光纤),无线或深空(例如,卫星,望远镜,空间探测器等)通信系统,传输信道11可以是任何有噪声的信道。噪声可能是由于系统组件的热噪声或被天线拦截的干扰辐射引起的。其他的示例性噪声源包括切换、手动中断、电火花和闪电。在一些实施例中,总噪声可以由加性高斯白噪声(awgn)建模。

此外,根据本发明在数字大容量存储设备中的另一个应用,传输信道11可以例如由擦除信道、二进制对称信道或高斯信道来建模。在这种应用中,传输信道11可以是任何类型的存储设备,其可被发送到(即,写入)以及从其接收(即,读取)。

发射机10和接收机12可以配备有单个天线或多个天线。特别地,在存在多个发射和/或接收天线的情况下,空时编码和解码技术可以与纠错编码和解码结合使用。

此外,编码数据可以在一个或多个频带上发送。当编码数据在多个频带上发送时,调制器105可以使用诸如ofdm(正交频分复用)和fbmc(滤波器组多载波)的多载波调制格式。

根据各种实施例,ecc编码器103可以实现由指定的线性块纠错码;n和k分别指代码字的长度和编码数据块的长度。ecc编码器103相应地将长度为k的消息向量u编码为码字c,c是长度为n的向量。因此,码字c包括n个元素,也称为“符号”。在n个符号中,n-k个符号对应于冗余符号,也称为“奇偶校验符号”。额外奇偶校验符号的功能是允许接收机12检测并可能校正在传输期间发生的任何错误。

对于在伽罗瓦域上构造的线性码,通常用gf(q)表示,其中q≥2表示码的基数,符号取gf(q)中的值。因此,码字c是每个都属于gf(q)的n个符号的向量。如果符号属于gf(2),则代码为“二进制”。相反,当q>2时,代码被限定为“非二进制”。

线性码可以使用由g表示的发生器矩阵和由h表示的奇偶校验矩阵以矩阵形式表示。使用向量的行符号,发生器矩阵g的尺寸为k×n,而奇偶校验矩阵的尺寸为(n-k)xn。两个矩阵通过关系g.ht=0链接。另外,两个矩阵的条目都属于对应的伽罗瓦域。使用矩阵表示,任何码字c满足方程c.ht=0。该方程也称为“奇偶校验方程”。它定义了设计为由任何码字来满足的n个奇偶校验约束。

与矩阵表示相关联,可以使用称为“tanner图”的二分图来表示线性码该图包括n个变量节点和n-k个校验节点。每个变量节点i∈{1,2,...,n}与奇偶校验矩阵的列相关联。每个校验节点j∈{1,2,...,n-k}与奇偶校验矩阵的行相关联,即与奇偶校验方程相关联。如果奇偶校验矩阵的条目hij不等于零,即如果hij≠0,则变量节点i连接到校验节点j。表示连接到变量节点i的邻居校验节点的集合。类似地,表示连接到校验节点j的相邻变量节点的集合。变量节点i(等价于校验节点j)的级(degree)对应于集合的基数(cardinality)(相当于集合的基数)。

将参考使用非二进制ldpc码对数据进行编码的ecc编码器103对一些实施例进行以下描述,仅用于说明的目的。然而,本领域技术人员将容易理解,本发明的各种实施例也适用于其他非二进制码,并且通常适用于二进制和非二进制线性块纠错码和非二进制turbo码。

为了示例的目的,ecc解码器123实现非二进制ldpc码解码器,用于使用非二进制ldpc码对由ecc编码器103编码的数据进行解码。ecc解码器123可以实现诸如扩展最小和算法或最小-最大算法之类的任何迭代非二进制ldpc码解码器。

根据ems算法的特定应用,本发明的各种实施例提供了使用ems算法的迭代解码过程中涉及的校验节点处理单元的高效且低复杂度的实现。参考ems算法进行本发明的描述。然而,本领域技术人员将容易地理解,各种实施例适用于诸如最小-最大解码算法的任何迭代非二进制ldpc码解码器。

参考图2,示出了根据使用ems算法的一些实施例的迭代非二进制ldpc解码器123的结构。

迭代解码器123可以被配置为从接收到的噪声序列y确定发射机10发射的码字c的估计它可以在几次迭代中处理信号,使其在每次迭代时更接近发送的码字c。

迭代解码器123可以被配置为基于在发射机10处使用的码的tanner图表示来确定估计因此,迭代解码器123可以包括n个变量节点处理单元217和n-k个校验节点处理单元215。每个变量节点处理单元217映射到tanner图中的一个变量节点。每个校验节点处理单元215映射到tanner图中的一个校验节点。变量节点处理单元217和校验节点处理单元215可以被配置为迭代地交换消息以从噪声序列y估计最可靠的码字

对应于变量节点i的变量节点处理单元217可以被配置为从集合的校验节点处理单元215接收输入消息。变量节点处理单元217还可以被配置为处理这些输入消息并将输出消息递送到集合的至少一个校验节点处理单元215。

类似地,对应于校验节点j的校验节点处理单元215可以被配置为从集合的变量节点处理单元217接收输入消息。校验节点处理单元215还可以被配置为处理这些输入消息并将输出消息递送到集合的至少一个变量节点处理单元217。

可以根据多种调度技术来实现由各种变量节点处理单元和校验节点处理单元执行的处理。

根据第一实现方式,所有变量节点处理单元217可以被配置为在第一轮中操作,然后校验节点处理单元215可以被配置为更新要发送到变量节点的消息。这种具体的调度被称为“洪泛调度”。特别地,校验节点处理单元215可以被配置为串行或并行地操作,其中从2到n-k个校验节点处理单元215可以同时操作。

根据基于“水平调度”的第二实现方式,校验节点处理单元215可以被配置为串行操作,更新连接到校验节点处理单元215的所有变量节点处理单元217。特别地,一组校验节点处理单元215可以被配置为并行操作,更新所有连接的变量节点处理单元217,只要不存在冲突中的变量节点处理单元217(例如,当两个校验节点处理单元215连接到相同的变量节点处理单元217时)。

根据基于“垂直调度”的第三实现方式,变量节点处理单元217可以被配置为串行地操作,更新与它们相连接的所有校验节点处理单元215。

消息的交换可以由变量节点处理单元217初始化。如果处理的信号满足奇偶校验方程,或者如果在不满足所有奇偶校验约束的情况下达到最大迭代次数,则它可以终止。在前一种情况下(如果处理的信号满足奇偶校验方程),则迭代解码器123可以被配置为递送处理后的信号作为原始码字的估计。在后一种情况下(如果在不满足所有奇偶校验约束的情况下达到最大迭代次数),则迭代解码器123可被配置为声明解码失败,但仍然输出在最后一次迭代估计的码字。

如图2所示,迭代解码器123还可以包括被配置为存储接收到的序列y的存储单元211。迭代解码器123还可以包括处理单元213,其被配置为基于从存储单元211加载的接收到的序列y来确定由变量节点处理单元217递送的输出消息的初始值。

变量节点处理单元217和校验节点处理单元215之间交换的消息可以携带与符号相关联的信息。从与变量节点i对应的变量节点处理单元217发送给集合中与校验节点j对应的校验节点处理单元215的消息由ui表示。类似地,从与校验节点j对应的校验节点处理单元215发送到集合中的与变量节点i对应的变量节点处理单元217的消息由vi表示。

根据一些实施例,交换的消息的长度可以等于用于构造线性码的伽罗瓦域的阶。因此,每个交换的消息ui和vi可以是在gf(q)上构造的代码的长度为q的向量。

在与软判决解码相关的其他实施例中,交换的消息可以携带符号和测量符号可靠性的度量(以下称为“可靠性度量”)的值。可靠性度量的值与符号的可靠性有关。在这样的实施例中,每个消息ui和vi可以是包括q对值的向量(以下称为“分量”),分量包括符号及其可靠性度量的值。因此,消息的每个分量相应地对应于一对值,包括:

-gf(q)中的符号的值,以及

-可靠性度量。

在一些实施例中,符号的可靠性度量可以对应于表示符号正确的概率的符号的估计概率密度函数。特别地,可以通过对数似然比(llr)值在对数域中表示可靠性度量。

解码过程的计算复杂度由校验节点处理单元215执行的计算支配。在使用ems算法解码非二进制ldpc码的一个实施例中,由校验节点处理单元215执行的处理的计算复杂度可以减少而不牺牲解码错误性能。

参考图3,示出了根据本发明的一些实施例的校验节点处理单元215的框图。校验节点处理单元215与级dj的校验节点j相关联。这意味着对应的校验节点连接到表示代码的tanner图中的dj个变量节点。因此,校验节点处理单元215可以被配置为与在与dj个连接的变量节点相关联的dj个变量节点处理单元217中的一个或多个变量节点处理单元217交换消息。因此,在给定的迭代中,校验节点处理单元215可以被配置为接收dj个输入消息并且生成至少一个输出消息。输入或输出消息是包括q个分量的向量,每个分量包括符号及其可靠性度量。输入消息可能被排序和/或截断。

为了便于对一些实施例的以下描述的理解,将集中于使用在校验节点处理单元的级处的符号的校验节点处理单元处的处理。因此,图3所示的校验节点处理单元215可以具有被配置为接收由表示的dj个输入消息的级dj,并且生成由表示的dj个输出消息。校验节点处理单元215的级可以由dj≥3有利地给出。

根据使用ems算法的一些实施例,递送到校验节点处理单元215的消息可以被排序和截断,以便仅保持nm,in个最可靠的分量,其中nm,in严格地低于q(nm,in<<q)。排序可以以与符号相关联的可靠性度量的给定顺序(例如按增加顺序或减少顺序)来执行。此外,排序和截断操作可以由变量节点处理单元217或接收消息作为输入的校验节点处理单元215执行。

将参考使用基于校验节点处理单元215接收的输入消息的排序和截断的软输出解码的一些实施例进行以下描述,仅用于说明的目的。在这样的实施例中,每个输入消息ui是包括形式为ui=(ui[0],ui[1],...,ui[nm,in-1])的nm,in个分量的向量,并且每个输出消息vi是包括形式为vi=(vi[0],vi[1],...,vi[nm,out-1])的nm,out≥nm,in个分量的向量。对于j=0,...,nm,in-1的分量包括由表示的符号,以及由表示的该符号相关联的可靠性度量。可以对每个输入消息的分量进行排序,使得包括最可靠符号的分量对应于分量ui[0],其中i=1,...,dj,并且其中j=0,...,nm,in-2。

参考图3,校验节点处理单元215可以包括包含了至少两个基本校验节点处理器311的校验子计算器31。特别地,级dj的校验节点处理单元215可以包括dj-1个基本校验节点处理器311。每个基本校验节点处理器311可以被配置为从第一消息和第二消息确定中间消息,第一消息和第二消息是从输入消息导出的。由u′t表示的中间消息可以包括数量nt个排序的分量和与每个分量相关联的中间二进制向量,包括在给定中间消息中的分量根据其中包括的符号的可靠性度量的给定顺序进行排序。

校验子计算器31可以被配置为从所有输入消息中确定由s={s1,s2,...,sns}表示的一组ns校验子。更具体地,校验子计算器31可以被配置为通过处理所有输入消息来从由校验节点处理器311计算的中间消息确定校验子集合。对于r=1,...,ns,由表示的校验子可以包括由表示的gf(q)符号,与该符号相关联并表示为的可靠性度量和由表示的二进制向量。

使用基本校验节点处理器311来计算校验子,可以减少校验子解码的计算复杂度。实际上,通过使用基本校验节点处理器311,减少了用于确定输出消息的计算的校验子的数量,从而使得可以利用校验子解码的并行性,同时减轻计算复杂度,计算复杂度通常是由于高数量计算校验子导致的。此外,基本校验节点处理器311在所计算的中间消息中提供排序分量(取决于符号的可靠性度量的顺序)。结果,可以消除在校验子计算之后常规应用的排序操作,从而能够降低排序过程所需的计算复杂度以及降低实现成本。

根据一些实施例,校验子ns的数量可以大于或等于每个输入消息中的分量的数量,并且可以取决于伽罗瓦域的顺序。

例如,在gf(64)中,校验子的数量可以由ns=3nm,out=9nm,in给出,每个输出消息中包括的分量的数量通常等于nm,out=20。

在考虑gf(256)的另一个示例中,校验子的数量可以由ns=3nm,out=25nm,in给出,每个输出消息中包括的分量的数量通常等于nm,out=60。

此外,在gf(1024)的另一示例中,校验子的数量可以由ns=3nm,out=45nm,in给出,每个输出消息中包括的分量的数量通常等于nm,out=150。

根据一些实施例,每个基本校验节点处理器311可以被配置为通过对包括在第一消息的分量中的符号以及包括在第二个消息的分量中的符号应用伽罗瓦域上的加法运算来确定包括在中间消息的分量中的符号。

此外,每个基本校验节点处理器311可以被配置为通过对包括在第一消息的分量中的可靠性度量以及包括在第二个消息的分量中的可靠性度量应用给定代数结构上的加法运算来确定与包括在中间消息的分量中的符号相关联的可靠性度量。

根据一些实施例,可以在由实数的域整数的域和自然数的域组成的组中选择代数结构。

例如,在量化的硬件实现和软件实现中,每个基本校验节点处理器311可以被配置为通过在整数域或自然数域上应用加法运算来确定与中间消息的分量中包括的符号相关联的可靠性度量,使复杂度降低。

根据一些实施例,校验子计算器31还可以被配置为对初始二进制值与输入消息ui中包括的每个分量ui[j]进行关联,其中i=1,...,dj且j=0,...,nm,in-1。

根据一些实施例,校验子计算器31可以被配置为根据可靠性度量对初始值与分量进行关联。特别地,校验子计算器31可以被配置为对包括最可靠符号的分量与等于预定义的第一值的初始二进制值进行关联,并且对剩余分量与等于预定义的第二值的初始二进制值进行关联。

根据一些实施例,预定义的第一值可以等于零(‘0’),并且预定义的第二值可以等于一(‘1’)。在这样的实施例中,与分量ui[j]相关联的二进制值可以由表示,并且可以由以下给出:

考虑排序后的输入消息,条件等式(1)表明,如果包括在所述分量中的符号是最可靠的符号,则与包括在输入消息中的分量相关联的初始二进制值被赋予比特‘0’值。

根据其他实施例,预定义的第一值可以等于一(‘1’),并且预定义的第二值可以等于一(‘0’)。因此,如果包括在该分量中的符号是最可靠的符号,则与包括在输入消息中的分量相关联的初始二进制值可以等于比特‘1’,即

因此,由给定的基本校验节点处理器311处理的第一消息和第二消息的每个分量可以与从初始二进制值导出的二进制向量相关联。在这样的实施例中,每个基本校验节点处理器311可以被配置为通过应用与第一消息的分量相关联的二进制向量和与第二消息的分量相关联的二进制向量的向量级联来确定与中间消息的分量相关联的中间二进制向量。

特别地,基本校验节点处理器311可以被配置为从两个输入消息确定中间消息和与中间消息的每个分量相关联的中间二进制向量,第一消息和第二消息分别等于第一输入消息和第二输入消息。

为了说明基本校验节点处理器311对中间消息的计算,将参照处理等于输入消息的第一消息和第二消息进行以下描述。图4示出了根据这种实施例的基本校验节点处理器311。因此,基本校验节点处理器311可以被配置为处理第一输入消息ul和第二输入消息up,其中l和p≠l在1到dj的索引集合中变化。从这两个每个均包括符号及其可靠性度量的nm,in个分量的输入消息,基本校验节点处理器311可以被配置为确定包括数目nt个分量的u′t表示的中间消息,并且与每个分量u′t[j]相关联地确定表示为的中间二进制向量。根据包括在其中的符号的可靠性度量,可以根据给定的顺序对中间消息的分量进行排序,使得对于所有的j=0,...,nt-2,

根据一些实施例,基本校验节点处理器311可以被配置为通过处理来自第一消息ul的数量nl≤nm,in的分量和/或来自第二消息up的数量np≤nm,in的分量来确定中间消息。

根据其中第一消息和第二消息与输入消息不同的一些实施例,即对应于在架构中由先前的基本校验节点处理器311递送的中间消息,从第一消息处理的分量的数量nl和/或从第二消息处理的分量的数量np可以对应于由基本校验节点处理器311先前递送的分量的数量。换句话说,由给定的基本校验节点处理器311处理的分量的数量可以取决于包括在由位于架构中的先前阶段的基本校验节点处理器处理的之前的中间消息中的分量的数量。

根据一些实施例,基本校验节点处理器311可以被配置为根据三个步骤来确定中间消息u′t。

在第一步骤中,基本校验节点处理器311可以被配置为从第一消息ul的分量和第二消息up的分量确定一组辅助输出分量。辅助输出分量称为“气泡(bubble)”。由bt[u][v]表示的气泡是指从包括在第一消息ul中的分量ul[u]和包括在第二消息up中的分量up[v]获得的气泡。索引u在0,1,...,nl-1中变化,索引v在0,1,...,np-1中变化。气泡包括一对数据,包括:

-由表示的符号,以及

-由表示的其可靠性度量,以及与该对相关联的由表示的二进制向量。气泡的总数因此由nl×np给出。

根据一些实施例,基本校验节点处理器311可以被配置为通过在纠错码的构造域即伽罗瓦域gf(q)上应用加法运算来确定辅助输出分量bt[u][v]的符号加法运算被应用于包括在第一消息ul的分量ul[u]中的符号和包括在第二经处理的消息up的分量up[v]中的符号使得:

在等式(2)中,运算符代表伽罗瓦域上的加法运算。

根据一些实施例,基本校验节点处理器311可以被配置为通过对第一消息ul的分量ul[u]中所包括的可靠性度量以及对第二消息up的分量up[v]中所包括的可靠性度量在给定代数结构上应用加法运算来确定辅助输出分量bt[u][v]的可靠性度量使得:

根据一些实施例,基本校验节点处理器311可以被配置为通过应用向量级联操作来与辅助输出分量bt[u][v]相关联地确定中间二进制向量向量级联操作可以应用于与第一消息ul的分量ul[u]相关联的二进制向量和与第二消息up的分量up[v]相关联的二进制向量使得:

在等式(4)中,运算符||代表级联操作,其从两个或更多个输入标量或向量提供呈向量形式的列表,列表的元素等于级联输入。

在第二步骤中,基本校验节点处理器311可以被配置为根据这些分量中包括的符号的可靠性度量的给定顺序对所确定的nl×np个辅助输出分量进行排序。

在第三步骤中,基本校验节点处理器311可以被配置为在nl×np个排序的辅助输出分量中选择包括最可靠符号的nt个分量,其提供中间消息u′t和与该中间消息中包括的nt个分量的每个分量相关联的二进制向量。

此外,包括在中间消息中的分量的数量nt可以低于nl×np。

基本校验节点处理器311的数量可以取决于在校验子计算器处使用的实现架构。

根据一些实施例,校验子计算器31可以包括以串行架构实现的多个基本校验节点处理器311。

图5示出了实现串行架构的校验子计算器31的结构。因此,对于级dj的校验节点处理单元215,校验子计算器31可以包括dj-1个基本校验节点处理器501-l,其中l=1,...,dj-1。特别地,校验子计算器31可以包括基本校验节点处理器501-1,其被配置为通过处理两个输入消息u1和u2来确定中间消息和与中间消息的每个分量相关联的中间二进制向量。剩余的基本校验节点处理器501-l(其中l=2,...,dj-1)可以都被配置为通过处理一个输入消息和先前由在串行架构中的前一阶段操作的基本校验节点处理器501-a(其中a=1,...,l-2)确定的一个中间消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量。

根据一些其他实施例,校验子计算器31可以包括以并行架构(以下称为“树架构”)实现的多个基本校验节点处理器。在这样的实施例中,校验子计算器31可以包括至少一个基本校验节点处理器311,其被配置为通过处理两个输入消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量。剩余的基本校验节点处理器311可以被配置为通过处理两个输入消息或者通过处理预先由在树架构的以前阶段操作的两个基本校验节点处理器311确定的两个中间消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量。

图6示出了实现树架构的级dj=8的校验子计算器31的结构。如图所示,并行架构包括3个阶段(以下称为“层”)。包括在第一层的基本校验节点处理器601可以被配置为各自通过处理两个输入消息来确定中间消息。包括在第二层处的基本校验节点处理器603可以各自被配置为通过处理由架构的第一层中的基本校验节点601递送的两个中间消息来确定中间消息。包括在第三层处的基本校验节点处理器605可以各自被配置为通过处理由架构的第二层中的基本校验节点603递送的两个中间消息来确定中间消息。

根据一些其他实施例,校验子计算器31可以包括以混合架构实现的多个基本校验节点处理器311,混合架构混合了串行架构和树架构,如图14所示的。在这样的实施例中,校验子计算器31可以包括:至少一个基本校验节点处理器141,被配置为通过处理两个输入消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量,以及至少一个基本校验节点处理器143,配置成通过处理输入消息和由位于混合架构的前一阶段的基本校验节点处理器141生成的中间消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量。

不管校验子解码器中的基本校验节点处理器311的实现架构如何,校验子计算器31可以被配置为根据从所有输入消息获得的架构中的最后的基本校验节点处理器311递送的中间消息来确定ns个校验子的集合s={s1,s2,...,sns}中的每个校验子

例如,在使用如图5所示的串行实现的实施例中,可以从由基本校验节点处理器501-dj-1递送的中间消息来确定该校验子集合。

在使用树实现的另一示例中,如图6所示,可以从位于树架构的最后阶段的基本校验节点处理器605递送的中间消息来确定校验子集合。

因此,包括在校验子sr(其中r=1,...,ns)中的符号可以根据下式表示为输入消息中包括的符号的函数:

在等式(5)中,对于i=1,...,dj的每个索引ui在集合{0,1,...,nm,in-1}中变化。

此外,与符号相关联的可靠性度量可以根据下式表示为输入消息的不同分量中包括的可靠性度量的函数:

此外,包括在校验子sr中的二进制向量可以被写为与输入消息的每个分量相关联的初始二进制值的函数,如由校验子计算器31根据下式所确定的:

根据等式(7),包括在校验子sr中的二进制向量包括dj个比特。

校验节点处理单元215还可以包括解相关单元33,其被配置为与每个输出消息vi相关联地从所确定的ns个校验子集合s确定由v′i表示的一组候选分量。每个候选分量包括符号以及与该符号相关联的可靠性度量。

根据一些实施例(图3所示),解相关单元33可以包括dj个基本解相关单元313-i,其中i=1,...,dj,每个基本解相关单元313-i与输出消息vi相关联并被配置为根据包括在该校验子集合s中的每个校验子中的二进制向量来确定该组候选分量v′i。称为丢弃二进制向量(dbv)的二进制向量因此可以用于指示对于哪个输出边缘而言校验子应该被丢弃,以及因此不被解相关单元33选择。更具体地,基本解相关单元313-i可以被配置为通过在所确定的校验子集合s中选择包括二进制向量的校验子来确定与每个输出消息vi相关联的一组候选分量v′i,使得与输出消息vi相关联的比特等于给定的值。可以使用包括在校验子中的二进制向量中的比特的读数来验证或不验证校验子的选择,以便确定与给定输出消息相关联的一组候选分量。因此,每个基本解相关单元313-i可以被配置为从包括在所选择的校验子中的符号及其可靠性度量确定一组候选分量v′i,候选分量对应于包括在经验证的校验子中的分量。

根据实施例,基本解相关单元313-i可以被配置为通过在所确定的校验子集合s中选择包括二进制向量的校验子来确定与每个输出消息vi相关联的一组候选分量v′i,使得与输出消息vi相关联的比特等于零(‘0’)。

根据另一个实施例,基本解相关单元313-i可以被配置为通过在所确定的校验子集合s中选择包括二进制向量的校验子来确定与每个输出消息vi相关联的一组候选分量v′i,使得与输出消息vi相关联的比特等于一(‘1’)。

根据其中在校验子计算器31中使用基本校验节点处理器311的串行架构的一些实施例,解相关单元33可以被简化,并且可以包括dj-1个基本解相关单位313-i,其中i=1,...,dj-1。

图7是示出根据一些实施例的校验节点处理单元215的结构的框图,其中解相关单元73包括dj-1个基本解相关单元713-i,其中i=1,...,dj-1,基本解相关单元713-i被配置为与输出消息的输出消息vi相关联地确定一组候选分量v′i。在这样的实施例中,可以从由串行架构中的倒数第二个基本校验节点处理器711-dj-2生成的中间消息确定与输出消息相关联的该组候选分量而不执行解相关步骤。可以这样做,因为倒数第二个基本校验节点处理器711-dj-2递送的中间消息不包括先前从输入消息将被发送到的变量节点处理单元217接收的输入消息的贡献。结果,在这样的实施例中,不需要使用解相关步骤来确定与输出消息相关联的该组候选分量,从而导致校验节点处理单元215的更简单的结构。

校验节点处理215还可以包括选择单元35,其被配置为根据该组候选分量v′i中包括的符号的可靠性度量,通过从该组候选分量v′i中选择包括不同符号的分量来确定每个输出消息vi。因此,选择单元35可以被配置为从包括冗余符号的该组候选分量v′i中的分量保留包括最可靠的不同符号的分量。

根据一些实施例,选择单元35可以被配置为通过根据该组候选分量v′i中包括的符号的可靠性度量来从与输出消息vi相关联的该组候选分量v′i中选择预定数量nm,out的分量来确定每个输出消息vi。因此,选择单元35可以首先被配置为在一组候选分量v′i中执行冗余消除,用于在包括相同符号的分量中(即,在包括冗余符号的分量中)保留包括最可靠符号的分量。在第二步骤中,选择单元35可以被配置为根据处理的候选分量中包括的符号的可靠性度量来从所处理的候选分量中选择预定数量nm,out的分量,使得包括最可靠的不同符号的nm,out个分量被选择。

根据一些实施例,在各种校验节点处理单元215中实现的选择单元35可以被配置为选择相同的预定义数量nm,out的分量来确定输出消息。

根据其他实施例,在各种校验节点处理单元215中实现的选择单元35可以被配置为选择不同的预定义数量nm,out的分量来确定输出消息。在这样的实施例中,这些输出消息的变量节点处理单元217接收者可以被配置为执行截断操作以在每个接收的消息中保留相同数量的分量。

在一些实施例中,分量的预定数量nm,out可以取决于输入消息中包括的分量的数量nm,in。

分量的预定数量nm,out还可以取决于代码被构造的域,和/或迭代解码过程的解码迭代的顺序,和/或信噪比,和/或校验节点处理单元215的计算和存储能力。

在一些其他实施例中,分量的数量nm,out可以取决于先前引用的因素的组合。

例如,对于gf(64)上的伽罗瓦域,分量的数量nm,out可能根据nm,out=3nm,in而与输入消息中包括的分量的数量有关。对于gf(1024)上的伽罗瓦域,分量的数量nm,out可能根据nm,out=15nm,in而与输入消息中包括的分量的数量有关。

图8是描绘根据其中在校验节点处理单元处执行使用多个基本校验节点处理器的校验子解码的一些实施例中在用于对非二进制ldpc码进行解码的ems算法中实现的在校验节点处理单元处确定输出消息的方法的流程图。

将参考由对数似然比(llr)值在对数域中表示的软输出解码和可靠性度量来进行一些实施例的以下描述,仅用于说明的目的。然而,本领域技术人员将容易地理解,可以使用其他类型的解码和可靠性度量来度量符号的可靠性。

在校验节点处理单元处计算输出消息的方法是在ems算法的迭代解码过程中执行的消息交换的一部分。可以执行解码处理,以通过应用信任传播解码规则而从由向量y表示的接收到的噪声序列确定原始码字c的估计码字c可能已经在发射机处使用在伽罗瓦域gf(q)上构造的指定的非二进制ldpc码进行编码,其中q>2。

为了清楚起见,将主要集中于在校验节点处理单元执行的步骤对一些实施例进行以下描述。以下将考虑被配置为接收dj个经排序和截断的输入消息并且生成dj个输出消息的级dj的校验节点处理单元。

可以执行步骤801以从对应的tanner图中的连接的变量节点接收输入消息。因此,可以接收dj个输入消息输入消息可以预先由变量节点处理单元或校验节点处理单元进行排序和截断。因此,每个输入消息可以包括以包括在每个分量中的可靠性度量的给定顺序排序的nm,in<<q个分量。

在其中llr是测量符号的可靠性的度量的特定实施例中,最可靠的符号是具有最小llr值的符号。因此,每个输入消息ui可以根据ui=(ui[0],ui[1],...,ui[nm,in-1])以向量符号写入,使得每个分量(其中j=0,...,nm,in-1)包括由表示的符号,以及与符号相关联的由表示的llr度量,使得携带最可靠符号的分量对应于分量ui[0],其中i=1,...,dj,其中对于每个0≤u<v≤nm,in-1,

可以执行步骤803以将初始二进制值与输入消息ui(其中i=1,...,dj)中包括的每个分量ui[j](其中j=0,...,nm,in-1)进行关联。

根据一些实施例,与分量ui[j]相关联的初始值可以取决于可靠性度量特别地,等于预定义的第一值的初始二进制值可以与包括最可靠符号的分量相关联,并且等于预定义的第二值的初始二进制值可以与其余分量相关联。

根据一些实施例,预定义的第一值可以等于零(‘0’),并且预定义的第二值可以等于一(‘1’)。因此,与分量ui[j]相关联的由表示的初始二进制值可以根据等式(1)确定,即,如果所述分量中包括的符号是最可靠的符号,则与包括在输入消息ui中的分量ui[j]相关联的初始二进制值可以取比特‘0’。

根据其他实施例,预定义的第一值可以等于一(‘1’),并且预定义的第二值可以等于零(‘0’)。因此,如果包括在该分量中的符号是最可靠的符号,则与包括在输入消息中的分量相关联的初始二进制值可以等于比特‘1’,即

可以执行步骤805以使用多个基本校验节点处理器311从输入消息中确定包括ns个校验子的由s={s1,s2,...,sns}表示的一组校验子。校验子(其中r=1,...,ns)可以包括由表示的符号,与符号相关联并由表示的llr度量,以及由表示的二进制向量。

根据一些实施例,校验子集合s中的校验子的数量ns可以大于或等于每个输入消息中的分量的数量。例如,在gf(64)上,校验子数量可以由ns=3nm,out=9nm,in给出。

根据一些实施例,可以根据从所有输入消息确定的中间结果来确定该校验子集合s。

由u′t表示的中间消息可以包括数量nt个排序分量和与每个分量相关联的中间二进制向量,包括在给定中间消息中的分量被排序成包括在其中的符号的可靠性度量的给定顺序。可以通过处理从输入消息导出的第一消息和第二消息来确定中间消息,输入消息的数量有利地至少等于三。此外,包括在第一消息和第二消息中的每个分量可以关联于从与输入消息的分量相关联的初始二进制值导出的二进制向量。

因此,可以通过对包括在所处理的第一消息的分量中的符号和包括在所处理的第二消息的分量中的符号在伽罗瓦域上应用加法运算来确定包括在中间消息的分量中的符号。

此外,可以通过对与第一消息的分量相关联的llr度量和与第二消息的分量相关联的llr度量应用给定代数结构上的加法运算来确定与包括在中间消息中的符号相关联的llr度量。

根据一些实施例,可以在由实数域整数域和自然数域组成的组中选择代数结构。例如,在涉及硬件量化实现或软件实现的实施例中,加法运算可以在整数域或自然数域上执行。

此外,可以通过应用与第一消息的分量相关联的二进制向量和与第二消息的分量相关联的二进制向量的向量级联来确定与中间消息的分量相关联的中间二进制向量。

对于通过处理分别由ul和up(其中l和p≠l在从1到dj的索引集合中变化)表示的两个输入消息所确定的中间消息,可以从输入消息的分量确定由u′t表示的中间消息。可以从与输入消息的每个分量相关联的初始二进制值确定与中间消息的每个分量相关联的中间二进制向量。因此,中间消息u′t可以包括nt个分量u′t[j](其中j=0,...nt-1)和与每个分量u′t[j]相关联的中间二进制向量对于j=0,...nt-1的分量可以包括符号和与符号相关联的llr度量可以根据其中包括的符号的可靠性度量将中间消息u′t的分量排序为给定的顺序,使得对于所有的j=0,...nt-2,

根据一些实施例,可以通过处理来自第一消息的数目nl≤nm,in个分量和/或来自第二消息的数目np≤nm,in个分量来确定中间消息。

根据一些实施例,可以通过三个步骤来确定中间消息。

在第一步骤中,可以从第一消息ul的分量和第二消息up的分量确定一组辅助输出分量。辅助输出分量称为“气泡”。由bt[u][v]表示的气泡是指从包括在第一消息ul中的分量ul[u]和包括在第二消息up中的分量up[v]获得的气泡。索引u在0,1,...,nl-1中变化,索引v在0,1,...,np-1中变化。气泡可以包括一对数据,该对数据包括由表示的符号及由表示的其llr度量。它还可以包括与该对相关联的由表示的二进制向量。相应地,输出气泡的总数由nl×np给出。

根据一些实施例,包括在辅助输出分量bt[u][v](其中u=0,1,...,nl-1且v=0,1,...,np-1)中的符号可以根据先前在等式(2)中表示的伽罗瓦域上的加法来确定。

根据一些实施例,包括在辅助输出分量bt[u][v](其中u=0,1,...,nl-1且v=0,1,...,np-1)中的llr度量可以根据如先前在等式(3)中表示的实数域上的加法来确定。

根据一些特定实施例,例如在量化的硬件实现和软件实现中,包括在辅助输出分量bt[u][v](其中u=0,1,...,nl-1且v=0,1,...,np-1)中的llr度量可以根据整数域或自然数域上的加法来确定,从而能够实现复杂度的降低。

根据一些实施例,与辅助输出分量bt[u][v](其中u=0,1,...,nl-1且v=0,1,...,np-1)相关联的二进制向量可以根据前面在等式(4)中表示的向量级联操作来确定。

在nl×np个辅助输出分量的计算之后,可以执行排序步骤以按每个分量中包括的llr度量的递增顺序对这些分量进行排序。

在最后一步,可以执行截断操作,以在nl×np个排序的辅助输出分量中选择nt个分量,其提供中间消息u′t和与该中间消息中所包括的nt个排序分量中的每个分量相关联的二进制向量。

根据一些实施例,包括在中间消息中的分量的数量nt可以低于nl×np。

可以从使用所有输入消息计算的中间消息来确定校验子集合。

在使用串行架构的实施例中,可以从由串行架构中的最后一个基本校验节点处理器递送的中间消息来确定该校验子集合。

在使用并行架构的实施例中,可以从位于树架构的最后一级的基本校验节点处理器递送的中间消息来确定该校验子集合。

独立于各个基本校验节点处理器311的实现架构的类型,校验子集合(其中r=1,...,ns)可以被表示为输入消息的函数。

因此,包括在校验子sr(其中r=1,...,ns)中的符号可以根据等式(5)表示为包括在输入消息ui中的符号的伽罗瓦域上的求和,其中i=1,...,dj且ui∈[0,nm,in-1]。

此外,包括在校验子sr(其中r=1,...,ns)中的llr度量可以根据等式(6)表示为包括在输入消息ui中的llr度量的实数域上的总和,其中i=1,...,dj且ui∈[0,nm,in-1]。

此外,包括在校验子sr(其中r=1,...,ns)中的二进制向量可以根据等式(7)表示为输入消息ui相关联的初始二进制值的向量级联,其中i=1,...,dj且ui∈[0,nm,in-1]。因此,包括在校验子sr中的二进制向量包括dj个比特,对于i=1,...,dj的每个二进制值与输出消息vi相关联。

可以执行步骤807,以从确定的校验子集合确定与每个输出消息vi相关联的由v′i表示的一组候选分量。步骤807可以包括应用取决于包括在每个校验子sr中的二进制向量的解相关操作。因此,二进制向量可以指示对于哪个输出消息应当丢弃或选择校验子,以便确定一组候选分量。由于二进制向量包括dj个比特,对于i=1,...,dj的每个比特与输出消息vi相关联,比特的值可以用于验证或不验证校验子sr的选择,以便确定一组候选分量v′i。

更具体地,根据第一实施例,其中与最可靠符号相关联的初始二进制值等于‘0’(如等式(1)中),如果比特等于零(‘0’),则校验子sr是有效的校验子。然后,可以选择包括有效校验子sr的符号及其llr度量的数据对,以在候选分量之中形成候选分量。

根据与最可靠符号相关联的初始二进制值等于‘1’的另一实施例,如果比特等于一(‘1’),则校验子sr是有效校验子。然后,可以选择有效校验子sr的符号及其llr度量的对,以形成该组候选分量中的候选分量。

根据一些实施例,可以执行解相关操作以使用dj个基本解相关操作来确定与每个输出消息相关联的一组候选分量v′i,每个基本解相关操作被执行以确定一组与给定输出消息相关联的候选分量。

根据通常使用串行架构的一些其他实施例,可以仅使用dj-1个基本解相关操作来执行解相关操作。可以从由倒数第二个基本校验节点处理器递送的中间消息来确定与串行架构中的最后一个基本校验节点处理器相关联的一组候选分量。

在步骤809中,可以对所确定的与每个输出消息相关联的一组候选分量执行冗余消除操作,以从包括相同符号的分量中保留包括与最小llr度量对应的最可靠符号的分量。换句话说,产生相同符号值的分量被处理,使得包括与最小llr度量相关联的冗余符号的分量被保留。

可以执行步骤811以从处理的一组候选分量生成输出消息vi,其中i=1,...,dj。通过从所处理的一组候选分量中选择预定义数量nm,out的最可靠分量,即,通过选择包括与最小llr度量相关联的符号的nm,out个分量,可以确定输出消息vi。

图9示出了根据本发明的一些实施例的包括由基本校验节点处理器311处理的每个nm,in=10个分量的两个输入消息的二维矩阵表示。该表示对应于包括nl=nm,in=10个分量的第一消息以及包括np=nm,in=10个分量的第二消息的处理。垂直轴是指第一消息的已处理分量。水平轴是指第二消息的已处理分量。来自第一消息的每个分量与来自第二消息的每个分量的可能组合由灰色圆圈表示,并且被称为“气泡”。它们对应于辅助输出分量,即对应于从第一消息和第二消息确定的中间消息的分量的可能值。气泡的数量表示在基本校验节点处理器处涉及用于确定输出消息的计算复杂度。图9对应于由元组(nl=nm,in=10,np=nm,in=10,nt=10)表示的基本校验节点处理器,其中元组中的最后一个元素对应于递送的中间消息的分量数量。基本校验节点处理器的这种配置类似于s-bubble和l-bubble算法所使用的配置。在s-bubble和l-bubble算法使用的配置中,处理后的第一消息和第二消息的输入分量以及包括在确定的中间消息中的输出分量的分量在集合{0,...,nm,in-1}中取值。

图10示出了根据本发明的一些实施例获得的示例性的气泡,其中使用基本校验节点处理器来处理第二消息的数量np的分量,使得np低于nm,in。因此,基本校验节点处理器由元组(nl=10,np=3,nt=10)表示。在这个例子中,18个气泡中所选择的一组候选者由nt=10给出。

图11示出了根据本发明的一些实施例获得的示例性的气泡,其中基本校验节点处理器被配置为处理第二消息的数量np的分量,使得np低于nm,in。因此,基本校验节点处理器由元组(nl=10,np=5,nt=20)表示。应该注意,与图10的结果相比,气泡的数量更高(35对18)。

图12示出了根据一些实施例,使用变量节点与校验节点之间的消息交换过程的10次迭代,以对使用ems算法在awgn信道下在gf(64)上构建的(576,480)非二进制ldpc码进行解码的帧错误率(fer)的方式评估的错误概率性能。对ems算法的四个实现进行了fer评估:

1、‘fbnm=20’(在图12中,nm表示nm,in)是指使用基于s-bubble算法的现有技术的向前向后架构的实施例,其中使用由(nl=20,np=20,nt=20)表示的基本校验节点处理器。

2、‘sb-cn,串行ns=50,nm,in=6,nm,out=20’是指本发明的一些实施例,其中使用在校验子计算器31中的11个基本校验节点处理器311的串行实现。对应的串行实现包括由元组(nl=6,np=6,nt=25)表示的基本校验节点处理器311和由元组(nl=6,np=25,nt=50)表示的基本校验节点处理器311。其余的9个基本校验节点处理器311由元组(nl=6,np=50,nt=50)表示。

‘sb-cn,树ns=50,nm,in=6,nm,out=20’是指本发明的一些实施例,其中使用校验子计算器31中的11个基本校验节点处理器311的树实现。对应的树实现包括在第一级(即表示并行实现的树中的级别)由元组(nl=6,np=6,nt=25)表示的6个基本校验节点处理器311,在第二级由元组(nl=25,np=25,nt=50)表示的两个基本校验节点处理器311,在第三级由元组(nl=50,np=50,nt=50)表示的三个基本校验节点处理器311,以及在最后级由元组(nl=50,np=50,nt=50)表示的基本校验节点处理器311。

‘sb-cn,串行ns=50,nm,in=6,nm,out=20标准ecn’是指在校验子计算器31处的基本校验节点处理器311的串行实现,其中基本校验节点处理器311执行在现有的向前向后架构中使用的传统操作。

应当注意,与由根据本发明的实施例的基本校验节点处理器执行的操作相比,由基本校验节点处理器执行的常规操作涉及从辅助输出分量或气泡中去除冗余分量的冗余消除操作。

描绘的错误性能结果表明,提出的使用基本校验节点处理器的校验子解码的串行和并行实现提供了与向前向后架构相同的性能,其表明了根据本发明的实施例的方法的最优性。此外,数值结果表明了根据各种实施例的基本校验节点处理器相对于常规基本校验节点处理器中使用的操作的效率。实际上,当应用于校验子计算时,由常规的基本校验节点处理器执行的处理不能实现最佳的误差性能,并且特别是在高的信噪比值下呈现显著的损耗。这种性能损耗是由于在基本校验节点处理器的级别处执行的冗余消除操作导致的。

除了错误概率性能之外,以基本校验节点处理器(ecn)的数量、排序的输入对的数量和基本校验节点处理器的辅助输出的总数的方式来评估以下实现的复杂度:‘fbnm=20’,‘sb-cn,serialns=50,nm,in=6,nm,out=20’,以及‘sb-cn,treens=50,nm,in=6,nm,out=20’。结果显示在图13中。数值结果表明,根据其中使用基本校验节点处理器来计算校验子的一些实施例,与现有的向前向后架构相比较,基于校验子的解码器的这些实现的降低的复杂度。根据本发明的实施例的架构使用较少数量的基本校验节点处理器。与现有的向前向后架构相比,使用根据本发明的一些实施例的架构,ecn的数量从3(dj-2)减少到(dj-1)。与常规的基于校验子的解码器相比,使用根据本发明的一些实施例的架构,计算出的校验子的数量减少到3nm,out,并且对校验子进行排序,而不需要对输出进行额外排序。

因此,根据本发明的实施例的架构提供了最佳的解码性能,显著降低了解码计算复杂度和实现硬件成本。

本文描述的方法和设备可以通过各种手段来实现。例如,这些技术可以以硬件,软件或其组合实现。对于硬件实现,迭代解码器123的处理元件可以例如根据仅硬件配置(例如,在具有对应存储器的一个或多个fpga、asic或vlsi集成电路中)或根据使用vlsi和dsp两者的配置来实现。

虽然已经通过各种示例的描述说明了本发明的实施例,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图并不是将所附权利要求的范围限制或以任何方式限于这些细节。本领域技术人员将容易得到额外的优点和修改。因此,本发明的更广泛的方面不限于所示出和描述的具体细节、代表性方法和说明性的示例。

特别地,虽然已经参照ems算法的特定实现执行了对本发明的一些实施例的描述,但是应当注意,本发明也可以应用于诸如最小-最大算法的其他迭代解码算法。

此外,虽然已经参照在伽罗瓦域上构造的纠错码描述了本发明的一些实施例,但是本领域技术人员将容易地理解,基于用于校验子计算的基本校验节点处理的所提出的实施例也可以应用于任何ldpc码和任何在非交换组(例如多项式代码)(例如循环码)上构造的图形纠错码。

此外,即使本发明在对通信系统的应用中具有一些优点,应当注意,本发明不限于这种通信设备,并且可以集成在诸如数据存储设备的许多设备中。

本文描述的方法可以通过提供给任何类型的计算机的处理器的计算机程序指令来实现,以产生具有执行指令以实现本文指定的功能/动作的处理器的机器。这些计算机程序指令也可以存储在可以使计算机以特定方式工作的计算机可读介质中。为此,可以将计算机程序指令加载到计算机上以使得执行一系列操作步骤,从而产生计算机实现的过程,使得所执行的指令提供用于实现本文指定的功能的过程。

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