非二进制LDPC码的简化的预排序的基于校正子的扩展最小和(EMS)解码的制作方法

文档序号:20364163发布日期:2020-04-10 23:54阅读:343来源:国知局
非二进制LDPC码的简化的预排序的基于校正子的扩展最小和(EMS)解码的制作方法

本发明总体上涉及数字通信,并且具体地涉及用于对使用纠错码编码的信号进行解码的方法和设备。



背景技术:

纠错码在各种数据处理系统和设备中实现,以确保保护数据免受在存在噪声和/或干扰的情况下在数据传输或存储期间引入的错误。编码包括将冗余数据添加到原始数据中,该冗余数据实现对错误的检测和/或纠正。

纠错码在例如数据通信或存储中应用的大量设备和系统中实现。示例性应用包括语音和多媒体传输,例如,在无线自组织网络中(例如,以wi-fi802.11标准化),在无线电通信系统中(例如,在3g、4g/lte、5g及更高版本等中),在光通信系统中,以及在数字视频广播中(例如,以dvb-c2、dvb-s2x和dvb-t2标准化)。

鉴于线性纠错码与非线性纠错码相比要求更低的实现复杂度,因此线性纠错码是有利的。示例性线性纠错码包括卷积码和线性块码,例如,hamming码、reed-solomon码、turbo码、polar码和低密度奇偶校验(ldpc)码。

ldpc码尤其高效。长二进制ldpc码被证明具有接近shannon极限的性能;它们提供接近可以通过传输信道传输的最大信息量的高传输速率。非二进制ldpc码在提供高频谱效率编码方面非常高效,并且比二进制ldpc码性能更好。然而,为了达到这样的增益和性能,要求开发用于非二进制码的低复杂度解码算法,尤其是对于高频谱效率通信。

可以使用迭代消息传递算法来执行对通常使用线性块码并且尤其是使用ldpc码编码的信号的解码。消息传递算法基于在与所使用的码的图形表示相关联的校验节点处理单元和变量节点处理单元之间交换表示编码数据的消息。

针对二进制码(例如,二进制ldpc码)的示例性解码算法包括“和-积”算法和“最小和”算法,两者均在“n.wibereg,h-a.loeliger,andr.kotter,codesanditerativedecodingongeneralgraphs,europeantransactionsontelecommunicationsandrelatedtechnologies,specialissueonturbocoding,june1995”中被公开。

针对非二进制码(例如,非二进制ldpc码)的示例性解码算法包括:

-例如在“l.barnaultandd.declercq,fastdecodingalgorithmforldpcovergf(q),inproceedingsofieeeinformationtheoryworkshop,pages70-73,april2003”中公开的“q-aray和-积”算法;

-例如在“v.savin,min-maxdecodingfornon-binaryldpccodes,inproceedingsofieeeinternationalsymposiumoninformationtheory,pages960-964,july2008”中公开的“最小-最大”算法;

-例如在“d.declercqandm.fossorier,decodingalgorithmsfornon-binaryldpccodesovergf,ieeetransactionsoncommunications,vol,55,no.4,pages633-643,april2007”中公开的“扩展最小和”(ems)算法,以及

-例如在“j.o.lacruz,f.garcía-herrero,j.vallsandd.declercq,oneminimumonlytrellisdecoderfornon-binarylow-densityparity-checkcodes,inieeetransactionsoncircuitsandsystemsi:regularpapers,vol.62,no.1,pages177-184,jan.2015”和“e.li,f.garcía-herrero,d.declercq,k.gunnam,j.o.lacruzandj.valls,"lowlatencyt-emsdecoderfornon-binaryldpccodes,"2013asilomarconferenceonsignals,systemsandcomputers,pacificgrove,ca,2013,pp.831-835”中公开的“网格ems解码器”。

ems算法基于对数尺度计算,以通过将乘积运算转换为简单求和运算来降低计算复杂度。与其他现有的迭代解码算法相比,ems算法在硬件复杂度与通信性能之间取得了很好的折衷。尽管如此,ems算法仍然要求大量的计算和存储资源,而这些资源在例如在实时应用中或在需要高吞吐量和显著减少的延迟的系统中使用的实际设备或系统中可能不可用。

在使用ems解码的解码过程中涉及的最大计算复杂度源于在校验节点处理单元处执行的计算。

应用于ems算法的用于校验节点处理的现有架构包括“向前-向后”架构和“基于校正子的”架构。

向前-向后架构依赖于串行计算,该串行计算涉及由多个基本校验节点处理器执行的基本计算。用于基本校验节点处理的示例性算法包括:

-“e.boutillonandl.conde-canencia,bubblecheck:asimplifiedalgorithmforelementarychecknodeprocessinginextendedmin-sumnon-binaryldpcdecoders,electronicsletters,vol.46,no.9,pp.633-634,april2010”中公开的“气泡校验”算法,以及

-“e.boutillon,l.conde-canencia,anda.alghouwayel,designofagf(64)-ldpcdecoderbasedontheemsalgorithm,ieeetransactionsoncircuitsandsystems,vol.60,no.10,pages2644-2656,october2013”中公开的称为“l-bubble校验”的“气泡校验”算法的改进版本。

由各种基本校验节点处理器生成的中间结果被重用,从而使得硬件成本降低。然而,此架构引入了延迟,并降低了吞吐量。

基于校正子的架构对于解码高阶非二进制码特别高效。使用该架构的交换消息的计算依赖于携带代表编码数据的信息的校正子的计算。在以下文献公开了基于校正子的架构:

-“p.schlafer,n.when,m.alles,t.lehnigk-emden,ande.boutillon,syndromebasedchecknodeprocessingofhighordernb-ldpcdecoders,inproceedingsoftheinternationalconferenceontelecommunications,pages156-162,april2015”;

-“p.schlafer,etal.,anewarchitectureforhighspeed,lowlatencynb-ldpcchecknodeprocessing,inproceedingsofieeeinternationalsymposiumonpersonal,indoorandmobileradiocommunications,august2015”;以及

-“v.rybalkin,p.schlaferandn.wehn,anewarchitectureforhighspeed,lowlatencynb-ldpcchecknodeprocessingforgf(256),inproceedingsofieee83rdvehiculartechnologyconference(vtcspring),nanjing,pages1-5,2016”。

基于校正子的架构允许大规模并行实现,因此允许高吞吐量和低延迟。然而,校正子的计算和排序引入了高复杂度,该复杂度随着校验节点处理单元处理的消息数量的增加而增加,从而限制了基于校正子的架构向处理消息的具有高值的高编码率的应用。

因此,需要开发用于校验节点处理的低复杂度架构,从而提供高吞吐量和低延迟而没有性能损失。



技术实现要素:

为了解决这些和其他问题,提供了一种被配置为确定至少一个校验节点消息以对使用nb-ldpc码编码的信号进行解码的校验节点处理单元。该校验节点处理单元包括:

-到一个或多个消息预排序单元的数据链路,该一个或多个消息预排序单元被配置为通过将一个或多个置换应用于由一个或多个变量节点处理单元生成的至少三个变量节点消息来确定置换后的变量节点消息;

-校正子计算单元,其被配置为根据至少三个置换后的变量节点消息来确定校正子的集合,校正子包括二进制值;

-去相关和置换单元,其被配置为针对具有给定索引的每个校验节点消息进行以下操作:

·通过将一个或多个置换的逆应用于给定索引来确定置换后的索引;

·在校正子的集合中选择至少一个有效校正子,有效校正子包括与置换后的索引相关联的等于给定值的二进制值;

·根据至少一个有效校正子来确定至少一个候选校验节点分量;

-选择单元,其被配置为根据至少一个候选校验节点分量来确定至少一个校验节点消息。

根据一些实施例,每个变量节点消息可以包括至少一个分量,分量包括符号和与符号相关联的可靠性度量。消息预排序单元可以被配置为通过取决于至少三个变量节点消息中包括的可靠性度量而将一个或多个置换应用于至少三个变量节点消息来确定置换后的变量节点消息。每个置换可以与根据置换索引从变量节点消息中提取的分量相关联,并且可以被应用于根据所提取的分量中包括的可靠性度量的给定顺序对变量节点消息进行置换。

根据一些实施例,校验节点处理单元可以被配置为在多次迭代期间与至少一个变量节点处理单元交换至少一个校验节点消息和至少三个变量节点消息。一个或多个消息预排序单元可以被配置为基于信噪比、至少三个变量节点消息中包括的分量的数量、至少三个变量节点消息中的分量中的一些分量中包括的可靠性度量、nb-ldpc码以及迭代的次数中的一个或多个来确定一个或多个置换的数量。

在一些实施例中,每个置换后的变量节点消息可以包括至少一个分量,该至少一个分量包括符号和与符号相关联的可靠性度量。校正子计算单元可以被配置为取决于与所述至少三个置换后的变量节点消息中包括的符号相关联的可靠性度量而与至少三个置换后的变量节点消息的每个分量相关联地确定初始二进制值。

根据一些实施例,校正子计算单元可以被配置为针对至少三个置换后的变量节点消息中的每一个,与包括最可靠的符号的分量相关联地确定等于预定义的第一值的初始二进制值以及与其余分量相关联地确定等于预定义的第二值的初始二进制值。

根据一些实施例,每个校正子还可以包括符号和与符号相关联的可靠性度量,校正子计算单元被配置为:

·通过将nb-ldpc码的构造的代数结构上的加法运算应用于至少三个置换后的变量节点消息中包括的符号中的至少一些符号来确定每个校正子中包括的符号;

