非二进制LDPC码的解码的制作方法

文档序号:12289615阅读:342来源:国知局
非二进制LDPC码的解码的制作方法与工艺
纠错码被广泛应用于信息技术的多个领域,尤其是应用于发送器和接收器之间的信息传递,以及在储存媒介上储存/读取信息。LDPC码(低密度奇偶校验码)是线性分组码类的纠错码,其奇偶校验矩阵是稀疏的(“低密度奇偶校验矩阵”),意即与元素总量相比,它包含少量的非零元素。因为它们是线性分组码,它们以奇偶校验矩阵作为特征,所述奇偶校验矩阵通常用H来表示。通过关系式G·HT=0把奇偶校验矩阵H连接到被称为代码生成器的矩阵,该矩阵通常用G来表示,其中,HT表示H的转置矩阵。M×N维的奇偶校验矩阵,对于行数M而言,该矩阵与代码的奇偶校验约束条件数相对应,对于列数N而言,其与所考虑的代码的码字长度相对应。因为线性分组码的奇偶校验矩阵H的各行分别对应于通过码字创建以满足的奇偶校验约束条件,因此任何码字v都满足等式v·HT=0。作为提醒,伽罗瓦(Galois)域GF(q)是q个元素的有限集,其中,q个元素中的任何一个元素都可以描述为本原元素的一个函数,其中该元素用α表示。在下文中,伽罗瓦域GF(q)的元素用{0,α0,α1,...,αq-2}表示。码字符号属于二进制伽罗瓦域(2阶)(用GF(2)表示)的LDPC码被称为二进制LDPC码,而码字符号属于严格大于2的q阶的伽罗瓦域(用GF(q)表示)的LDPC码则被认为是非二进制的。因此,非二进制LDPC码的奇偶校验矩阵的元素属于非二进制(q>2)伽罗瓦域GF(q),利用域GF(q)的加法和乘法定律可得到上述等式的矩阵积,在下文描述中分别表示为和还可以通过GF(q)上的一个奇偶校验方程组确定这些代码的构造,在这些等式之中涉及码字符号dc的一个等式写作:其中,hj,k是第j行H的非零值,且码字用X=(x1,x2,...,xN)来表示,其中,(xk),k=1...N是由m=log2(q)比特表示的符号,其表示为xk=(xk,1xk,2…xk,m)。下面列出了伽罗瓦域GF(4)中奇偶校验矩阵H的一个实例,其中,元素用{0;α0;α1;α2}表示,维度为M=3、N=6:解码LDPC码的多种迭代算法采用关于代码的奇偶校验矩阵的二部图表示法,称为“Tanner图”。对于维度为M×N的奇偶校验矩阵H,这种表示法利用边缘连接被称为“奇偶校验节点”或“校验节点(CN)”的M个节点和被称为“变量节点”(VN)的N个节点。在相应的Tanner图中,通过连接奇偶校验节点和变量节点的边缘表示奇偶校验矩阵的每个非零元素,所述奇偶校验节点与矩阵H中的一行元素相对应,所述变量节点与矩阵H中的一列元素相对应。因此,图中的每个奇偶校验节点都代表由将其连接到变量节点的边缘所确定的一个奇偶校验等式。变量节点接收待解码或者正被解码的字。图1显示了与维度为M=3、N=6的上述奇偶校验矩阵的实例相对应的Tanner图。该图包含在图中标记为CN1、CN2和CN3的M=3个奇偶校验节点以及在图中标记为VN1、VN2、VN3、VN4、VN5和VN6的N=6个变量节点。分别与图中三个奇偶校验节点相对应的三个奇偶校验等式是:对于奇偶校验节点CN1的对于奇偶校验节点CN2的对于奇偶校验节点CN3的其中,运算符和分别表示伽罗瓦域GF(4)中的加法和乘法。Tanner图表示法可用于实现图解模型中显示效率的算法,比如“置信传播”(BP)算法或“消息传递”(MP)算法。应用于具有两种不同类型的节点的二部图时,BP算法基于在通过边缘连接的每个类型的节点之间发送消息的迭代过程(节点被认为是“相邻的”)。因此,开发了利用Tanner图的奇偶校验节点与变量节点之间交换消息进行LDPC解码的迭代算法,Tanner图与所讨论的LDPC码相对应。更普遍而言,这些解码算法可用于或适合于解码所有线性分组码,所述线性分组码具有的一种表示法为包括一组奇偶校验节点与一组变量节点的二部图。在软输入解码的情况下,交换的消息包含处理的码字符号的可能的值,包括相关的似然性或可靠性信息。例如,如果相关的代码是二进制的,而且码字的符号的值为伽罗瓦域GF(2)中的值,或者换言之,是二进制值,那么包含机率密度的交换的消息则包括两个密度,一个是关于值“0”的,另一个是关于值“1”的。例如,消息包括成对的二进制值,所述二进制值分别与似然值(或可靠性值)相关联。如果相关的代码是非二进制的,而且码字的符号是伽罗瓦域GF(q)中的值,其中q>2,那么交换的消息则可包含q个可靠性值,每个可靠性值都与一个GF(q)元素相对应,可将其表示为大小为q对(符号、可靠性值)的一个向量。因此,包括伽罗瓦域GF(q)中的值的代码的非二进制LDPC解码器的奇偶校验节点接收dc个输入消息并生成dc个输出消息。每个输入消息和输出消息都包含q对值,一个表示符号,另一个表示与该符号相关的可靠性或似然性。如果采用直接实现置信传播(BeliefPropagationBP)解码算法,通过在q至dc-1的幂中选择q个最佳组合构建输出。这将导致关于O(q2)阶的计算复杂性。在频域中也可以考虑BP解码算法。将其称为基于傅里叶变换的BP算法。变成频域可降低BP算法的复杂性,以达到O(dc×q×log(q))阶的复杂性。但是,在计算复杂性方面,实现BP算法的成本仍然很高,而且就q值超出16的情况而言,成本变得过高。已经提出包括扩展最小和(EMS)算法在内的多种算法以便解决这个复杂性高的问题,所述扩展最小和(EMS)算法提出通过选择最可靠的nm符号利用截断消息,选择nm,使其远低于q(nm<<q)。把消息引入奇偶校验节点之前先将其分类。一个奇偶校验节点是由基本奇偶校验节点的组合构成的,其中,每个基本奇偶校验节点都接收两个分类的消息,每个消息包含nm个(符号、可靠性)对,由此生成输出消息,所述输出消息包含两个输入消息的nm个最佳可能组合,组合的总数等于nm的平方。关于EMS算法的详细描述,可以参考下面的文章:D.Declercq和M.Fossorier所写的“GF(q)上非二进制LDPC码的解码算法(DecodingalgorithmsfornonbinaryLDPCcodesoverGF(q))”,IEEETrans.Commun.,第55卷,第4号,第633-643页,2007年4月。“检泡(BubbleCheck)”算法及其被称为“L-检泡”的改进版的目的在于进一步降低基本奇偶校验节点的复杂性,同时在误码率方面保持相同的性能,其提出减少两个输入消息的nm个最佳可能组合的搜索空间。关于检泡算法和L-检泡算法的详细描述,可以分别参考下面的文献:E.Boutillon和L.Conde-Canencia所写的“检泡:一种在扩展最小和非二进制LDPC解码器中进行基本校验节点处理的简化算法(Bubblecheck:asimplifiedalgorithmforelementarychecknodeprocessinginextendedmin-sumnon-binaryLDPCdecoders)”,ElectronicsLetters,第46卷,第9号,第633-634页,2010年;以及BoutillonE.、L.Conde-Canencia和A.AlGhouwayel所写的“基于EMS算法的GF(64)-LDPC解码器的设计(DesignofaGF(64)-LDPCDecoderBasedontheEMSAlgorithm)”,IEEETrans.OnCircuitsandSystems,第60卷,第10号,第2644–2656页,2013年10月。尽管检泡算法能够减少基本奇偶校验节点运算的次数,但是解码的复杂性仍然太高,难以真正高效的硬件和/或软件应用。本发明的一个目的是提供一种管理纠错码解码器的奇偶校验节点计算装置的方法以及一种纠错码解码器的奇偶校验节点计算装置,所述纠错码解码器的一种表示法为二部图。根据第一方面,本发明涉及到一种管理纠错码解码器的奇偶校验节点计算装置的方法,所述纠错码解码器的一种表示法为包括至少一个奇偶校验节点的二部图,奇偶校验节点被配置为接收第一(U)第二(V)输入消息,并生成输出消息(E),奇偶校验节点的输入消息和输出消息的元素包括符号以及与所述符号相关的可靠性度量,第一个和第二个输入消息包含按照其可靠性度量排序的元素的长度为nm的列表U(i)和V(j)。所提出的方法包括:通过组合第一个和第二个输入消息的元素,使用根据计算操作计算出的元素来初始化多个nbubFIFO型存储器,以及迭代地确定输出消息的值,所述计算操作使得如果a≥b并且c≥d,则根据所提出的方法,其中,m是大于或等于零的整数,m阶迭代包括从FIFO存储器的输出元素中选择可靠性最高的一个元素Ss(m);由所选择的元素Ss(m)生成一个输出消息(E)的元素;以及更新FIFO存储器的输出,所选项Ss(m)源自所述FIFO存储器的输出。所提出的方法提供了一种算法,该算法能够更有效地实现纠错码解码器。该实现在在FPGA组件中用于实现解码器的表面方面以及在执行所提出的方法的最高时钟频率方面获得了很大收益。在所提出的方法的一种具体实施过程中,nbub等于四,通过来自四个子集S1、S2、S3和S4的元素初始化四个FIFO存储器,通过组合分别与输入消息的元素U(i)和V(j)相关的可靠性度量按如下方式生成所述元素:而且有利的是,按照其大小初始化四个FIFO存储器,分别被选择为等于:和在所提出的方法的另一种具体实施过程中,只有在输出消息E并不是已经包含了所述元素的情况下,才实施由所选择的元素Ss(m)生成输出消息(E)的元素。这样避免在输出消息(E)中生成副本。在所提出的方法的另一种具体实施过程中,每个元素的可靠性度量都由一个对数似然比(LLR)表示。在所提出的方法的另一种具体实施过程中,计算操作是加法算法。所提出的方法可方便地应用于非二进制LDPC码的解码器。第二方面提出一种表示法为二部图的纠错码解码器的奇偶校验节点计算装置,奇偶校验节点被配置为接收第一(U)和第二(V)输入消息,并生成输出消息(E),奇偶校验节点的输入消息和输出消息的元素包括符号以及与所述符号相关的可靠性度量,第一个和第二个输入消息包含按照其可靠性度量排序的元素的长度为nm的列表U(i)和V(j)。所提出的计算装置包括一个计算机处理器和一个输出消息生成器,所述计算机处理器有效耦合到存储器装置,该存储器装置配置为多个nbubFIFO存储器,所述输出消息生成器通过计算机处理器来执行。输出消息生成器最好被配置为通过组合第一个和第二个输入消息的元素,使用根据计算操作计算出的元素来初始化多个nbubFIFO存储器,以及迭代地确定输出消息的值,所述计算操作使得如果a≥b并且c≥d,则m是大于或等于零的整数,m阶迭代包括从FIFO存储器的输出元素中选择可靠性最高的一个元素Ss(m);由所选择的元素Ss(m)生成一个输出消息(E)的元素;以及更新FIFO存储器的输出,所选项Ss(m)源自所述FIFO存储器的输出。在计算装置的一个特定实施例中,nbub等于四,通过来自四个子集S1、S2、S3和S4的元素初始化四个FIFO存储器,通过组合分别与输入消息的元素U(i)和V(j)相关的可靠性度量按如下方式生成所述元素:而且在计算装置的另一个特定实施例中,只有在输出消息E并不是已经包含了所述元素的情况下,才实施由所选择的元素Ss(m)生成输出消息(E)的元素。这样避免在输出消息(E)中生成副本。在计算装置的另一个特定实施例中,每个元素的可靠性度量都由一个对数似然比(LLR)表示。在计算装置的另一个特定实施例中,计算操作是加法算法。另一方面涉及到一种计算机程序,可将所述计算机程序加载到与处理器相关联的存储器,所述计算机程序包括当处理器执行所述程序时用于执行所提出的方法的部分代码以及一数据集,例如所述数据集通过压缩或编码表示所述计算机程序。另一方面涉及到一种用于由计算机执行的程序的非暂时性存储介质,其包含表示一个或多个程序的一组数据集,当计算机执行所述一个或多个程序时,并且所述计算机包括有效地耦合到存储器装置以及耦合到输入/输出接口模块的处理器时,所述一个或多个程序包括用于使计算机根据所提出的方法来管理奇偶校验节点计算装置的指令。虽然不具有排他性,但是所提出的方法特别适用于非二进制LDPC纠错码解码器的基本奇偶校验节点。当然,所述方法也适用于表示法为包括至少一个奇偶校验节点的二部图的纠错码解码器的所有奇偶校验节点。通过对于某些非限制性的示例性实施例的如下描述并参考附图,本发明的其他特征和优点将显而易见,在附图中:-图1是一幅示出了表示纠错码的二部图的图,在所述纠错码中执行所提出的方法;-图2a显示了应用本发明的解码系统;-图2b和图2c显示了应用本发明的纠错码解码器的校验节点;-图3a、图3b和图3c显示了应用本发明的基本奇偶校验节点;-图4是一个显示了根据L-检泡算法在一个基本奇偶校验节点内进行特定方面计算的表格;-图5a和图5b是显示了根据所提出的方法的一个具体实施例在一个基本奇偶校验节点内进行特定方面计算的表格;-图6a和图6b是显示了根据所提出的方法的一个具体实施例在一个基本奇偶校验节点内进行特定方面计算的表格;-图7是示出了实施所提出的方法的特定方面的图;-图8示出了实施所提出的方法的基本奇偶校验节点的结构;-图9是示出了实施所提出的方法的特定方面的图。在下文对本发明某些实施例的详细说明中,列出了很多具体细节,以便更全面地理解本发明。当然,技术人员会发现某些实施例在实践中没有这些细节。在其他情况下,对某些众所周知的特征不作赘述,以便简化说明。下文以纠错码解码器的奇偶校验节点的非限制性的背景对本发明进行说明。图2a显示了包括根据不同实施例的非二进制LDPC解码器(101)的解码系统(100)。系统(100)进一步包括一个输入-输出接口(102)、处理装置(103)和存储器装置(104)。经通信信道传递之后或者从存储介质读取之后,收到码字v的噪声版v′。通过接口(102)获取有待通过系统(100)解码的码字v′。用于解码的数据采集阶段在数据处理阶段之后,例如,通过控制非二进制LDPC解码器101的数据处理单元105进行数据处理。数据处理单元105可以是计算机、网络计算机或者具有处理器、存储器、数据存储单元的其它装置以及其它相关硬件,比如所述硬件为网络接口以及用于读写可移动存储介质(图中未显示)的媒体驱动器。例如,可移动存储介质可以是光盘(CD)、数字视频光盘(DVD)、闪存盘等。可移动存储介质包含在由数据处理单元105执行时使单元105进行数据采集和/或处理其中所述的部分实例的指令,以用于实施所提出的方法。可移动存储介质可进一步包括一个或多个计算机程序,用于在解码器101上实施和执行LDPC解码,然后将该解码的结果存储在存储器104中。部分LDPC解码器可按照关于可移动存储介质、可移动设备或本地数据存储器104的指定实例的指令顺序进行存储,以便加载到由一个或多个处理器执行的存储器中。具体而言,用于执行某些实施例的软件指令或计算机可读程序代码可以临时或永久地、完整或部分地存储在非暂时性计算机可读介质上,比如光盘(CD)、本地或远程存储设备、本地或远程存储器、磁盘或者任何其它计算机可读存储设备。尽管已将LDPC解码器描述为存在于存储器中的程序,但是可以在比如专用集成电路(ASIC)这样的硬件中实现LDPC解码器,或者在比如可加载到FPGA元件(现场可编程门阵列)并在FPGA元件上运行的软件程序这样的软硬件组合上实现LDPC解码器。图2b阐释了解码器(101)的一个实例结构,解码器包括奇偶校验节点处理器(110),其连接到dc变量节点处理器VNi,i=1...dc(在图中只显示了其中三个(111)、(112)和(113))以及连接到dc存储器组,例如,RAM、RAMi,i=1...dc(在图中只显示了其中三个(114)、(115)和(116))。奇偶校验节点处理器(110)并行接收分别来自存储器组RAMi,i=1...dc的dc输入消息V2Ci,i=1...dc。经其计算之后,生成分别发送到变量节点处理器VNi,i=1...dc(111)、(112)和(113)的dc输出消息C2Vi,i=1...dc。然后,变量节点处理器VNi,i=1...dc(111)、(112)和(113)生成消息V2C,将所述消息V2C输入奇偶校验节点处理器之前将其存储在存储器组中。接收dc个输入消息V2Ci,i=1...dc并生成dc个输出消息C2Vi,i=1...dc的奇偶校验节点(110)被称为dc级。如上所述,经奇偶校验节点处理的消息包含表示可能符号的信息对以及该信息的可靠性值。因为由知晓接收码字的概率表示的可靠性值所需的计算运算包括大量的乘法,所以通常采用关于可靠性值的对数符号表示法,由此用加法代替乘法。这样能够优化在专用部件(例如,ASIC或FPGA)中实现解码。例如,可以定义与可靠性信息相对应的对数似然比或LLR,在奇偶校验节点与变量节点之间的信息中交换所述可靠性信息。对数似然比LLR确定符号的可靠性,同时省略解码器中的乘法运算,并且能够更好地抵抗量化误差。LLR的一个定义采用分母中固定参考符号的概率,例如,符号α0。因此,如果我们把作为传输通道的输出而接收的嘈杂符号表示为β,则通过下面的等式给出关于符号αi,i=0,...,q-1的LLR的定义:其中,Pr(αi|β)是已知β时αi的条件概率。上述定义可导致LLR的负值,尤其是αi的概率小于α0的概率时,更是如此。但是,为了在定点数字结构上实施所提出的方法,最好通过LLR的正值计算。对于这一点的一个解决方案是采用可靠性最小的符号作为参考符号。在上述定义中,最可靠的符号是LLR值最高的符号。这意味着增加表示LLR值所需的位数,由此增加解码器所需的存储器的大小。由此看来,定义LLR使最可靠的符号的LLR最小(同时保持所有LLR值为正值)更有效率。为此,我们可以考虑下面的定义,其中,把绝对值应用到计算的LLR值中,采用最可靠的符号作为参考符号。其中,αd=argmax[Pr(αi|β);i=0,...,q-1]因此,最可靠的符号是LLR值最小的符号,意即值0。例如,以5比特编码LLR值时,这能够确保最小的LLR值等于用5比特表示的正值范围(从0到31)的下边界。相反,如果用LLR的正值和负值计算,同时以5比特编码这些值,那么表示LLR动态会更差,因为极限LLR值不一定已经标准化从而对应于用5比特表示的一个范围(例如从-15到16)的界限。因此,在伽罗瓦域GF(4)中,如果元素α0,α1,α2和α3的四个概率分别是(0.2;0.5;0.29;0.01),那么LLR的第一个定义给我们提供:LLR1=(log(0.2/0.2),log(0.5/0.2),log(0.29/0.2),log(0.01/0.2))=(00.91630.6678-2.9957)。第二个定义给我们提供:LLR2=(log(0.2/0.01),log(0.5/0.01),log(0.29/0.01),log(0.01/0.01))=(2.99573.91203.66360)(通过增加常数因子2.9957时LLR1变为LLR2)第三个定义给我们提供:LLR3=(log(0.5/0.2),log(0.5/0.5),log(0.5/0.029),log(0.5/0.01))=(0.916300.24853.9120)。可以根据“向前-向后(forward-backward)”算法进行奇偶校验节点处理器(110)中的数据处理,其中,dc级的奇偶校验节点分解成被称为基本奇偶校验节点或ECN的3·(dc–2)个奇偶校验节点,每个基本奇偶校验节点都接收作为输入的两个消息U和V并生成作为输出的一个消息E。图2c显示了等于6的dc级的奇偶校验节点处理器(120)的一个实例结构,包括12个基本奇偶校验节点(121-132)。奇偶校验节点处理器(120)并行接收六个消息V2Ci,i=1...6并生成六个输出消息C2Vi,i=1...6。每个基本奇偶校验节点都对其输入消息U和V执行一次奇偶校验测试,以便生成一个输出消息,所述输出消息表示似然性最佳的输入消息的组合。例如,在通过上文所定义的LLR值表示似然性的情况下,来自基本奇偶校验节点的输出消息E是通过下面关系式得到的:图3a阐释了二进制解码器的奇偶校验节点(150a)。奇偶校验节点接收两个输入消息,并生成一个输出消息,所述输出消息是来自输入消息的各值之和。为了简单起见,我们这里不考虑似然值。用U2和V2表示的输入消息(或变量)以及用E2表示的输出消息(或变量)是GF(2)中的值,在各图中以成对的值{0,1}阐释。按照GF(2)中的常规加法定律,两个输入组合(0,0)和(1,1)生成输出值“0”,而两个输入组合(0,1)和(1,0)生成输出值“1”。图3b阐释了非二进制解码器的一个基本奇偶校验节点(150b),其中,输入数据和输出数据是伽罗瓦域GF(64)中的值。用U64和V64表示的输入变量以及用E64表示的输出变量是62阶伽罗瓦域(用GF(64)表示)中的值,在各图中用值的集合{0,1,…,63}阐释。因为输出变量的值在GF(64)中,所以针对根据在GF(64)中所选的加法定律确定的64个输出值中的每一个值都有64个有效输入组合。上述内容可以推广到非二进制解码器的一个基本奇偶校验节点,其中两个输入变量Uq和Vq以及输出变量Eq是用GF(q)表示的q阶伽罗瓦域中的值。对于根据在GF(q)中所选的加法定律所确定的输出变量Eq的q个可能的值中每个值而言,有输入变量Uq和Vq的q个组合。在基本奇偶校验节点内进行的运算不仅限于加法。图3c阐释了一个基本奇偶校验节点(150c),关于所述基本奇偶校验节点的两个输入变量Uq和Vq以及输出变量Eq是用GF(q)表示的q阶伽罗瓦域中的值。通过用表示的奇偶校验关系式把输出变量与输入值联系在一起,所以我们得到参考图2b和图2c,奇偶校验节点处理器(110)、(120)并行接收dc个输入消息V2Ci,i=1...dc,把与上文提供的方程1相对应的奇偶校验测试应用到这些输入变量,并且生成分别发送到相应变量节点处理器VNi,i=1...dc(111)、(112)和(113)的dc个输出消息C2Vi,i=1...dc。如图3c所示,在处理器(110)内处理输入消息可分解为三层处理,每层都包括dc-2个基本奇偶校验节点(121-132)。每个基本奇偶校验节点(121-132)都接收两个消息U和V,每个消息包含q对(值在GF(q)中的符号,与符号相关的似然值)并生成一个输出消息E,所述输出消息包含两个输入消息U和V的值的q个最佳组合,意即似然性最高的。在一个实施例中,通过上述等式1定义消息E。该等式与在用T∑表示的和值矩阵中提取q个最小值相对应,定义为T∑[i,j]=U[i]+V[j],对于(i;j)∈{0,;,q-1}2。对数似然值的最小和值识别出GF(q)中似然性最高的分量。扩展最小和算法(EMS)建议把搜索这些最小值限制到到达用于计算输出消息值的基本奇偶校验节点的消息中的nm个最佳符号,使nm<<q。然后,可以考虑用大小为nm的、分别用dU[k]、V[k]和E[k]表示的向量表示输入消息和输出消息。在一个实施例中,可以通过在第一输入消息的nm个值与第二输入消息的nm个值的nm2个和中选择nm个最小值得到输出消息的值。可以通过一个表格阐释从输入消息的值算得的值中选择nm个值这个步骤,所述表格代表矩阵TΣ,大小为nm×nm,其中,通过输入消息的值U[i]和V[j]的和确定元素TΣ[i,j]:TΣ[i,j]=U[i]+V[j],(i;j)∈{0,...,nm-1}2。此外,输入消息U和V的可靠性值按照可靠性的降序排列,值U[0](分别为V[0])与最佳可靠性相对应,值U[nm](分别为V[nm])与最差可靠性相对应。当可靠性值与对数似然比LLR相对应时,因此,这些值按照降序排列,最低LLR值代表最高可靠性。在这种情况下,更新基本奇偶校验节点的EMS算法提供了探索候选矩阵T∑的迭代法,以便选择nm个最小输出值,并由此确定与来自节点的输出消息相对应的向量E[k]的值。这种EMS算法包括第一个初始化步骤,所述初始化步骤包括把值从T∑的第一列引入大小为nm的分类器中。然后计算分类器中的最小值,并将其复制到输出向量E[k]中。然后,用被引入分类器中的矩阵T∑中的右侧相邻值代替从分类器提取并复制到输出向量的值。然后,执行新的迭代过程,计算分类器中的最小值。为了通过实例阐释EMS算法的原理,考虑大小为nm=8的两个输入向量U64和V64的实例。这假设在准备步骤提取八个分量,所述分量在64个分量中具有最佳似然值,所述64个分量与具有在GF(64)中的值的每个输入消息的符号的可能值相对应。进一步假设通过U64=(0,1,2,3,3,4,5,5)且V64=(0,0,1,2,4,4,5,6)给定U64和V64的这八个最佳LLR。下表显示了根据向量U64和V64确定的64个候选值:下面针对上文的示例性U64和V64,对更新基本奇偶校验节点的EMS算法进行描述,选择8作为nm的值。可采用分类器执行该算法,意即一组nm个存储寄存器,nm个候选值存储在所述存储寄存器中,所述候选值构成一个选择集S,从选择集中选定候选值,并将其从分类器中去除,然后在算法的每次迭代循环中由另一个候选值将其代替。初始化阶段包括在T∑的第一列中选值,如上所述,如下表所阐释:(0)(1)(2)(3)(3)(4)(5)(5)(0)01233455(0)01233455(1)12344566(2)23455677(4)45677899(4)45677899(5)5678891010(6)67899101111通过这种方式,通过元素{T∑(0,j)|j=0,...,nm-1}确定大小为nm的选择集S的初始元素。在需要减少计算的一个变体中,事先不计算T∑的值,而且这个初始化阶段包括确定每个元素{T∑(0,j)|j=0,...,nm-1}并将其放在分类器的存储器中。因此采用nm个计算周期。经过这个初始化阶段之后,因此,包含选择值的分类器中的nm个寄存器包括针对T∑的第一列计算的值:然后,通过提取集S的最小元素初始化计算循环的第一次迭代,然后用所提取的元素所在行的矩阵T∑中的最小元素在这个选择集中将其代替。在所考虑的实例中,关于这第一次迭代,因此,我们提取元素T∑(0,0)并用元素T∑(0,1)将其代替,如果尚未完成计算,则计算所述元素T∑(0,1)。因此,更新了集S,并变为S={T∑(1,0);T∑(0,j),j=1;...;nm-1}={1;0;1;2;4;4;5;6}。我们还得到E[0]=T∑(0,0),即E=(T∑(0,0);X;X;X;X;X;X;X)。循环算法并执行在集S中的第二次提取和替换的迭代。所提取的元素为T∑(0,1),由T∑(1,1)将其代替。S更新并变为{T∑(1,0);T∑(1,1);T∑(0,j),对于j=2;...;nm-1}={1;1;1;2;4;4;5;6}。我们还得到E[1]=T∑(0,1),即E=(T∑(0,0);T∑(0,1);X;X;X;X;X;X)。在集S中的第三次提取和替换的迭代过程中,从S中提取元素T∑(1,0),并将其替换为T∑(2,0)。S变为{T∑(2,0);T∑(1,1);T∑(0,j),对于j=2;...;nm-1}={2;1;1;2;4;4;5;6}。我们还得到E[2]=T∑(1,0),即E=(T∑(0,0);T∑(0,1);T∑(1,0);X;X;X;X;X)。在集S中的第四次提取和替换的迭代过程中,从S中提取元素T∑(1,1),并将其替换为T∑(2,1)。S变为{T∑(2,0);T∑(2,1);T∑(0,j),对于j=2;...;nm-1}={2;2;1;2;4;4;5;6}。我们还得到E[3]=T∑(1,1),即E=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);X;X;X;X)。在集S中的第五次提取和替换的迭代过程中,从S中提取元素T∑(0,2),并将其替换为T∑(1,2)。S变为{T∑(2,0);T∑(2,1);T∑(1,2);T∑(0,j),对于j=3;...;nm-1}={2;2;2;2;4;4;5;6}。我们还得到E[4]=T∑(0,2),即E=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(0,2);X;X;X)。在集S中的第六次提取和替换的迭代过程中,从S中提取元素T∑(2,0),并将其替换为T∑(3,0)。S变为{T∑(3,0);T∑(2,1);T∑(1,2);T∑(0,j),对于j=3;...;nm-1}={3;2;2;2;4;4;5;6}。我们还得到E[5]=T∑(2,0),即E=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(0,2);T∑(2,0);X;X)。在集S中的第七次的提取和替换迭代过程中,从S中提取元素T∑(2,1),并将其替换为T∑(3,1)。S变为{T∑(3,0);T∑(3,1);TΣ(1,2);TΣ(0,j),对于j=3;...;nm-1}={3;3;2;2;4;4;5;6}。我们还得到E[6]=T∑(2,1),即E=(TΣ(0,0);TΣ(0,1);TΣ(1,0);TΣ(1,1);TΣ(0,2);T∑(2,0);T∑(2,1);X)。以在集S中提取第nm个值结束搜索,所提取的值是以与上述在集S中选定最小值相同的方式选定的。因此从S中提取元素T∑(1,2),我们得到E[7]=T∑(1,2),即E=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(0,2);T∑(2,0);T∑(2,1);T∑(1,2))。因此在nm次搜索周期的迭代以及2×nm个计算周期之后,确定了大小为nm的结果向量。与EMS算法相比,检泡算法(Bubble-Checkalgorithm)降低了更新基本奇偶校验节点的计算的复杂性。利用矩阵T∑中元素的如下属性,在输入列表按照递增的LLR值排序的情况下:而且i<i′,于是T∑(i,j)≤T∑(i′,j)以及,而且j<j′,于是T∑(i,j)≤T∑(i,j′)从而得出以下三个主要结论:-最初可排除矩阵T∑中元素的一个子集,这意味排除该矩阵中一部分探索区域;-例如,可以因子2缩小选择集S的大小;-可以确定用于选定初初始集S的每个元素的替代元素(称为“泡泡”)的预定路径。L-检泡算法通过定义四个“泡泡(bubble)”路径改进检泡算法,把四个泡泡路径限定为前两行矩阵与前两列矩阵,如图4所阐释。这将最低限度的搜索空间限制到3×nm个组合。为重新利用上述实例,我们因此考虑大小为的选择集S’。从矩阵TΣ的探索区域中排除被定义为Excl={T∑(i;j),针对(i;j)={2,...,nm-1}2}的矩阵T∑元素的子集Excl,意即在该区域的所有元素成为包含在选择集S中的候选元素之前,将其确定。再次应用EMS算法的初始化阶段,但是这个选择集小二分之一。因此,通过计算元素{T∑(i,0)|i=0,...,n′m-1,形成大小为nm/2的选择集S’。初始化阶段包括从T∑的第一列中选择n′m个值,如上所述,如下表中所阐释:(0)(1)(2)(3)(3)(4)(5)(5)(0)01233455(0)01233455(1)12344566(2)23455677(4)45677899(4)45677899(5)5678891010(6)67899101111这n′m个值构成L-检泡算法的“泡泡”。在上面的实例中,S’集初始化为S′={0;0;1;2}。从矩阵T∑的被检查区域中排除被定义为Excl={T(i;j),针对(i;j)={2,...,nm-1}2}(204)的矩阵T∑的元素的子集Excl,并且在提取S’的元素之后预定义n′m=4个路径(200,201,202,203)用于替换,每个预定义路径的第一个元素分别与初初始集S’的四个元素相对应。参考图4,初初始集S的第一个元素T∑(0,0)也是由子集P0={T∑(0;j),对于j={0,...,nm-1}}定义的水平路径(200)的第一个元素,初始集S的第二个元素T∑(1,0)也是由子集P1={T∑(1;j),对于j={0,...,nm-1}}定义的水平路径(201)的第一个元素,初始集S的第三个元素T∑(2,0)也是由子集P2={T∑(2;0)∪TΣ(i;1),对于i={2,...,nm-1}}定义的路径(202)的第一个元素,初始集S的第四个元素TΣ(3,0)也是由子集P3={T∑(i;0),对于i={n′m-1,...,nm-1}}定义的垂直路径(203)的第一个元素。将注意到,图4中阐释的四个路径(200,201,202,203)定义在未排除的路径区域内,被排除区域(204)与子集Excl={T∑(i;j),对于(i;j)={2,...,8}2}相对应。然后开始计算循环的第一次迭代,提取集S’的最小元素,然后在这个选择集中用在与所提取的元素对应的矩阵T∑的路径上所提取的元素中最近的相邻元素将其代替。为此,例如,可以计算沿着与从S’提取的元素相对应的预定义路径上的集S’中替换元素的地址,计算根据其地址的替换元素的值,然后通过替换元素升级集S’。在所考虑的实例中,对于第一次迭代,提取元素T∑(0,0),沿着路径P0={T∑(0;j),对于j={0,...,nm-1}}计算替换元素的地址,由此得到随后计算的元素T∑(0,1)的地址。然后,更新集S’,变为S’={T∑(0,1);T∑(i,0),对于i=1;...;n′m-1}={1;0;1;2}。我们还得到C[0]=T∑(0,0),即C=(T∑(0,0);X;X;X;X;X;X;X)=(0;X;X;X;X;X;X;X)。循环算法并执行在集S’中的第二次提取和替换的迭代。从集S’中提取较小元素,在所考虑的实例中,所提取的元素是T∑(1,0)。与该元素相对应的路径是P1={T∑(1;j),对于j={0,...,nm-1}}。因此计算沿着该路径与所提取的元素T∑(1,0)相邻的元素的地址,由此得到随后计算的元素T∑(1,1)。通过计算的值更新S’,使其变为{T∑(0,1);T∑(1,1);T∑(i,0),对于i=2;...;n′m-1}={1;1;1;2}。我们还得到C[1]=TΣ(1,0),即C=(TΣ(0,0);TΣ(1,0);X;X;X;X;X;X)=(0;0;X;X;X;X;X;X)。在集S’中的第三次提取和替换的迭代过程中,从S’提取元素TΣ(0,1)。与该元素相对应的路径是P0={T∑(0;j),对于j={0,...,nm-1}}。因此,计算沿着该路径与所提取的元素T∑(1,1)相邻的元素地址,由此得到随后计算的元素T∑(0,2)。S’变为{T∑(0,2);T∑(1,1);T∑(i,0),对于i=2;...;n′m-1}={2;1;1;2}。我们还得到C[2]=T∑(0,1),即=(T∑(0,0);T∑(1,0);T∑(0,1);X;X;X;X;X)=(0;0;1;X;X;X;X;X)。在集S’中的第四次提取和替换的迭代过程中,从S’提取元素T∑(1,1)。与该元素相对应的路径是P1={T∑(1;j),对于j={0,...,nm-1}}。因此,计算沿着该路径与所提取的元素T∑(1,1)相邻的元素地址,由此得到随后计算的元素T∑(1,2)。S’变为{T∑(0,2);T∑(1,2);T∑(i,0),对于i=2;...;n′m-1}={2;2;1;2}。我们还得到C[3]=T∑(1,1),即C=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);X;X;X;X)=(0;0;1;X;X;X;X;X)。在集S’中的第五次迭代提取和替换的迭代过程中,从S’提取元素T∑(2,0)。与该元素相对应的路径是P2={T∑(2;0)∪T∑(i;1),对于i={2,...,nm-1}}。因此,计算沿着该路径与所提取的元素T∑(2,0)相邻的元素地址,由此得到随后计算的元素T∑(2,1)。S’变为{T∑(0,2);T∑(1,2);T∑(2,1);T∑(i,0),对于i=3;...;n′m-1}={2;2;2;2}。我们还得到C[4]=TΣ(2,0),即C=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);TΣ(2,0);X;X;X)=(0;0;1;1;1;X;X;X)。在集S’中的第六次提取和替换的迭代过程中,从S’提取元素TΣ(0,2)。与该元素相对应的路径还是P0={TΣ(0;j),对于j={0,...,nm-1}}。因此,计算沿着该路径与所提取的元素TΣ(0,2)相邻的元素地址,由此得到随后计算的元素TΣ(0,3)。S’变为{TΣ(0,3);T∑(1,2);T∑(2,1);TΣ(i,0),对于i=3;…;n′m-1}={3;2;2;2}。我们还得到C[5]=TΣ(0,2),即C=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(2,0);T∑(0,2);X;X)=(0;0;1;1;1;2;X;X)。在集S’中的第七次提取和替换的迭代过程中,从S’提取元素T∑(1,2)。与该元素相对应的路径还是P1={T∑(1;j),对于j={0,...,nm-1}}。因此,计算沿着该路径与所提取的元素T∑(1,2)相邻的元素地址,由此得到随后计算的元素T∑(1,3)。S’变为{T∑(0,3);T∑(1,3);T∑(2,1);T∑(i,0),对于i=3;...;n′m-1}={3;3;2;2}。我们还得到C[6]=T∑(1,2),即C=(TΣ(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(2,0);T∑(0,2);T∑(1,2);X)=(0;0;1;1;1;2;2;X)。以在集S’中提取第nm个值结束搜索,所提取的值是以与上述在集S中选定最小值相同的方式选定的。因此,从S中提取元素T∑(2,1),我们得到C[7]=T∑(2,1),即C=(T∑(0,0);T∑(0,1);T∑(1,0);T∑(1,1);T∑(2,0);T∑(0,2);T∑(1,2);T∑(2,1))=(0;0;1;1;1;2;2;2)。因此,在nm次搜索周期的迭代和2×nm个计算周期之后,确定大小为nm的结果向量。图5a阐释了在与图4的相同矩阵上实施所提出的算法的一个实例。在一个实施例中,所提出的方法定义了矩阵探索路径的排除区域、大小为4×nm-4的选择集S”以及选择集中的每个元素的矩阵探索路径。考虑到接收作为输入的两个消息U和V并生成作为输出的消息E的非二进制LDPC解码器的基本奇偶校验节点的情况。LDPC解码器的校验矩阵的码字符号及非零值属于伽罗瓦域GF(q),而且每个输入消息都包含nm(符号,可靠性)对。如上文所述,由正值的对数似然比LLR表示消息中与符号相关的可靠性。每个输入消息的元素也按照其似然值排序,例如,通过与最可能的符号相对应的第一个元素按照升序排列。因此,我们得到两个输入消息U和V,U=[U(0),...,U(nm-1)],而且V=[v(0),...,V(nm-1)],其中,U(i)和V(i)是成对的与其中与而且与是分别与符号和相关的标准化的LLR。值和分别满足:且以及且在这个实施例中,选择参数nm,使其小于所涉及的伽罗瓦域的q阶。最好选择使其远小于该阶数(nm<<q),尤其是满足解码计算的复杂性约束条件。把搜索满足上文提供的奇偶校验等式1的值限制为进入消息中的nm个最佳符号,从而生成输出消息,所述输出消息的形式是大小为nm的向量。其中,我们再次考虑用表示的、大小为的选择集,在这种情况下,nm是偶数,否则例如,可选择nm为偶数(例如,当q等于64时,等于8),而等于以使选择集占用的存储器最小。从矩阵T∑的探索区域中排除由表示的矩阵T∑的元素的子集意即该集中的任何元素成为选择集所包含的候选元素之前,将其确定。该排除区域的定义使得针对选择集元素定义的路径尽可能短,假定在该排除区域以外定义这些路径。这些路径必须分别覆盖不属于被排除元素的子集的矩阵T∑的元素。在这个实施例中,选择选择集的初始元素,以便可以针对其中每一个定义单向路径。由此确保已经(水平地或者垂直地)存储了每个路径的元素,而在前述L-检泡实例中不是这种情况。因此,把矩阵T∑的探索区域分为四个子空间S1、S2、S3和S4,如图5b所阐释。这些子空间中的每一个都与图5a所阐释的一个路径相对应。我们可以看到,对于四个泡泡,我们有两个水平路径(210,211)和两个垂直路径(212,213)。因为已经按升序存储了输入消息的LLR值,所以也将单独水平或单独垂直的这些路径的元素进行了排序。因此,我们定义了矩阵T∑元素的四个子集(Sk)k=1,...,4,分别与矩阵的探索路径相对应。图5b阐释了在大小为12的方形矩阵T∑中的四个子集。在一个实施例中,通过下面的等式定义四个子集(Sk)k=1,...,4:S1=[U(0)+V(l);l∈{0,...,nm-1}]S2=[V(0)+U(l);l∈{1,...,nm-1}]S3=[U(1)+V(l);l∈{1,...,nm-1}]S4=[V(1)+U(l);l∈{2,...,nm-1}]矩阵T∑的四个探索路径包括矩阵中的4×(nm-1)个位置。在图6a和图6b阐释的所提出的方法的另一个实施例中,通过下面的等式定义分别与“泡泡”的路径相关联的四个子集(Sk)k=1,...,4:S1=[U(0)+V(l);l∈{0,...,nm-1}]S2=[V(0)+U(l);l∈{1,...,nm-1}]矩阵T∑的四个探索路径包括矩阵中的3.nm-4个位置,进一步缩小了探索空间。图7阐释了根据一个特定实施例用于探索矩阵T∑的一种算法(300)。在下文用c1、c2、c3和c4表示比较之后的选择候选元素,使用上文的术语为选择集的元素。把选择集的元素的值初始化(301)为与路径的初始元素相对应的子集(Sk)k=1,...,4的初值,其分别定义为:c1=S1(0),c2=S2(0),c3=S3(0),c4=S4(0)。通过预定值初始化与输出消息相对应的一组值E。例如,也将循环指数k初始化为值1:k=1。然后通过在c1,c2,c3和c4的值中选择(303)一个用cs(k)表示的值执行该算法的一次迭代。如上文所述,元素c1,c2,c3和c4可以是(符号,可靠性)对,在这种情况下,根据可靠性值的标准进行选择。换言之,选择cs(k)意味着在选择集的各对中选择最可靠的一对,在这个实例中,是从c1,c2,c3和c4中选择。可以采用不同的可靠性表示法,包括上文所定义的对数似然比LLR。在这种情况下,cs(k)的选择可包括选择与最小LLR值相关联的ci。作为一个变体,通过算法操作的元素c1,c2,c3和c4可直接与可靠性值相对应,例如,LLR值。然后用所选定的值更新(304)输出消息E:通过用相应子集Si中的下一个值代替所选定的元素ci的值来更新(305)选择集。例如,如果所选定对cs(k)与相应子集(另一种表述为路径)Ss的元素Ss(m)相对应,则在选择集中用与Ss(m+1)相对应的值或数值对代替元素。然后将迭代的循环指数k与值nm作比较(306),以校验是否已经完成了nm次迭代。如果完成的迭代少于nm次,则增加(308)循环指数k,并开始新的迭代。否则,算法结束(307)。在另一个实施例中(图7中未显示),选择(303)最佳可靠性值或者具有最佳可靠性的数值对cs(k)包括验证选自{ci}集中的候选值并不是已经在之前选定的值或数值对的集合中。如果cs(k)已经在集合E中,则不必再次将其选定,并将其挑出,并标为无效候选值。可以用不同的方法把候选值标为无效候选值。例如,算法处理(符号、由LLR表示的可靠性对)时,可把待标为无效值的这对LLR值强制赋为非常低的值,例如,接近或等于零。强制使LLR值为0确保该算法生成分类输出。换言之,因为一个基本奇偶校验节点可能生成无效对,接收这些无效对的另一个基本奇偶校验节点(例如,参考图2c,下层的一个节点)会把有效对与无效对作比较。为了简化处理,我们认为在算法中进行比较时,无效对变为有效对。例如,在一次指定的算法迭代过程中,如果比较分别与子集S1(m1),S2(m2),S3(m3)和S4(m4)的值相对应的值,其中,S3(m3)是一个无效对,而对S2(m2)在四个候选对S1(m1),S2(m2),S3(m3)和S4(m4)中具有最佳可靠性(例如,最小LLR值),那么节点ECN在输出集中则选择并包含对S2(m2)。当然,可能对S3(m3+1)是有效的(就尚未将其选中而包含在输出集中的意义而言)。如果对S3(m3)的LLR值不强制为零,则无法确定S3(m3+1)的可靠性并不是像S2(m2)的可靠性那么好(因此具有较大LLR值)。强加S3(m3)的可靠性为0能从要进行的比较中挑出对S3(m3),从而比较S1(m1),S2(m2),S3(m3+1)和S4(m4),而不是S1(m1),S2(m2),S3(m3)和S4(m4)。在另一个实施例中(图7中未显示),更新(305)对或所选定的值之后还是用与选择相同的方式更新宣布无效的任何对或值,从而把来自奇偶校验节点的输出消息中出现的无效对减少到最少,即使无效对并不是在当前迭代的比较过程中所选的无效对,也这样做。图8显示了执行所提出的探索算法的一个基本奇偶校验节点结构的一个实例。该结构包括四个加法器(403a1,403a2,403b1,403b2)、四个寄存器(406a,406b,406c,406d)、四个FIFO存储器(405a,405b,405c,405d)和一个比较模块(404)。输入消息U和V的元素存储在存储器装置(401,402)中,例如,RAM存储器。根据其可靠性降序存储每个输入消息U和V的元素。在图8所示的实例中,用对数似然比LLR表示可靠性值,因此以升序安排所述对数似然比LLR,最小LLR值代表最大的可靠性。输入消息分别包含nm个元素,每个元素都包括一个(符号,LLR)对,从(元素U(0)和V(0)各自的)具有最低LLR值的元素到(元素U(nm)和V(nm)各自的)具有最高LLR值的元素排列。寄存器(406a,406b,406c,406d)分别存储元素U(0),U(1),V(0)和V(1)。基本奇偶校验节点(400)包括一个加法器模块(403a-403b),其设置为计算:一方面,源自存储器V(402)的元素V(j’)分别与存储在第一个寄存器(406a)中的元素U(0)和存储在第二个寄存器(406b)中的元素U(1)(在所涉及的伽罗瓦域GF(q)内)的和(403a1,403a2);另一方面,源自存储器U(401)的元素U(i’)分别与存储在第三个寄存器(406c)中的元素V(0)和存储在第四个寄存器(406c)中的元素V(1)(在所涉及的伽罗瓦域GF(q)内)的和(403b1,403b2)。因此,该加法器模块(403a,403b)能够生成上文所定义的四个子集(Sk)k=1,...,4的元素。把来自该模块每个加法器(403a1,403a2,403b1,403b2)的输出分别提供给四个FIFO(FirstIn,FirstOut先入先出)型存储器(例如,作为配置到四个FIFO堆叠器中的RAM来实现)(405a,405b,405c,405d),因此所述存储器分别执行上文定义的四个子集(Sk)k=1,...,4之中的一个:大小至少等于(nm/2)-2的第一个FIFO存储器(405a)接收来自集S1的值U(0)+V(j′),大小至少等于(nm/2)-2的第二个FIFO存储器(405b)接收来自集S2的值U(i′)+V(0),大小至少等于(nm/2)-2的第三个FIFO存储器(405c)接收来自集S3的值U(1)+V(j′),以及大小至少等于(nm/2)-2的第四个FIFO存储器(405d)接收来自集S4的值U(i′)+V(1)。把四个FIFO存储器(405a,405b,405c,405d)的输出提供给一个比较模块(404)。在图中所示的实施例中,比较模块包括三个双向比较器(404a,404b,404c):其中两个双向比较器(404a,404b)分别在来自第一个和第二个FIFO存储器(405a,405b)的输出之间与来自第三个和第四个FIFO存储器(405c,405d)的输出之间选择最小LLR值,而第三个比较器(404c)在来自前两个的输出之间选择最小LLR值。节点400的输出值由第三个双向比较器(404c)生成。基本奇偶校验节点进一步包括一个控制单元(407),其配置为控制输入存储器U和V(401,402)和FIFO存储器(405a,405b,405c,405d)、加法器模块(403a,403b)以及比较模块(404)的读/写。比较模块(404)进行比较并在控制单元(407)的每个计算周期生成一个输出消息E元素,假设每个FIFO(405a,405b,405c,405d)至少有一个元素。因此,在每个计算周期中,比较模块(404)在其四个输入中选择最可靠的符号,并更新输出消息E。更新包含所选定的符号的FIFO,以便比较器(404)接收一个新的(符号,LLR)对,作为下一周期比较的输入。在一个实施例中,在算法的初始化阶段,四个FIFO存储器接收分别与四个子集相对应的值,所述四个子集与矩阵探索路径相对应。换言之,提前计算每个子集的值,并且在探索算法的初始化过程中,把预先计算的值存储在FIFO存储器中。作为选择,可将其设置为,针对每个选择的子集,只计算与相应FIFO的大小相对应的一些值。例如,再次利用通过下面等式定义的分别与上文所述的泡泡路径相关联的四个子集(Sk)k=1,...,4:S1=[U(0)+V(l);l∈{0,...,nm-1}]S2=[V(0)+U(l);l∈{1,...,nm-1}]计算存储在所选择的大小等于(nm/2)-2的第一个FIFO存储器(405a)中的S1的(nm/2)-2个第一值;计算存储在所选择的大小等于(nm/2)-2的第二个FIFO存储器(405b)中的S2的(nm/2)-2个第一值;计算存储在所选择的大小等于(nm/2)-2的第三个FIFO存储器(405c)中的S3的(nm/2)-2个第一值;计算存储在所选择的大小等于(nm/2)-2的第四个FIFO存储器(405d)中的S4的(nm/2)-2个第一值。因此,探索算法的每次迭代都减少为只进行双向比较,以便在来自四个FIFO的第一输出值中选择一个值,把替换所选定值的步骤限制为更新FIFO存储器的输出指数,所选定的值源自所述FIFO存储器。该结构经证明比没有预先计算相对应于预定义泡泡路径的子集元素的结构更有效率。这一点令人吃惊,因为与执行探索算法那样计算这些元素,以便在一个FIFO存储器中替换所选项的算法相比,预先计算子集元素需要进行更多运算。这一性能改进是由于算法的控制回路不再包括计算替代所选定元素之元素的运算,而是简单地更新产生该元素的FIFO存储器的指数。因此,在这个实施例中简化了算法控制回路,结果提高了利用FIFO存储器的结构的效率。预先计算FIFO存储器中的元素还能够缩小探索算法所采用的存储器的大小。实际上,在一个实施例中,不再使用存储器U(401)和V(402),在预先计算泡泡路径的元素的阶段,直接为FIFO存储器提供值。当然,所提出的结构不仅限于存储器的一个具体实施方式,尤其是FIFO存储器。可以利用配置为通过软件实现FIFO堆叠器的存储器装置,或者形成FIFO堆叠器的存储器装置的任何其他配置。图9阐释了在一个特定实施例中执行所提出的方法(500)的算法,所提出的方法与上文所述的结构相对应。使个FIFO存储器的值初始化(501)为子集值(Sk)k=1,...,nbub,与其分别定义的(nbub个泡泡的)nbub个路径的元素相对应。也初始化(502)循环指数m,例如,初始化为值1:m=1。然后根据关于相应可靠性度量的标准,从nbub个FIFO存储器的输出值中通过选定(503)用Ss(m)表示的值进行算法迭代。存储在FIFO存储器中的元素可以是(符号,可靠性)对,在这种情况下,Ss(m)的选择包括在每个FIFO存储器的各对输出值中选择一对最可靠的。作为一个变体,存储在FIFO存储器中的元素可以是表示可靠性的值(例如,上文所定义的对数似然比LLR),在这种情况下,Ss(m)的选择包括选择与最高可靠性相对应的输出元素。根据针对可靠性值所选的表示法,如此选择可包括对比FIFO存储器的输出元素,例如,上文所述的双向对比,从而选择例如最小元素。然后,通过选定的值更新输出(504)消息E:E=E∪{Ss(m)}。然后,把迭代循环指数m与预定的循环终止值mmax作比较(505),例如,选择预定的循环终止值mmax,使其等于nm,以便校验是否达到了计划迭代的最大次数。如果进行的迭代少于mmax次,则增加(508)循环指数m,并开始新的迭代。否则,算法结束(506)。在增加迭代指数之后或之前更新FIFO存储器的输出指数,元素Ss(m)源自所述FIFO存储器。例如,如果所选定的元素Ss(m)来自指数k的FIFO,FIFOk,则增加该FIFOk的输出指数,以便为算法的下一次迭代考虑该FIFO中的下一个元素Ss(m)。无论所采用的平台如何,实际上可以至少部分地在任何类型的计算机上执行所提出的方法的实施例。例如,如图2a中所示,计算机系统(100)包括一个数据处理单元(105)、相关存储器(104)(例如随机存取存储器(RAM)、高速缓冲存储器、闪存等)、一个数据存储设备(104)(例如,硬盘、比如CD或DVD这样的光盘、闪存记忆棒等)以及目前计算机(未显示)的很多其它典型元件和功能,所述数据处理单元包括一个或多个处理器,比如中央处理器(CPU)或某些其他硬件处理器。一般而言,计算机系统(100)至少包括最小的处理装置、执行所提出的方法的一个或多个实施例所需的输入和/或输出装置。例如,处理器(105)能够被配置为执行一个计算机程序,所述计算机程序包括部分用于执行输出消息生成器的代码,所述输出消息生成器被配置为生成奇偶校验节点的输出消息的元素,所述奇偶校验节点由根据所提出的方法的各个实施例的系统(100)执行。尽管以软件形式描述了基本奇偶校验节点,尤其是输出消息生成器,但是也可以将其作为硬件或软硬件指令组合来实现。根据所选实施例,其中所述的每个方法的某些行为、动作、事件或功能可以适当地按照与所述顺序不同的顺序进行或发生,或者可以增加、组合或者可以不进行或不发生。此外,在某些实施例中,某些行为、动作或事件可以同时进行或发生,而不是相继进行或发生。尽管采用一些详细的应用实例进行了描述,但是所提出的管理奇偶校验节点计算装置的方法以及实施该方法的计算装置包括对于本领域技术人员而言显而易见的不同的变体、修改和改进,应理解的是,这些变体、修改和改进在下面权利要求书所定义的本发明的范围内。尤其是,尽管上文所述的各个实施例应用了数量为4的泡泡,但是可以把大于或等于二的不同数量nbub的泡泡应用于所提出的管理奇偶校验节点计算装置的方法以及实施该方法的计算装置。此外,尽管上文所述的各个实施例在输入消息元素之间执行加法运算,但是本发明也可以应用于计算操作其中,是满足如下属性的函数:如果a≥b,而且c≥d,则同样,尽管通过本发明对在伽罗瓦域GF(q)中元素的应用进行了说明,但是本发明也可以应用于具有至少一个内部合成律的一组元素。此外,上文所述的各个方面和特征可以一起实施或单独实施,或者相互代替,而且,各个方面和特征的各种组合和子组合在本发明的范围内。此外,上文所述的某些系统和设备可能不包含关于优选实施例所述的所有模块和功能。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1