·通过应用在包括实数域、整数域和自然数域的组中选择的给定代数结构上的加法运算,确定与每个校正子中包括的每个符号相关联的可靠性度量,加法运算被应用于至少三个置换后的变量节点消息中包括的可靠性度量中的至少一些可靠性度量;

·通过将向量级联运算应用于与至少三个置换后的变量节点消息中包括的分量中的至少一些分量相关联的初始二进制值,确定每个校正子中包括的二进制向量。

根据一些实施例,校正子计算单元可以被配置为使用至少一个基本校验节点处理器来确定校正子的集合,基本校验节点处理器被配置为根据第一消息和第二消息来确定中间消息。第一消息和第二消息可以从至少三个置换后的变量节点消息导出。该中间消息可以包括一个或多个中间分量以及与每个中间分量相关联的中间二进制向量。每个中间分量可以包括符号和与符号相关联的可靠性度量。一个或多个中间分量可以根据可靠性度量的给定顺序被排序,至少一个基本校验节点处理器被配置为根据中间消息来确定校正子的集合,该中间消息是根据至少三个置换后的变量节点消息中的全部来确定的。

根据一些实施例,至少一个基本校验节点处理器可以被配置为:

·根据第一消息和第二消息的分量来确定辅助分量的集合,辅助分量包括符号和与符号相关联的可靠性度量;

·根据所述辅助分量中包括的可靠性度量的给定顺序对辅助分量进行排序;

·与每个辅助分量相关联地确定计数器,该计数器是取决于信噪比和/或nb-ldpc码而确定的;

·通过取决于与辅助分量相关联的计数器而在辅助分量中选择至少一个分量来确定中间分量。

根据一些实施例,至少一个基本校验节点处理器可以被配置为根据包括两个或更多个分量的第一消息和包括一个分量的第二消息来确定中间消息,中间消息包括至少两个中间分量。

根据一些实施例,至少一个基本校验节点处理器可以被配置为根据包括两个分量的第一消息和包括两个或更多个分量的第二消息来确定中间消息,所确定的中间消息包括至少三个中间分量。

在一些实施例中,至少一个基本校验节点处理器可以被配置为确定包括一个中间分量的中间消息,一个中间分量是根据第一消息中包括的最可靠的分量和第二消息中包括的最可靠的分量确定的。

根据一些实施例,候选校验节点分量可以包括符号和与符号相关联的可靠性度量,去相关和置换单元被配置为:

·通过将代数结构上的加法运算应用于有效校正子中包括的符号和变量节点消息的分量中包括的最可靠的符号,确定候选校验节点分量中包括的符号;

·根据有效校正子中包括的可靠性度量,确定与候选校验节点分量中包括的符号相关联的可靠性度量。

根据一些实施例,选择单元可以被配置为通过取决于与符号相关联的可靠性度量而在与所述校验节点消息相关联的候选校验节点分量中选择预定义数量的分量来确定至少一个校验节点消息。

还提供了一种根据通过对至少三个变量节点消息进行置换获得的至少三个置换后的变量节点消息来确定至少一个校验节点消息的方法。该方法可以包括:

-根据至少三个置换后的变量节点消息来确定校正子的集合,校正子包括与每个校验节点消息相关联的二进制值;

-针对具有给定索引的每个校验节点消息进行以下操作:

·通过将一个或多个置换的逆应用于给定索引来确定置换后的索引;

·在校正子的集合中选择至少一个有效校正子,有效校正子包括与置换后的索引相关联的等于给定值的二进制值;

·根据至少一个有效校正子来确定至少一个候选校验节点分量;

-根据至少一个候选校验节点分量来确定至少一个校验节点消息。

有利地,预排序技术使得能够动态改变由校验节点处理单元处理的变量节点消息的顺序,以便将具有可靠决策的变量节点分量与具有低可靠性的变量节点分量分开。对变量节点消息进行极化在统计上减少生成最可靠的校验节点分量所要求的校正子的数量,从而在不影响解码性能的情况下导致显著的硬件节省。实际上,对于校验节点分量的计算,仅使用从校正子导出的候选校验节点分量的最可靠的值,这意味着仅包括最可靠的符号的校正子用于生成校验节点消息。因此,根据变量节点消息计算其他校正子或校正子的总体不仅引入了额外的复杂度,而且还提供了不太可能有助于校验节点消息的计算的校正子。因此,使用预排序对无用的校正子进行抑制能够显著减少所要求的校正子的数量。计算出的校正子的数量的减少导致在校验节点处理单元处的计算复杂度的减轻而没有性能降低。

附图说明

提供包含在本说明书中并构成其一部分的附图,以与上面给出的本发明的总体描述和下面给出的实施例的详细描述一起示出本发明的各种实施例。

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

图2是根据其中使用ems算法一些实施例的纠错码解码器的框图;

图3是示出根据其中使用至少一个基本校验节点处理器的一些实施例的校正子计算单元的结构的框图;

图4是示出根据其中考虑基本校验节点处理器的串行实现的一些实施例的校正子计算单元的结构的框图;

图5是示出根据其中考虑基本校验节点处理器的树实现的一些实施例的校正子计算单元的结构的框图;

图6是示出根据其中考虑基本校验节点处理器的混合实现的一些实施例的校正子计算单元的结构的框图;

图7是示出根据使用ems算法的一些实施例的确定至少一个校验节点消息的方法的流程图。

具体实施方式

本发明的实施例提供了用于以降低的计算复杂度和降低的延迟来解码使用至少一个纠错码编码的信号的设备、方法和计算机程序产品。特别地,它们提供了高效的预排序技术和在迭代解码器中实现的校验节点处理架构,用于对使用至少一个非二进制纠错码编码的信号进行解码。

根据各种实施例的方法、设备和计算机程序产品可以在几种类型的应用中使用的几种类型的数字数据传输和存储设备以及系统中实现。示例性设备和系统包括计算机、磁盘、膝上型计算机、电话、智能电话、记录器、基站、无人机、卫星等。示例性应用包括磁和光记录、数字电视和视频广播、数字通信等。

仅出于说明目的,将参考数字通信系统对本发明的一些实施例进行以下描述。然而,技术人员将容易理解,本发明的各种实施例可以被集成在用于其他应用的其他类型的系统中,例如,定位系统和航天器系统。

参照图1,示出了本发明在数字通信系统100中的示例性应用。通信系统100可以是例如:

-有线的;

-无线的(例如,无线电或可见光通信系统);

-光学的(例如,基于光纤的);

-声学的(例如,水下声学通信系统);

-分子的(用于例如地下结构中,例如,隧道和管道或在水下环境中)。

通信系统100可以至少包括发送器设备10和接收器设备12。发送器设备10(在下文中也称为“发送器”)被配置为经由传输信道11将数据信息传送到接收器设备12(在下文中也称为“接收器”)。

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

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

在本发明向诸如基于光纤的系统之类的光通信系统的应用中,发送器10和接收器12可以是被配置为分别发送和接收通过光链路传播的数据信息的任何光收发器设备。传输信道11可以是被设计成在短距离或长距离上承载数据的任何光纤链路。使用短距离上的光纤链路的示例性应用包括诸如数据中心互连之类的高容量网络。在长距离上使用光纤链路的示例性应用包括地面和越洋传输。在这样的实施例中,由发送器10传送的信息符号可以由根据光纤的不同偏振状态偏振化的光信号携带。光信号根据一种或多种传播模式沿着基于光纤的传输信道11传播,直到到达接收器12。示例性光通信系统包括偏分复用(pdm)和模分复用(mdm)系统。

对于任何类型的有线、无线或光通信系统,传输信道11可以是任何噪声信道。噪声可能是由于系统组件的热噪声或天线截获的干扰辐射引起的。其他示例性噪声源包括切换、手动中断、电火花和闪电。在一些实施例中,总噪声可以通过加性高斯白噪声(awgn)来建模。

此外,根据应用于数字大容量存储的一些实施例,可以例如通过擦除信道、二进制对称信道或高斯信道来对传输信道11建模。在这样的实施例中,传输信道11可以是可以被发送到(写入)和/或从其接收(读取)的任何类型的存储设备。

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

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

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

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

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

仅出于说明的目的,将参考线性块纠错码对本发明的一些实施例进行以下描述。然而,技术人员将容易理解,本发明的各种实施例适用于包括卷积码的任何线性码,并且通常适用于任何纠错码。

因此,ecc编码器103可以实现由指定的线性块纠错码;n和k分别指代码字向量的长度和编码数据块的长度。ecc编码器103相应地将长度为k的数据块u编码为码字向量c,c为长度为n的向量。因此,码字c包括n个元素,也称为“符号”。

线性码可以使用g表示的生成器矩阵和h表示的奇偶校验矩阵以矩阵形式表示。使用向量的行表示法,生成器矩阵g的维数为kxn,而奇偶校验矩阵的维数为(n-k)xn。这两个矩阵通过关系g.ht=0链接。另外,两个矩阵的条目都属于代数结构,在该代数结构上构造了纠错码。使用矩阵表示,任何码字向量c都满足方程c.ht=0。该方程也称为“奇偶校验方程”。它定义了被设计为任何码字向量都满足的n-k个奇偶校验约束。

与矩阵表示相关联地,线性码可以使用被称为“tanner图”的二部图来表示。该图包括n个变量节点和n-k个校验节点。

每个变量节点vn∈{1,2,…,n}对应于奇偶校验矩阵的一列。每个校验节点cn∈{1,2,…,n-k}对应于奇偶校验矩阵的一行,即,对应于奇偶校验方程。如果奇偶校验矩阵的条目hvn,cn不等于零,即,如果hvn,cn≠0,则变量节点vn连接到校验节点cn。

表示连接到变量节点vn的校验节点集合。类似地,表示连接到校验节点cn的变量节点集合。

变量节点vn(相应地校验节点cn)的度对应于集合的基数(相应地集合的基数)。

根据一些实施例,纠错码的构造的代数结构可以是任何非零的交换除法环,例如,域。示例性域包括实数域、复数域、有理数域和有限域(也称为“伽罗瓦(galois)域”)。

仅出于说明的目的,将参考有限域对一些实施例进行以下描述。然而,技术人员将容易理解,本发明可以适用于任何类似除法环的代数结构,例如,非零交换除法环,并且可以适用于诸如有限除法近环的任何近环。可以在文章“non-binaryldpccodesoverfinitedivisionnearrings,201623rdinternationalconferenceontelecommunications(ict),thessaloniki,2016,pp.1-7”中找到关于有限除法近环上的非二进制纠错码的设计的见解。

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

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

出于示例性目的,ecc解码器123实现非二进制ldpc码解码器,用于对由ecc编码器103使用非二进制ldpc码编码的数据进行解码。

参考ems算法对本发明进行描述。然而,技术人员将容易理解,各种实施例适用于任何迭代的非二进制ldpc码解码器,例如,最小-最大和t-ems。

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

迭代解码器123可以被配置为根据接收到的噪声序列y来确定发送器10发送的码字c的估计迭代解码器123可以在多次迭代中处理信号,从而使信号在每次迭代时更接近于发送的码字向量c。

迭代解码器123可以被配置为基于在发送器10处使用的码的tanner图表示来确定估计tanner图中的每个变量节点映射到一个变量节点处理单元。tanner图中的每个校验节点映射到一个校验节点处理单元。

因此,迭代解码器123可以包括n个变量节点处理单元23(也表示为23-1至23-n或23-vn,其中vn=1,…,n)和n-k个校验节点处理单元25(也表示为25-1到25-(n-k)或25-cn,其中cn=1,…,n-k)。

变量节点处理单元23-vn(vn=1,…,n)和校验节点处理单元25-cn(cn=1,…,n-k)可以被配置为迭代地交换消息以根据噪声序列y估计最可靠的码字

由变量节点处理单元23-vn生成的消息被称为“变量节点消息”。类似地,由校验节点处理单元25-cn生成的消息被称为“校验节点消息”。

迭代解码器123可以包括被配置为存储接收序列y的存储单元21。迭代解码器123还可以包括数据处理单元22,该数据处理单元22被配置为确定变量节点消息的固有信息和初始值,并且将它们递送给变量节点处理单元23-vn。

变量节点处理单元23-vn可以被配置为接收固有信息并且从与集合相对应的校验节点处理单元25-cn接收校验节点消息。变量节点处理单元23-vn还可以被配置为处理接收到的校验节点消息,计算局部决策,并将变量节点消息递送到与集合中的校验节点相对应的至少一个校验节点处理单元25-cn。

类似地,校验节点处理单元25-cn可以被配置为处理由与集合相对应的变量节点处理单元23-vn发送的变量节点消息。校验节点处理单元25-cn还可被配置为将校验节点消息递送到与集合中的变量节点相对应的至少一个变量节点处理单元27-vn。

由各种变量节点处理单元23-vn和校验节点处理单元25-cn执行的处理可以根据包括但不限于以下描述的三个示例的几种调度机制来实现。

根据第一实现方式,所有变量节点处理单元23-vn(vn=1,…,n)可以被配置为在第一轮中操作,然后,所有校验节点处理单元25-cn(cn=1,…,n-k)可以配置为更新要递送给其对应的集合中的变量节点处理单元的校验节点消息。这种特定的调度称为“泛洪调度”。特别地,校验节点处理单元25-cn可以被配置为串行或并行操作,其中2至n-k个校验节点处理单元25-cn可以同时操作。

根据基于“水平调度”的第二实现方式,校验节点处理单元25-cn(cn=1,…,n-k)可以被配置为串行地操作,从而更新与它们连接的所有变量节点处理单元23-vn。特别地,一组校验节点处理单元25-cn可以被配置为并行操作,如果不存在冲突的变量节点处理单元23-vn,则更新所有连接的变量节点处理单元23-vn(例如,当两个校验节点处理单元25-cn连接到相同的变量节点处理单元23-vn时)。

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

消息的交换可以由变量节点处理单元23-vn开始。如果处理后的信号满足奇偶校验方程,或者如果达到最大迭代次数但不满足所有奇偶校验约束,则该交换可以终止。

因此,迭代解码器123可以包括信号估计单元29,该信号估计单元29被配置为在解码过程的每次迭代处接收由变量节点处理单元23-vn计算的局部决策,并且:

-如果处理后的信号满足奇偶校验方程,则将处理后的信号作为原始码字向量的估计来递送;或者

-如果达到最大迭代次数但不满足所有奇偶校验约束,则声明解码失败,但输出在最后一次迭代处估计的码字向量。

变量节点处理单元23-vn与校验节点处理单元25-cn之间交换的消息可以携带表示符号的数据。

根据一些实施例,变量节点消息和校验节点消息可以携带符号的值和衡量其可靠性的度量(在下文中也称为“可靠性度量”)。可靠性度量的值与符号的可靠性有关。在这样的实施例中,每个变量节点消息和校验节点消息可以包括q个分量,一个分量包括:

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

-与该符号相关联的可靠性度量。

在下文中,包含在变量节点消息中的分量称为“变量节点分量”,而包含在校验节点消息中的分量称为“校验节点分量”。

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

根据使用ems算法的一些实施例,变量节点消息可以被排序和截断以便仅保持nm,in个最可靠的分量,其中nm,in严格低于q。可以以与符号相关联的可靠性度量的给定顺序(例如,通过升序或降序)来执行排序。此外,排序和截断操作可以由变量节点处理单元23-vn或校验节点处理单元25-cn执行。

迭代解码过程的计算复杂度由校验节点处理单元25-cn执行的计算主导。在使用ems算法来解码非二进制ldpc码的实施例中,提供了变量节点消息预排序技术和基于校正子的架构,使得在不牺牲解码错误性能的情况下降低校验节点处理单元25-cn执行的处理的计算复杂度。

基于校正子的架构包括其中校验节点分量从校正子导出的架构,这些校正子是根据变量节点消息计算的。校正子包括符号、与所述符号相关联的可靠性度量以及称为“丢弃二进制向量”(dbv)的二进制向量。

根据本发明的各种实施例,预排序技术的目的是极化变量节点消息的统计。所提供的预排序技术使得能够动态改变由校验节点处理单元25-cn处理的变量节点消息的顺序,以便将具有可靠决策的变量节点分量与具有低可靠性决策的变量节点分量分开。在基于校正子的解码的应用中,这种极化使得能够减少所计算的校正子的数量,这导致减轻了校验节点处理单元处的计算复杂度而没有性能损失。实际上,使用基于校正子的解码,校验节点分量是根据包括最可靠的符号的校正子导出的。因此,根据变量节点消息计算其他校正子或校正子的总体不仅引入了额外的复杂度,而且还提供了不大可能有助于校验节点消息的计算的校正子。变量节点消息的预排序使得能够将校验节点处的处理集中在最可靠的变量节点分量上,该最可靠的变量节点分量将有助于生成包括最可靠的符号的校正子。因此避免了无用校正子的计算,这导致了显著的硬件节省而不影响解码性能。

根据一些实施例,可以在校验节点处理单元25-cn内实现预排序技术。

在其他实施例中,可以在未在校验节点处理单元25-cn内实现的消息预排序单元内实现预排序技术。因此,参考图2,解码器123可以包括至少一个消息预排序单元24,其被配置为从变量节点处理单元23-vn接收至少三个变量节点消息,并且将置换后的变量节点消息递送给至少一个校验节点处理单元25-cn。

在一些实施例中(在图2中描绘),对于cn=1,…,n-k,解码器123可以包括与每个校验节点处理单元25-cn相关联的消息预排序单元24-cn。例如,可以在校验节点处理单元25-cn并行操作的实施例中使用该配置。

在其他实施例中(图2中未描绘),解码器123可以包括与校验节点处理单元25-cn中的两个或更多个相关联的消息预排序单元。例如,该配置可以对应于其中校验节点处理单元25-cn中的至少一些并行地操作并且其中一些串行地操作的实施例。

仅出于说明的目的,将参考与每个校验节点处理单元25-cn相关联的消息预排序单元24-cn对一些实施例进行以下描述。此外,为了促进对一些实施例的以下描述的理解,下面将使用校验节点处理单元25-cn级别的表示法,其中cn取在1到n-k之间的值。校验节点处理单元25-cn的度由dcn表示,即,tanner图中的对应校验节点连接到构成集合的dcn个变量节点。有利地,校验节点处理单元25-cn的度可以满足dcn≥3。

此外,将使用以下表示法

指由与集合中的节点相关联的变量节点处理单元向校验节点处理单元25-cn发送的变量节点消息;

指定置换后的变量节点消息;

称为中间消息;

称为候选校验节点消息,并且

指代由校验节点处理单元25-cn向集合中的变量节点处理单元23-vn产生的校验节点消息,校验节点消息vi的索引为i,i的取值在1到dcn之间。

仅出于说明的目的,将参考使用基于变量节点消息的排序和截断的ems算法的一些实施例进行以下描述。在这样的实施例中,每个变量节点消息ui包括由下式给出的单列向量表示的nm,in个变量节点分量:

对于j=0,…,nm,in-1,变量节点分量包括由表示的符号以及由表示的与该符号相关联的可靠性度量。可以对每个变量节点消息的变量节点分量进行排序,以使得包括最可靠的符号的分量对应于分量ui[0](i=1,…,dcn),并且(j=0,…,nm,in-2)。

根据一些实施例,与校验节点处理单元25-cn相关联的消息预排序单元24-cn可以被配置为从一个或多个变量节点处理单元接收至少三个变量节点消息它们可以布置在由表示的集合中。使用等式(1)中的变量节点消息的单列向量表示法,集合uin可以写为:

消息预排序单元24-cn可以被配置为通过取决于与符号相关联的可靠性度量而将一个或多个置换应用于集合uin中的变量节点消息来确定置换后的变量节点消息用πt(t=1,…,tmax)表示置换,其中tmax表示所使用的置换的总数。置换后的变量节点消息upi包含由表示的nm,in个分量,每个分量包括符号和与该符号相关联的可靠性度量

根据一些实施例,消息预排序单元24-cn可以被配置为与每个置换πt相关联地确定由jt表示的置换索引,该置换索引取1到nm,in之间的值。

给定置换索引jt,可以根据第jt个变量节点分量ui[jt]的可靠性度量,将置换πt应用于置换集合uin中的变量节点消息中的两个或多个。置换πt使得能够以将所有接收到的变量节点消息中最可靠的变量节点分量与不那么可靠的变量节点分量分开的方式来更改变量节点消息的顺序。

消息预排序单元24-cn可以被配置为通过执行以下四个步骤来确定与向量置换πt相对应的置换后的变量节点消息:

1)从变量节点消息的集合uin中提取行向量p(t),该行向量p(t)包含分量ui[jt],其中i=1,…,dcn,使得:

2)通过以分量ui[jt]中包括的可靠性度量的给定的顺序对向量p(t)进行排序,确定向量sp(t),其中i=1,…,dcn。可以按照可靠性度量的升序或降序来执行排序。

3)根据排序后的向量sp(t)确定与向量p(t)的排序相关联的置换πt,以使得排序后的向量sp(t)可以表示为:

4)将置换πt应用于变量节点消息的集合uin,以获得置换后的变量节点消息的集合使得:

使用校验节点处理单元25-cn级别的消息的局部表示法和校验节点消息的索引,置换πt可被视为索引集合(1,2,…,dcn)到集合πt(1,2,…,dcn)=(πt(1),πt(2),…,πt(dcn))的置换。此外,通过应用与置换πt的逆相对应的逆置换πt-1,可以根据置换后的集合πt(1,2,…,dcn)获得集合(1,2,…,dcn),使得置换πt和逆置换的组合给出了恒等函数,即类似地,可以通过应用逆置换根据置换后的变量节点消息获得变量节点消息使得

为了执行变量节点消息的预排序,消息预排序单元24-cn可以实现dcn排序器(图2中未示出),该dcn排序器专用于根据等式(4)确定针对每个置换πt的排序后的向量sp(t),以及根据等式(5)确定用于执行变量节点消息的集合的置换的置换网络(或交换机)。

此外,在其中根据可靠性度量的给定顺序对变量节点消息进行排序的一些实施例中,可以根据所述给定的顺序对所生成的置换后的变量节点消息进行排序。

根据一些实施例,置换πt的数量tmax可以是预定义的。

根据其他实施例,消息预排序单元24可以被配置为基于信噪比、变量节点分量的数量nm,in、校验节点处理单元25-cn的度、变量节点分量中的一些变量节点分量中包括的可靠性度量、纠错码的构造的代数结构以及迭代解码过程的迭代次数中的一个或多个来确定置换πt的数量tmax。

例如,在一个实施例中,向量置换的数量tmax可以等于1,即,tmax=1对应于单个置换π=π1。

在这样的实施例中,并且当根据等式(1)对变量节点消息进行排序时,置换索引可以有利地等于1,即j1=1。相应地,变量节点消息可以以如下方式置换:以可靠性度量的给定顺序对分量进行排序,其中i=1,…,dcn。在这样的实施例中,消息预排序单元24-cn可以被配置为:

1)从变量节点消息的集合uin中提取行向量p,该行向量p包含分量ui[1],其中i=1,…,dcn,使得:

2)通过以可靠性度量的给定顺序(递增或递减)对向量p排序来确定向量sp,其中i=1,…,dcn。

3)根据排序后的向量sp确定与向量p的排序相关联的置换π,以使得排序后的向量sp可以表示为:

4)将置换π应用于变量节点消息的集合uin,以获得置换后的变量节点消息的集合使得:

使用校验节点处理单元25-cn级别的消息的局部表示法和校验节点消息的索引,置换π可以被视为索引的集合(1,2,…,dcn)到集合π(1,2,…,dcn)=(π(1),π(2),…,π(dcn))的置换。

仅出于说明的目的,将参考由π表示的一个置换的应用进行以下描述。然而,技术人员将容易理解,本发明适用于使用两个或更多个置换对变量节点消息的预排序。特别地,在涉及tmax≥2置换的其他实施例中,可以通过应用由置换π1,π2,…,πtmax的组合产生的置换π来获得置换后的变量节点消息,使得π=π1°π2°…°πtmax。两个或更多个置换的组合提供了这样的置换:该置换可以通过随后应用所组成的置换来获得。使用索引的集合(1,2,…,dcn)的置换,可以根据下式获得置换π1,π2,…,πtmax的组合:

π(1,2,…,dcn)=πtmax(πtmax-1(..(π2(π1(1,2,…,dcn)))))(9)

此外,置换π的逆将由π-1表示,并且对于每个索引i=1,…,dcn,其满足π-1(π(i))=i。

消息预排序单元24-cn还可以被配置为将确定的至少三个置换后的变量节点消息递送到对应的校验节点处理单元25-cn。

校验节点处理单元25-cn可以被配置为根据接收到的至少三个置换后的变量节点消息生成至少一个校验节点消息。

在一些实施例中,校验节点消息可以被截断,使得校验节点消息vi包括以单列表示写为如下的nm,out个校验节点分量:

对于j=0,…,nm,out-1,校验节点分量可以包括符号以及与所述符号相关联的可靠性度量此外,可以根据可靠性度量的给定顺序(递增或递减)对校验节点消息进行排序。特别地,可以以如下方式对校验节点分量进行排序:包括最可靠的符号的校验节点分量对应于分量vi[0](i=1,…,dcn),并且

根据使用基于校正子的解码的一些实施例,校验节点处理单元25-cn可以被配置为通过校正子的计算来确定校验节点消息。根据置换后的变量节点消息计算出校正子。因此,校验节点处理单元25-cn可以包括:

-校正子计算单元26,其被配置为根据置换后的变量节点消息确定ns>1个校正子的集合s={s1,s2,…,sns},校正子由表示,其中r=1,…,ns,校正子包括gf(q)符号与该符号相关联的可靠性度量以及包括dcn个比特的二进制向量表示的比特与第i个校验节点消息vi相关联,其中j=1,…,dcn;

-去相关和置换单元27,其被配置为根据校正子的集合s,与每个校验节点消息vi相关联地确定候选校验节点消息cvi,候选校验节点消息包括至少一个候选校验节点分量其取决于包含在校正子的集合s中的二进制向量确定。更具体地,可以通过在校正子sr(其中r=1,…,ns)中选择包括二进制向量的校正子以使得与校验节点消息vi相关联的比特等于给定值来确定候选校验节点分量cvi[z]。因此,可以针对索引为i的每个校验节点消息vi配置去相关和置换单元27,以用于:

·通过将置换π的逆应用于整数索引i来确定置换后的索引π-1(i);

·在校正子的集合s中选择至少一个有效校正子sr,有效校正子包括与置换后的索引π-1(i)相关联的等于给定值的二进制值并且

·根据至少一个有效校正子确定至少一个校验节点分量cvi[z]。更具体地,去相关和置换单元27可以被配置为分别根据所选择的有效校正子中包括的符号和可靠性度量来确定至少一个候选校验节点消息cvi[z]中包括的符号和可靠性度量

-选择单元28,其被配置为通过取决于所述候选校验节点消息中包括的可靠性度量而从对应的候选校验节点消息cvi中选择nm,out≥1个分量来确定至少一个校验节点消息vi。

根据一些实施例,校正子计算单元26可以被配置为根据下式根据置换后的变量节点消息的分量中包括的符号,确定校正子sr中包括的符号其中r=1,…,ns:

在等式(11)中,对于i=1,…,dcn,每个索引ui在集合{0,1,…,nm,in-1}中变化,并且运算符表示一般是码的构造的代数结构上尤其是伽罗瓦域上的加法运算符。

此外,校正子计算单元26可以被配置为根据下式根据置换后的变量节点消息的分量中包括的可靠性度量来确定校正子sr中包括的可靠性度量其中r=1,…,ns。

等式(12)的加法运算可以在给定的代数结构上执行,该代数结构可以在包括实数域整数域和自然数域的组中选择。例如,在量化的硬件实现和软件实现中,可以有利地在整数域或自然数域上执行加法运算,从而使得能够降低计算复杂度。

此外,校正子计算单元26可以被配置为通过与置换后的变量节点消息的分量中的每个分量相关联地确定初始二进制值,确定校正子sr中包括的二进制向量其中r=1,…,ns。

因此,校正子计算单元26可以被配置为:取决于与置换后的变量节点消息upi的分量upi[j]中包括的符号相关联的可靠性度量与所述分量相关联地确定初始二进制值,其中i=1,…,dcn。特别地,校正子计算单元26可以被配置为与包括最可靠的符号的分量相关联地确定等于预定义的第一值的初始二进制值以及与其余分量相关联地确定等于预定义的第二值的初始二进制值。

因此,在以使得最可靠的分量是upi[0](i=1,…,dcn)的方式对置换后的变量节点消息进行排序的一些实施例中,校正子计算单元26可以被配置为与分量upi[0]相关联地确定等于预定义的第一值的初始二进制值,以及与其余分量upi[j]相关联地确定等于预定义的第二值的初始二进制值,j=1,…,nm,in。

根据一些实施例,预定义的第一值可以等于零(“0”),并且预定义的第二值可以等于一(“1”)。在这样的实施例中,与由表示的置换后的变量节点消息中包括的分量upi[j]相关联的二进制值可以由下式给出:

根据其他实施例,预定义的第一值可以等于一(“1”),并且预定义的第二值可以等于一(“0”)。因此,与置换后的变量节点消息中包括的分量upi[j]相关联的初始二进制值可以由下式给出:

给定确定的初始二进制值,校正子计算单元26可以被配置为根据下式根据初始二进制值确定每个校正子sr中包括的二进制向量

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

应当注意,等式(11)、(12)和(15)中的索引ui在集合{0,1,…,nm,in-1}中变化。更具体地,由于变量节点消息的预排序,索引ui可能在集合{0,1,…,nm,in-1}中在索引的子集中变化,索引的子集对应于包括最可靠的符号的置换后的变量节点消息的分量。因此,在由校验节点处理单元处理之前对变量节点消息进行预排序使得能够显著减少为了生成校验节点分量而需要计算的校正子的数量ns,并且有利地使得能够生成包含最可靠的符号的校正子。

根据一些实施例,校正子计算单元26可以被配置为根据所述校正子中包括的可靠性度量的给定顺序来对校正子sr进行排序,其中r=1,…,ns。

根据一些实施例,校正子的数量ns可以大于或等于置换后的变量节点消息中包括的分量的数量nm,in和/或可以取决于伽罗瓦域的阶。

例如,在gf(64)中,可以通过ns=3nm,out=10nm,in来给出校正子的数量,每个校验节点消息中包括的分量的数量典型地为nm,out=20。

在考虑gf(256)的另一示例中,可以通过ns=3nm,out=20nm,in来给出校正子的数量,每个校验节点消息中包括的校验节点分量的数量典型地为nm,out=60。

在gf(1024)的又一示例中,可以通过ns=3nm,out=45nm,in来给出校正子的数量,每个校验节点消息中包括的校验节点分量的数量典型地为nm,out=150。

根据一些实施例,校正子计算单元26可以被配置为使用至少两个基本校验节点处理器来确定校正子的集合s,从而使得能够进一步降低校正子的计算中涉及的复杂度。实际上,将基本校验节点处理器用于校正子的计算有利地使得能够利用由基本校验节点处理器执行的基本计算的线性复杂度以及基于校正子的解码的并行性。此外,基本校验节点处理器提供排序后的校正子。因此,可以去除在校正子计算之后常规应用的排序操作,从而使得能够降低排序处理所要求的计算复杂度以及降低实现成本。

可以根据各种架构来实现基本校验节点处理器。出于说明而非限制的目的,下面将针对“气泡校正子”架构详细描述一些实施例。然而,技术人员将容易理解,本发明可以适用于涉及校正子的计算的任何架构,例如,t-ems算法。

图3是示出根据其中使用气泡校正子架构的一些实施例的校正子计算单元26的结构的框图。因此,度为dcn的校验节点处理单元25-cn的校正子计算单元26可以包括dcn-1个基本校验节点处理器31(也称为31-i,其中i=1,…,dcn-1)。

因此,校正子计算单元26可以包括至少两个基本校验节点处理器31。每个基本校验节点处理器31可以被配置为根据第一消息和第二消息确定中间消息,第一消息和第二消息是从置换后的变量节点消息导出的。中间消息可以包括:

-至少一个中间分量,包括符号和与所述符号相关联的可靠性度量,以及

-与所述中间分量相关联的中间二进制向量。

使用这种实现方式,校正子计算单元26可以包括基本校验节点处理器31-dcn-1,该基本校验节点处理器31-dcn-1被配置为根据从所有置换后的变量节点消息导出的中间消息来确定校正子的集合。

根据一些实施例,中间消息wt′可以包括数量为nt≥1个中间分量以及与每个中间分量相关联的中间二进制向量。可以根据其中包括的符号的可靠性度量的给定顺序来对中间分量进行排序。

在一些实施例中,每个基本校验节点处理器31可以被配置为通过在伽罗瓦域上(通常在构造纠错码的结构上)应用加法运算来确定中间消息的中间分量中包括的符号,所述加法运算被应用于第一消息的分量中包括的符号和第二消息的分量中包括的符号。

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

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

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

校正子计算单元26可以包括至少一个基本校验节点处理器31,该基本校验节点处理器31被配置为根据两个置换后的变量节点消息来确定中间消息和与中间消息的每个分量相关联的中间二进制向量,第一消息和第二消息分别等于第一置换后的变量节点消息和第二置换后的变量节点消息。

根据其中第一消息和第二消息不同于置换后的变量节点消息,即,对应于架构中先前的基本校验节点处理器31递送的中间消息的一些实施例,从第一消息处理的分量的数量和/或从第二消息处理的分量的数量可以对应于先前由基本校验节点处理器31递送的分量的数量。换言之,由给定的基本校验节点处理器31处理的分量的数量可以取决于由位于该架构中的先前阶段处的基本校验节点处理器31处理的先前中间消息中包括的分量的数量。

为了说明基本校验节点处理器31对中间消息的计算,将参考对均等于置换后的变量节点消息的第一消息和第二消息的处理对一些实施例进行以下描述。

相应地,基本校验节点处理器31可以被配置为处理第一置换后的变量节点消息upl和第二置换后的变量节点消息upp,其中l和p≠l在从1到dcn的索引的集合中变化。第一置换后的变量节点消息可以包括符号的nl=nm,in个分量以及该符号的可靠性度量,而第二置换后的变量节点消息可以包括np=nm,in个分量。基本校验节点处理器31可以被配置为确定包括nt≥1个中间分量的中间消息wt′,并与每个中间分量wt′[j]相关联地确定表示为的中间二进制向量。可以取决于其中包括的符号的可靠性度量根据给定的顺序对包含在中间消息中的中间分量进行排序,使得其中所有j=0,…,nt-2。

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

在第一步骤,基本校验节点处理器31可以被配置为根据第一消息upl的分量和第二消息upp的分量确定辅助分量的集合。辅助分量称为“气泡”。由bt[u][v]表示的气泡是指根据第一消息upl中包括的分量upl[u]和第二消息upp中包括的分量upp[v]获得的分量。索引u在0,1,…,nl-1中变化,并且索引v在0,1,…,np-1中变化。气泡是可以包括以下项的分量:

-由表示的符号,以及

-由表示的符号的可靠性度量;

另外,由表示的二进制向量可以与气泡bt[u][v]相关联。

由nbt表示的考虑的气泡的总数在nt和nl×np之间变化,即,可以大于或等于nt且小于或等于表示气泡的总数的nl×np。

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

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

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

在第二步骤,基本校验节点处理器31可以被配置为根据这些分量中包括的符号的可靠性度量的给定顺序对确定的辅助分量(气泡)进行排序。

在第三步骤,基本校验节点处理器31可以被配置为在排序后的辅助分量中选择包括最可靠的符号的nt个分量,这提供中间消息wt′和与此中间消息中包括的nt个分量的每个分量相关联的二进制向量。

此外,中间消息中包括的分量的数量nt可以小于所考虑的气泡的数量。

由于集合s中的校正子sr是根据从所有置换后的变量节点消息生成的中间消息确定的,并且校验节点分量是从校正子sr中的至少一些导出的,因此每个校验节点处理器31处的所选择的气泡中的至少一些可以有助于校验节点分量的生成。为了进一步降低计算复杂度并避免可能对确定校验节点消息没有贡献的气泡的计算,校正子计算单元26可以包括至少一个基本校验节点处理器31,其被配置为通过对气泡执行统计修剪来确定中间消息的中间分量。统计修剪可以基于气泡的后处理统计分析,该气泡在接收序列的先前解码迭代或先前解码过程期间对校验节点消息的计算做出了贡献。统计分析旨在识别可以潜在地使用/选择哪些气泡,以及可以丢弃哪些气泡而不会损失性能,从而使得能够优化要在给定的基本校验节点处理器31处保留的分量的数量nt。

在这样的实施例中,校正子计算单元25可以包括至少一个基本校验节点处理器31,其被配置为对于给定的信噪比和/或给定的纠错码,将由γ(bt[u][v])表示的计数器(也称为“分数”)与每个气泡bt[u][v]进行关联。至少一个基本校验节点处理器31可以被配置为在解码过程开始时将初始值设置为计数器γ(bt[u][v])。每当气泡bt[u][v]用于计算校验节点消息时,至少一个基本校验节点处理器31可以被配置为使计数器递增,使得:

γ(bt[u][v])=γ(bt[u][v])+1(19)

至少一个基本校验节点处理器31还可以被配置为通过根据气泡的关联分数的递增顺序对nbt个潜在气泡进行排序来确定排序后的气泡的集合。排序后的潜在气泡的集合中的每个气泡bt[u][v]可以与由bt(u,v)表示的索引相关联,以使得与索引为bt(u,v)和bt(u′,v′)(满足bt(u,v)≤bt(u′,v′))的每两个气泡bt[u][v]和bt[u′][v′]相关联的计数器满足不等式γ(bt[u][v])≤γ(bt[u′][v′])。与排序后的气泡相关联的索引可以被布置在由it表示的索引的集合中。给定所考虑的nbt个潜在气泡的分数,至少一个基本校验节点处理器31可以被配置为通过丢弃与最低分数相关联且与前g个索引相关联的nbt-nt个气泡来选择与最高分数相关联的nt个气泡,使得:

在等式(20)中,τ表示介于零(“0”)和一(“1”)之间的实数,并且表示nbt个所考虑的潜在气泡的累积分数。

可选地,所选择的气泡的数量ns可以是nt和nbt之间的任何数字,以便丢弃与该截止值处的最低分数相关联的nbt-ns个气泡。可以通过考虑计算约束与整个解码系统的性能之间的适当折衷来驱动ns的选择。

至少部分地由于统计修剪,可以简化由基本校验节点处理单元31中的至少一个执行的操作,从而使得能够以降低的复杂度进行高速实现,同时提供最佳的错误解码性能。

因此,在一些实施例中,校验节点处理器25-cn的校正子计算单元26可以包括至少一个基本校验节点处理器31,该至少一个基本校验节点处理器31被配置为根据包括两个或更多个分量(即,nl≥2)的第一消息upl和包含一个分量(即,np=1)的第二消息upp来确定中间消息,所确定的中间消息wt′包括至少两个中间分量(即,nt≥2)。这样的基本校验节点处理器31被称为“s-1b”。此外,在两个或更多个s-1b基本校验节点处理器串行操作的实施例中,这些s-1b单元可以被合并以在单个时钟周期中操作,从而使得能够进一步简化所要求的硬件资源。

在一些实施例中,校验节点处理器25-cn的校正子计算单元26可以包括至少一个基本校验节点处理器31,该至少一个基本校验节点处理器31被配置为根据包括两个或更多个分量(即,nl≥2)的第一消息upl和包含两个分量(即,np=2)的第二消息upp来确定中间消息,所确定的中间消息wt′包含至少三个中间分量(即,nt≥3)。这样的基本校验节点处理器31被称为“s-1b+1”。

此外,在一些实施例中,校验节点处理器25-cn的校正子计算单元26可以包括至少一个基本校验节点处理器31,该至少一个基本校验节点处理器31被配置为根据包括一个分量(即,nl=1)的第一消息upl和包括一个分量(即,np=1)的第二消息upp确定中间消息,所确定的中间消息wt′包括一个中间分量(即,nt=1)。这样的基本校验节点处理器31被称为“1b”。

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

图4示出了度为dcn的校验节点处理单元25-cn的校正子计算单元26的结构,该校正子计算单元26包括以串行架构实现的dcn-1个基本校验节点处理器41-l,其中l=1,…,dcn-1。特别地,校正子计算单元26可以包括基本校验节点处理器41-1,该基本校验节点处理器41-1被配置为通过处理两个置换后的变量节点消息up1和up2,来确定中间消息以及与该中间消息的每个分量相关联的中间二进制向量。其余的基本校验节点处理器51-l(l=2,…,dcn-1)可以各自被配置为通过处理一个置换后的变量节点消息和先前由在串行架构的前一阶段操作的基本校验节点处理器51-a(a=1,…,l-2)确定的一个中间消息来确定中间消息和与该中间消息的每个分量相关联的中间二进制向量。

在如图4所示的使用基本校验节点处理器的串行架构的实施例中,可以根据由基本校验节点处理器41-dcn-1递送的中间消息来确定校正子的集合s。

根据一些其他实施例,基本校验节点处理器31可以以树结构来实现。在这样的实施例中,校正子计算单元26可以包括至少一个基本校验节点处理器31,该至少一个基本校验节点处理器31被配置为通过处理两个置换后的变量节点消息来确定中间消息和与该中间消息的每个分量相关联的中间二进制向量。其余的基本校验节点处理器31可以被配置为通过处理两个置换后的变量节点消息或者通过处理先前由在树结构的先前阶段操作的两个基本校验节点处理器31确定的两个中间消息来确定中间消息和与该中间消息的每个分量相关联的中间二进制向量。

图5示出了以树结构实现dcn-1个基本校验节点处理器的度为dcn=8的校验节点处理单元25-cn的校正子计算单元26的结构。如图所示,树架构可以包括3个阶段(以下称为“层”)。包括在第一层处的基本校验节点处理器51可以各自被配置为通过处理两个置换后的变量节点消息来确定中间消息。包括在第二层处的基本校验节点处理器53可以各自被配置为通过处理由位于架构的第一层处的基本校验节点处理器51递送的两个中间消息来确定中间消息。包括在第三层处的基本校验节点处理器55可以各自被配置为通过处理由位于树结构的第二层处的基本校验节点处理器53递送的两个中间消息来确定中间消息。

在使用树结构的实施例中,如图5所例示的,可以根据由位于树结构的最后一个阶段处的基本校验节点处理器55递送的中间消息来确定校正子的集合。

根据一些其他实施例,校正子计算单元26可以包括以混合架构实现的dcn-1个基本校验节点处理器31,该混合架构混合了串行架构和树架构,例如,图6中所描绘的。在这样的实施例中,校正子计算单元26可以包括至少一个基本校验节点处理器61和至少一个基本校验节点处理器63,该至少一个基本校验节点处理器61被配置为通过处理两个置换后的变量节点消息来确定中间消息和与该中间消息的每个分量相关联的中间二进制向量,该至少一个基本校验节点处理器63被配置为通过处理置换后的变量节点消息和由位于混合架构的先前阶段处的基本校验节点处理器61生成的中间消息来确定中间消息和与该中间消息的每个分量相关联的中间二进制向量。

在使用混合架构的实施例中,如图6所例示的,可以根据由位于混合架构的最后一个阶段处的基本校验节点处理器63递送的中间消息来确定校正子的集合。

根据实施例,去相关和置换单元27可以被配置为通过以下操作来与每个校验节点消息vi相关联地确定候选校验节点分量cvi[j]:在所确定的校正子的集合s中选择包括二进制向量的有效校正子,使得与对应于校验节点消息vi的置换后的索引π-1(i)相关联的比特等于零(“0”),因此给定值等于零。

根据另一个实施例,去相关和置换单元27可以被配置为通过以下操作来与每个校验节点消息vi相关联地确定候选校验节点分量的集合cvi[j]:在所确定的校正子的集合s中选择包括二进制向量的有效校正子,使得与对应于校验节点消息vi的置换后的索引τ-1(i)相关联的比特等于一(“1”),因此给定值等于一。

因此,二进制向量dbv可以用于指示应该丢弃校正子并且因此不被去相关和置换单元27选择的输出边缘。校正子中包括的二进制向量中的比特的读取可以用于验证或不验证校正子的选择,从而确定每个候选校验节点消息的候选校验节点分量。因此,候选校验节点分量可以对应于经验证的校正子中包括的分量,并且候选校验节点分量的数量等于所选择的有效校正子的数量nvsi。

被选择用于确定候选校验节点消息cvi的候选校验节点分量cvi[j]的校正子可以包括nvsi≤ns个有效校正子,用vs[z]表示,其中z=0,…,nvsi-1。有效校正子包含符号以及与该符号相关联的可靠性度量vs+[z]。可以根据可靠性度量vs+[z]的顺序(递增或递减)对有效校正子进行排序,以使得包含最可靠的符号的有效符号对应于vs[0],并且vs+[z]≤vs+[z+1],其中z=0,…,nvsi-2。

给定所选择的有效校正子,去相关和置换单元27可以被配置为根据符号的值和所选择的有效校正子中包括的可靠性度量vs+[z]来确定候选校验节点分量其中z=0,…,nvsi-1。更具体地,去相关和置换单元27可以被配置为:

-根据下式确定符号

-根据下式确定可靠性度量

在去相关过程期间,与cn消息的逆置换相关联地执行对有效校正子的选择,从而使得能够有利地在一个步骤中确定与基础校验节点消息相关联的候选校验节点分量,而无需执行由消息预排序单元24执行的置换过程的逆操作。因此,去相关过程使得能够将置换合并为去相关,从而有利地提供执行置换所要求的计算和存储资源的减少。

应该注意的是,尽管在去相关过程期间对有效校正子的选择是与对应于校验节点消息vi的置换后的整数索引τ-1(i)相关联地基于比特执行的,应使用变量节点消息的分量ui[0]执行根据等式(21)对候选校验节点分量中的符号的确定。

去相关和置换单元27可以被配置为使用基本去相关单元(图中未描绘)根据所确定的ns个校正子的集合s来确定候选校验节点消息。更具体地,并且根据一些实施例,去相关和置换单元27可以包括dcn个基本去相关单元,每个基本去相关单元与校验节点消息vi相关联并且被配置为取决于校正子的集合s中的每个校正子中包括的二进制向量而确定候选校验节点消息cvi。

因此每个基本去相关单元可以被配置为根据所选择的有效校正子中包括的符号及其可靠性度量来确定候选校验节点分量更准确地,与校验节点消息vi相关联的第i个基本去相关单元可以被配置为:

-根据等式(21),根据所选择的校正子中包括的符号确定至少一个候选校验节点分量的符号并且

-根据等式(22),根据所选择的校正子中包括的可靠性度量确定至少一个候选校验节点分量的可靠性度量

根据一些实施例,选择单元28可以被配置为从候选校验节点分量cvi[z]中选择包括不同符号的nm,out个校验节点分量,其中z=0,…,nvsi-1。因此,选择单元28可以首先被配置为执行候选校验节点分量cvi[z]中的冗余消除,以用于保留包括相同符号的分量中(即,包含冗余符号的分量中)的包含最可靠的符号的一个分量。在第二步骤,选择单元28可以被配置为取决于包含在其中的符号的可靠性度量,从处理后的候选校验节点分量中选择nm,out≤nvsi个分量,使得选择包含最可靠的不同符号的nm,out个分量。

根据其他实施例,选择单元28可以被配置为通过仅对候选校验节点分量执行冗余消除来从每个确定的候选校验节点消息cvi的分量中选择nm,out个校验节点分量。换言之,所选择的nm,out个校验节点分量可以对应于包括不同符号的候选校验节点分量cvi[z]。在候选校验节点消息cvi不包括具有相同符号的分量的实施例中,所选择的nm,out个校验节点分量可以对应于所选择的有效校正子中包括的分量,在这种情况下nm,out等于有效校正子的数量,即,nm,out=nvsi。

在其他实施例中,选择单元28可以被配置为在不执行冗余消除的情况下,从所确定的候选校验节点消息分量cvi[z]中选择nm,out≤nvsi个校验节点分量,校验节点分量的数量nm,out小于或等于所选择的有效校正子的数量nvsi,并且所选择的校验节点分量包括所选择的有效校正子中包括的符号及其相关联的可靠性度量。

应当注意,在选择单元28不执行冗余消除的实施例中,校验节点分量可以包括两个或更多个包括相同符号的分量。在这样的实施例中,可以在所计算的校验节点消息的变量节点处理单元接收器的级别执行冗余消除。

根据一些实施例,在各个校验节点处理单元25-cn(cn在1,…,n-k中变化)中实现的选择单元28可以被配置为选择相同数量nm,out个校验节点分量以确定校验节点消息。

根据其他实施例,在校验节点处理单元25-cn中的一个或多个中实现的选择单元28可以被配置为选择不同数量nm,out个校验节点分量以确定校验节点消息。在这样的实施例中,接收这些校验节点消息的变量节点处理单元23-vn可以被配置为执行截断操作以在每个接收到的校验节点消息中保留相同数量的分量。

此外,根据一些实施例,校验节点分量的数量nm,out可以与置换后的变量节点消息中或等效地变量节点消息中的分量的数量nm,in不同。特别地,校验节点分量的数量可以满足nm,out≥nm,in。

在一些实施例中,校验节点分量的数量nm,out可以取决于置换后的变量节点消息中包括的分量的数量nm,in。

校验节点分量的数量nm,out还可以取决于纠错码(例如,在其上构造码的代数结构),和/或取决于迭代解码过程的解码迭代的阶,和/或取决于信噪比,和/或取决于校验节点处理单元215-cn的计算和存储能力。

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

例如,对于gf(64)上的伽罗瓦域,根据nm,out=3nm,in,校验节点分量的数量nm,out可能与置换后的变量节点消息中包括的分量的数量有关。对于gf(1024)上的伽罗瓦域,根据nm,out=15nm,in,校验节点分量的数量nm,out可能与置换后的变量节点消息中包括的分量的数量有关。

图7是示出根据其中在基于校正子的解码之前应用变量节点消息的预排序的各种实施例的在用于解码在伽罗瓦域上构造的非二进制ldpc码的ems算法中实现的根据dcn≥3的至少三个变量节点消息确定至少一个校验节点消息vi的方法的流程图。可以取决于变量节点分量中包括的可靠性度量来执行预排序。该方法可以在ems解码过程期间使用的度dcn≥3的任何校验节点处理单元中实现。

仅出于说明的目的,将参考由对数似然比(llr)值在对数域中表示的可靠性度量对一些实施例进行以下描述。然而,技术人员将容易理解,可以使用其他类型的可靠性度量来衡量符号的可靠性。此外,在下面的描述中将考虑排序和截断的变量节点消息和校验节点消息,每个变量节点消息包括nm,in个变量节点分量,每个校验节点消息包括nm,out个校验节点分量。

校验节点消息的计算方法是在ems算法的迭代解码过程期间执行的消息交换的一部分。可以执行解码过程,以通过应用信度传播解码规则来根据由向量y=(y1,…,yn)表示的接收噪声序列确定原始码字c的估计码字c=(c1,…,cn)可能已经在发送器处使用在q>2的伽罗瓦域gf(q)上构造的非二进制ldpc码进行了编码。

llr是衡量符号的可靠性的度量。llr度量的一种定义涉及固定的参考符号。标记为βi的符号ci的参考符号可以对应于满足下式的最可靠的符号:

βi=argmaxt=0,…,q-1p(αt|yi)(23)

在等式(23)中,αt表示gf符号。

因此,对于第i个符号ci,该符号的llr值等于αt,记为llrt(ci),并且可以表示为:

使用llr度量的这种定义,最可靠的符号是具有最小的llr值的符号。

可以执行步骤701以接收至少三个变量节点消息每个变量节点消息ui可以根据以向量表示法编写,使得每个变量节点分量包含由表示的符号和与该符号相关联的由表示的llr度量,并且携带最可靠的符号的分量对应于分量ui[0],其中i=1,…,dcn,并且对于每个0≤j≤nm,in-2,

接收到的变量节点消息可以被写入如等式(2)中表示的集合

可以执行步骤703,以通过取决于与变量节点消息中包括的符号相关联的可靠性度量对集合uin中的变量节点消息应用一个或多个置换τt(t=1,…,tmax)来确定置换后的变量节点消息每个置换τt与置换索引jt相关联,该置换索引取1到nm,in之间的值。

更具体地,给定置换索引jt(先前确定或存储在存储单元中),可以根据第jt个变量节点分量ui[jt]的可靠性度量,应用置换τt以置换集合uin中的变量节点消息中的两个或更多个。

更具体地,使用置换πt对置换后的变量节点消息的确定可以按照以下四个步骤执行:

1)根据等式(3),从变量节点消息的集合uin中提取包括分量ui[jt]的行向量p(t)

2)通过按照分量ui[jt](i=1,…,dcn)中包括的可靠性度量的给定顺序对向量p(t)进行排序来确定向量sp(t)。可以按照可靠性度量的升序或降序来执行排序;

3)根据排序后的向量sp(t)确定与向量p(t)的排序相关联的置换πt,以使得排序后的向量sp(t)可以用等式(4)表示;

4)将置换πt应用于变量节点消息的集合uin,以根据等式(5)获得置换后的变量节点消息的集合

因此,置换πt可以被视为校验节点消息的索引的集合(1,2,…,dcn)到集合πt(1,2,…,dcn)=(πt(1),πt(2),…,πt(dcn))的置换。

在一些实施例中,可以根据包含在其中的分量的可靠性度量的给定顺序来对置换后的变量节点消息进行排序。

根据一些实施例,置换πt的数量tmax可以是预定义的。

根据其他实施例,可以基于信噪比、变量节点分量的数量nm,in、变量节点消息的数量dcn、变量节点分量中的一些变量节点分量中包括的可靠性度量、纠错码的构造的代数结构以及迭代解码过程的迭代次数中的一个或多个来确定置换πt的数量tmax。

例如,在一个实施例中,向量置换的数量tmax可以等于1,即,tmax=1对应于一个置换π=π1。

在这样的实施例中,并且当变量节点消息被排序和截断时,置换索引可以有利地等于1,即,j1=1。

因此,变量节点消息可以以如下方式置换:以可靠性度量的给定顺序对分量进行排序,其中i=1,…,dcn。在这样的实施例中,步骤703可以包括:

1)根据等式(6)从变量节点消息的集合uin中提取行向量p,该行向量包括分量ui[1],其中i=1,…,dcn;

2)通过将向量p排序为可靠性度量的给定顺序(升序或降序)来确定向量sp,其中i=1,…,dcn;

3)根据排序后的向量sp确定与向量p的排序相关联的置换π,使得排序后的向量sp可以如等式(7)表示;

4)根据等式(8),将置换π应用于变量节点消息的集合uin,以获得置换后的变量节点消息的集合

置换π可以被视为校验节点消息的索引的集合(1,2,…,dcn)到集合π(1,2,…,dcn)=(π(1),π(2),…,π(dcn))的置换。

应当注意,变量节点消息中的分量的数量nm,in与置换后的变量节点消息中的分量的数量相同。另外,置换后的变量节点消息中的每一个可以按照分量(其中j=0,…,nm,in-1)的可靠性度量的给定顺序进行排序。特别地,每个置换后的消息可以按照llr度量的升序进行排序,使得携带最可靠的符号的分量对应于分量upi[0](i=1,…,dcn),并且

可以执行步骤705来与置换后的变量节点消息upi(i=1,…,dcn)中包括的每个分量upi[j](j=0,…,nm,in-1)相关联地确定初始二进制值

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

根据一些实施例,预定义的第一值可以等于零(“0”),并且预定义的第二值可以等于一(“1”)。在这样的实施例中,与分量upi[j]相关联的二进制值可以由等式(13)给出。

根据其他实施例,预定义的第一值可以等于一(“1”),并且预定义的第二值可以等于零(“0”)。因此,与分量upi[j]相关联的初始二进制值可以由等式(14)给出。

可以执行步骤707,以根据置换后的变量节点消息确定ns>1个校正子的集合s={s1,s2,…,sns},校正子包括gf(q)符号与该符号相关联的可靠性度量以及包括dcn个比特的二进制向量每个比特与第i个校验节点消息vi相关联。

根据一些实施例,可以根据等式(11),根据置换后的变量节点消息的分量中包括的符号来确定校正子sr(r=1,…,ns)中包括的符号

在一些实施例中,可以根据等式(12),根据置换后的变量节点消息的分量中包括的可靠性度量来确定校正子sr(r=1,…,ns)中包括的可靠性度量

此外,可以根据等式(15),根据与置换后的变量节点消息中包括的分量相关联的初始二进制值来确定每个校正子sr(r=1,…,ns)中包括的二进制向量

根据一些实施例,校正子的数量ns可以大于或等于置换后的变量节点消息中包括的分量的数量nm,in和/或可以取决于伽罗瓦域的阶。

例如,在gf(64)中,可以通过ns=3nm,out=10nm,in来给出校正子的数量,每个校验节点消息中包括的分量的数量典型地为nm,out=20。

在考虑gf(256)的另一示例中,可以通过ns=3nm,out=20nm,in来给出校正子的数量,每个校验节点消息中包括的校验节点分量的数量典型地为nm,out=60。

在gf(1024)的又另一示例中,可以通过ns=3nm,out=45nm,in来给出校正子的数量,每个校验节点消息中包括的校验节点分量的数量典型地为nm,out=150。

根据一些实施例,可以使用根据第一消息和第二消息分别确定的中间消息的基本计算来确定校正子的集合s,第一消息和第二消息是从置换后的变量节点消息导出的。更具体地,可以通过根据所有置换后的消息确定的中间消息来确定校正子的集合。

根据一些实施例,中间消息wt′可以包括数量为nt≥1个中间分量,每个中间分量包括至少一个符号及其可靠性度量,以及与每个中间分量相关联的中间二进制向量。可以根据其中包括的符号的可靠性度量的给定顺序来对中间分量进行排序。

根据一些实施例,可以通过应用在伽罗瓦域上(通常在构造纠错码的结构上)的加法运算来确定中间消息的中间分量中包括的符号,所述加法运算应用于第一消息的分量中包括的符号和第二消息的分量中包括的符号。

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

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

例如,在量化的硬件实现方式和软件实现方式中,可以通过应用在整数域或自然数域上的加法运算来确定与中间消息的中间分量中包括的符号相关联的可靠性度量,从而降低复杂度。

此外,在一些实施例中,第一消息和第二消息的每个分量可以与从初始二进制值导出的二进制向量相关联。在这样的实施例中,可以通过应用向量级联运算来确定与中间分量相关联的中间二进制向量,该向量级联运算被应用于与第一消息的分量相关联的二进制向量以及与第二消息的分量相关联的二进制向量。

取决于中间消息的计算的阶段,第一消息和第二消息可以对应于置换后的变量节点消息,或者对应于在基本计算期间先前确定的至少一个中间消息。

根据其中第一消息和第二消息与置换后的变量节点消息不同的一些实施例,从第一消息处理的分量的数量和/或从第二消息处理的分量的数量可以对应于在基本计算期间先前在较早阶段确定的中间消息中包括的分量的数量。

对于通过处理两个置换后的变量节点消息upl和upp(l和p≠l在从1到dcn的索引的集合中变化)确定的中间消息,由wt′表示的中间消息可以根据置换后的变量节点消息的分量来确定。与中间消息的每个中间分量相关联的中间二进制向量可以根据与置换后的变量节点消息的每个分量相关联的初始二进制值来确定。因此,中间消息wt′可以包括nt个分量wt′[j](j=0,…nt-1)和与每个中间分量wt′[j]相关联的中间二进制向量中间分量可以包含符号和与该符号相关联的llr度量

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

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

在第一步骤,可以根据第一消息upl的分量和第二消息upp的分量确定辅助分量的集合。辅助分量bt[u][v]被称为“气泡”。它是指根据第一消息upl中包括的分量upl[u]和第二消息upp中包括的分量upp[v]获得的分量。索引u在0,1,…,nl-1中变化,并且索引v在0,1,…,np-1中变化。气泡可以包括符号及其相关联的可靠性度量

另外,由表示的二进制向量可以与气泡bt[u][v]相关联。

气泡的总数nbt可以在nt和nl×np之间变化,即,可以大于或等于nt且小于或等于nl×np。

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

根据一些实施例,辅助分量bt[u][v]中包括的llr度量可以根据等式(17)确定,其中u=0,1,…,nl-1并且v=0,1,…,np-1。

根据一些实施例,与辅助分量bt[u][v]相关联的二进制向量可以根据先前在等式(18)中表示的向量级联运算来确定,其中u=0,1,…,nl-1并且v=0,1,…,np-1。

在第二步骤,可以根据每个辅助分量中包括的llr度量的给定顺序(递增或递减)对所计算的nbt个辅助分量进行排序。

在第三步骤,可以执行截断操作以在排序后的辅助分量中选择包括最可靠的符号的nt个分量,这提供中间消息wt′和与该中间消息中包括的nt个分量中的每个分量相关联的二进制向量。

此外,中间消息中包括的分量的数量nt可以小于所考虑的气泡的数量nbt。

根据一些实施例,统计修剪方法可以应用于在所确定的潜在气泡中选择最可靠的nt个气泡。统计修剪方法可以基于气泡的后处理分析,该后处理分析高效地有助于校验节点消息的计算。

统计修剪方法可以依赖于与每个气泡相关联地对计数器(或分数)的计算,对于给定的纠错码和/或给定的信噪比,所述计数器枚举给定气泡对校验节点消息的计算的贡献的重复发生。与每个气泡bt[u][v]相关联的计数器γ(bt[u][v])可以被初始化为初始值,例如,等于零,并且每当气泡bt[u][v]有助于计算校验节点分量时,在解码过程期间根据等式(19)递增。

给定与排序后的nbt个潜在气泡中的每一个相关联的计数器,可以根据等式(20)通过抑制与最低计数器相关联的nbt-nt个气泡来选择与最高计数器相关联的nt个气泡。

使用统计修剪方法,由于变量节点消息的预排序,在可以保留以获得中间消息的气泡的数量方面可以实现有意义的简化。

例如,在一些实施例中,可以根据包括两个或更多个分量(即,nl≥2)的第一消息upl和包括一个分量(即,np=1)的第二消息upp来确定包括至少两个中间分量(即,nt≥2)的中间消息wt′。

在另一示例中,可以根据包括两个或更多个分量(即,nl≥2)的第一消息upl和包括两个分量(即,np=2)的第二消息upp来确定包括至少三个中间分量(即,nt≥3)的中间消息wt′。

在又一示例中,在一些实施例中,可以根据包括一个分量(即,nl=1)的第一消息upl和包括一个分量(即,np=1)的第二消息upp来确定包括一个中间分量(即,nt=1)的中间消息wt′。

可以根据使用所有置换后的变量节点消息计算出的中间消息确定校正子的集合。特别地,使用串行架构、树架构或混合架构,可以根据从在架构中执行的最后一个基本计算递送的中间消息来确定该校正子的集合。

可以执行步骤709,以根据集合s中的校正子sr中包括的可靠性度量的给定顺序(升序或降序)来对所述校正子进行排序。在其中使用基本计算来确定校正子的集合的实施例中,可以取消该步骤,因为这些计算提供了排序后的中间分量并且因此提供了排序后的校正子。

可以执行步骤711,以与取决于校正子的集合s中包括的二进制向量确定的每个校验节点消息vi相关联地确定候选校验节点消息cvi。候选校验节点消息cvi可以包括至少一个候选校验节点分量cvi[z],其包括符号和与所述符号相关联的可靠性度量更具体地,对于具有索引i的每个校验节点消息vi,可以通过选择以下各项来确定候选校验节点分量cvi[z]:

·通过将置换π的逆应用于整数索引i,确定置换后的索引π-1(i);

·在校正子的集合s中选择至少一个有效校正子sr,有效校正子包括与置换后的索引π-1(i)相关联的等于给定值的二进制值即,使得与校验节点消息vi相关联的比特等于给定值。

因此,候选校验节点分量可以对应于经验证的校正子中包括的分量,并且候选校验节点分量的数量等于所选择的有效校正子的数量nvsi。

在一些实施例中,给定值可以等于一(“1”)。

在其他实施例中,给定值可以等于零(“0”)。

根据一些实施例,根据等式(21),可以根据所选择的校正子中包括的符号来确定候选校验节点分量cvi[z]中包括的符号

在一些实施例中,根据等式(22),可以根据所选择的校正子中包括的可靠性度量来确定候选校验节点分量cvi[z]中包括的可靠性度量

在步骤713处,可以对与每个校验节点消息相关联的候选校验节点分量执行冗余消除操作,以用于在包括相同符号的分量之中保留包含最可靠的符号的分量。

可以执行步骤715,以通过取决于与符号相关联的可靠性度量从步骤713中处理的候选校验节点分量中选择数量为nm,out≥1个校验节点分量来确定每个校验节点消息的校验节点分量,校验节点分量包括不同的符号。

可以执行步骤717,以递送所计算的至少一个校验节点消息并终止。

由于校验节点消息的计算是迭代解码过程的一部分,因此可以进一步处理所递送的校验节点消息,以便检查是否满足奇偶校验等式并决定是继续迭代解码过程还是停止。更具体地:

-如果尚未达到最大迭代次数并且不满足奇偶校验方程,则可以处理校验节点消息以确定变量节点消息;

-如果处理后的信号满足奇偶校验方程,则解码过程可以终止,并且可以将处理后的信号作为原始码字的估计来递送;

-如果在不满足所有奇偶校验约束的情况下达到最大迭代次数,则可以声明解码失败,并且可以输出在最后一次迭代中估计的码字作为原始码字的估计。

因此,除了在延迟方面的显著改进之外,根据本发明的实施例的架构还提供了最佳的解码性能,同时显著降低了解码计算复杂度和实现硬件成本。

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

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

特别地,尽管已经参考ems算法的特定实现方式对本发明的一些实施例进行了描述,但是应当注意,本发明还可以适用于其他迭代解码算法,例如,最小-最大算法。

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

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

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

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