掌桥专利:专业的专利平台
掌桥专利
首页

非二进制码的消息传递解码的可变节点处理方法和设备

文献发布时间:2023-06-19 10:08:35


非二进制码的消息传递解码的可变节点处理方法和设备

技术领域

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

背景技术

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

例如在数据通信和/或存储中应用的多种设备和系统中实现纠错码。示例性应用包括例如在无线自组织网络(wireless ad-hoc network)中(例如,用Wi-FiTM802.11标准化)、在无线电通信系统中(例如,用3G、4G/LTE、5G等)、在光学通信系统中、以及在数字视频广播中(例如,用DVB-C2、DVB-S2X和DVB-T2标准化)的语音和多媒体传输。

鉴于线性纠错码比非线性纠错码要求更低的实施方式复杂性,因此它们是有优势的。示例性线性纠错码包括卷积码和线性块码,例如Hamming码、Reed-Solomon码、Turbo码、Polar码、以及低密度奇偶校验(LDPC)码。

特别是LDPC码是非常高效的。非二进制LDPC码的性能被证明接近香农极限;它们提供接近在传输信道上可以被传送的最大信息量的高传输速率。非二进制LDPC码在提供高频谱效率编码时是非常高效的,并且性能比二进制LDPC码更好。然而,为了达到这样的增益,要求开发用于非二进制码的低复杂性解码算法,特别是针对高频谱效率通信。

对通常使用线性块码(并且特别是LDPC码)编码的信号进行的解码可以使用迭代消息传递算法来执行。

用于非二进制码(例如,非二进制LDPC码)的示例性解码算法包括:

-例如在“L.Barnault和D.Declercq,Fast decoding algorithm for LDPC overGF(q),In Proceedings of IEEE Information Theory Workshop,70–73页,2003年四月”中公开的“q阵列总和-乘积”算法;

-例如在“V.Savin,Min-max decoding for non-binary LDPC codes,InProceedings of IEEE International Symposium on Information Theory,960–964页,2008年七月”中公开的“最小-最大”算法;

-例如,在“D.Declercq和M.Fossorier,Decoding algorithms for non-binaryLDPC codes over GF,IEEE Transactions on Communications,卷55,第4期,633-643页,2007年四月”中公开的“扩展的最小-最大”(EMS)算法,以及

-在“J.O.Lacruz,F.García-Herrero,J.Valls和D.Declercq,One Minimum OnlyTrellis Decoder for Non-Binary Low-Density Parity-Check Codes,in IEEETransactions on Circuits and Systems I:Regular Papers,卷62,第1期,177-184页,2015年一月”和“E.Li,F.García-Herrero,D.Declercq,K.Gunnam,J.O.Lacruz和J.Valls,“Low latency T-EMS decoder for non-binary LDPC codes”,2013Asilomar Conferenceon Signals,Systems and Computers,Pacific Grove,CA,2013,831-835页”中公开的“网格(Trellis)EMS解码器”(T-EMS)。

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

消息传递算法基于在检查节点处理单元和关联于所用码的图形表示的可变节点处理单元之间交换表示编码数据的消息。解码过程包括:通过计算可变节点消息进行的可变节点更新、通过计算检查节点消息进行的检查节点更新、以及码字决策。每个检查节点和可变节点消息可以包括一个或多个分量,一个分量包括符号以及与该符号相关联的可靠性度量。在解码过程的开始处,发送到检查节点处理单元的可变节点消息可以包括固有消息,固有消息包括固有可靠性度量和固有符号。固有可靠性度量仅根据信道输出/观察来计算。因此,用词“固有”是指固有可靠性度量仅依赖于(传输)信道。与固有可靠性度量相关联的每个符号都被称为固有符号。

在使用EMS算法的解码过程期间涉及的最大计算复杂性源自在检查节点处理单元和可变节点处理单元处执行的计算。

关于非二进制纠错码解码架构的大多数现有工作都关注于检查节点而不是可变节点处的处理。文献中很少有著作致力于在可变节点处理单元处执行的处理。

可变节点处理单元处的处理包括三个主要步骤:根据接收到的信号生成固有可靠性度量,根据固有可靠性度量和由可变节点处理单元接收的检查节点消息计算可变节点消息,以及计算局部决策。计算可变节点消息的步骤包括中间步骤,该中间步骤包括根据固有可靠性度量和检查节点消息来计算被称为“辅助分量”的分量。辅助分量是被用于生成可变节点消息的分量的中间分量。因此,通过在辅助分量之中提取包括不同且最可靠的符号的分量,来确定可变节点消息的分量。为此,计算可变节点消息的步骤涉及排序子步骤和冗余消除子步骤。排序实现根据其中包括的可靠性度量的给定顺序来对辅助分量进行排序。冗余消除实现移除冗余并且在排序的辅助分量之中保留包括不同且最可靠的符号的分量。可变节点处理的这种架构特别在以下文献中被详细地描述:

-C.L.Lin,S.W.Tu,C.L.Chen,H.C.Chang,和C.Y.Lee,“An Efficient DecoderArchitecture for non-binary LDPC Codes with Extended Min-Sum Algorithm,”IEEETransactions on Circuits and Systems II:Express Briefs,卷63,第9期,863–867页,2016年九月。

-E.Boutillon,L.Conde-Canencia,和A.A.Ghouwayel,“Design of a GF(64)-LDPC decoder based on the EMS algorithm,”IEEE Transactions on Circuits andSystems I:Regular Papers,卷60,第10期,2644–2656页,2013年十月。

在现有的可变节点架构中,排序和冗余消除子步骤以单独的方式被连续执行,这要求大量的内存和计算能力,这特别是在对在高阶代数结构上构建的纠错码进行解码的情况下可能是负担不起的。现有的可变节点架构是复杂的,并且仍然要求改进以便降低可变节点消息计算的复杂性。因此,存在低复杂性和低延时的可变节点处理技术的需要。

发明内容

为了解决这些和其他问题,提供了一种在非二进制纠错码解码器中实现的低复杂性且低延时的可变节点处理单元。可变节点被配置为:接收一个检查节点消息和从接收到的信号导出的固有可靠性度量,并且根据从一个检查节点消息和固有可靠性度量导出的辅助分量来生成一个可变节点消息,辅助分量包括辅助符号和关联于所述辅助符号的辅助可靠性度量。可变节点处理单元包括:

-排序和冗余消除单元,其被配置为:迭代地处理辅助分量并且通过以下操作来确定可变节点消息的分量:根据辅助可靠性度量的给定顺序来对辅助分量进行迭代地排序,并且保留包括最可靠且全部互不相同的辅助符号的预定义数量的辅助分量。

根据一些实施例,可变节点处理单元包括计算单元,该计算单元被配置为:根据检查节点消息和固有可靠性度量来确定第一辅助消息,并且根据固有可靠性度量来确定第二辅助消息,所述固有可靠性度量与预定义数量的最可靠固有符号以及参考可靠性度量相关联,所述辅助分量是从第一辅助消息或第二辅助消息中提取的。

根据一些实施例,检查节点消息包括检查节点分量,每个检查节点分量包括符号和关联于所述符号的可靠性度量。在这样的实施例中,计算单元可以被配置为:

-根据在检查节点消息中包括的符号来确定在第一辅助消息中包括的辅助符号,辅助符号从在检查节点分量中包括的符号中被选择,以及

-通过在预定义的代数结构上应用加法运算来确定与在第一辅助消息中包括的辅助符号相关联的每个辅助可靠性度量,加法运算与所选择的辅助符号关联地被应用于与所述辅助符号相关联的固有可靠性度量以及被包括在检查节点分量中的可靠性度量。

根据一些实施例,可变节点处理单元被进一步配置为:接收在非二进制纠错码解码器中根据偏移值和包括最不可靠符号的检查节点分量确定的参考可靠性度量。在这样的实施例中,计算单元可以被配置为:

-根据与最低或最高固有可靠性度量相关联的预定义数量的最可靠固有符号,确定在第二辅助消息中包括的辅助符号,辅助符号等于在最可靠固有符号之中的固有符号;以及

-通过在预定义的代数结构上应用加法运算来确定与第二辅助消息中包括的辅助符号相关联的辅助可靠性度量,该加法运算被应用于所述参考可靠性度量以及所述固有可靠性度量,所述固有可靠性度量与等于所述辅助符号的固有符号相关联。

根据一些实施例,预定义的代数结构是在包括实数域、整数域和自然数域的组中选择的。

根据一些实施例,偏移值是根据预定义的解码性能标准来在非二进制纠错码解码器中确定的。

根据一些实施例,可变节点处理单元被配置为:在多次迭代期间与至少一个检查节点处理单元交换可变节点消息和检查节点消息,偏移值取决于所述迭代次数在非二进制纠错码解码器中被确定,不同的偏移值在所述迭代的每一次中被动态地确定。

根据一些实施例,排序和冗余消除单元包括:

-多个复用器;

-多个可靠性度量比较器;以及

-多个符号比较器;

每个复用器与可靠性度量比较器以及符号比较器相关联,每个复用器被配置为:在每次迭代时取决于由多个符号比较器和多个可靠性度量比较器执行的比较来确定当前候选分量,排序和冗余消除单元被配置为在处理第一和第二辅助消息中包括的所有辅助分量之后,根据包括最可靠且全部互不相同的符号的候选分量来生成可变节点分量。

根据一些实施例,候选分量包括候选符号和关联于所述候选符号的候选可靠性度量。每个复用器可以被配置为:在每次迭代时接收从第一或第二辅助消息中提取的至少辅助分量以及预定义的初始化分量,该预定义的初始化分量包括初始化符号和关联于初始化符号的初始化可靠性度量。在这样的实施例中,每个复用器可以被配置为在每次迭代时通过在以下各项之中选择分量确定当前候选分量:至少辅助分量、预定义的初始化分量、以及与由所述复用器在先前迭代时确定的候选分量相对应的分量;以及:

-与每个复用器相关联的可靠性度量比较器可以被配置为:执行在所述至少辅助分量中包括的辅助可靠性度量与由每个复用器在先前迭代时确定的候选分量中包括的候选可靠性度量之间的比较,以及

-与每个复用器相关联的符号比较器可以被配置为:通过执行在至少辅助分量中包括的辅助符号与在由所述每个复用器在先前迭代时确定的候选分量中包括的候选符号之间的比较,来检查符号的冗余。

根据一些实施例,在每次迭代时,每个复用器315-j可以被配置为:

-通过将当前候选分量设置为等于在先前迭代时确定的候选分量来执行保留动作:

*如果确定至少辅助分量中包括的辅助符号不冗余,其中没有在先前迭代时确定的候选分量中的任何一个,并且确定至少辅助分量中包括的辅助符号比由复用器315-j在先前迭代时确定的候选分量中包括的符号不可靠;或者

*如果确定至少辅助分量中包括的辅助符号冗余,其中由复用器315-m中的至少一个在先前迭代时确定候选分量中的一个中包括的符号中的至少一个,其中m在1和j-1之间变化;

-如果确定在辅助分量中包括的辅助符号不冗余,其中没有由在先前迭代时的复用器315-m在先前迭代时确定的辅助分量中包括的符号中的任何一个,其中m在1和j-1之间变化,并且确定在辅助分量中包括的辅助符号比在由复用器315-j在先前迭代时确定的候选分量中包括的符号可靠,并且该辅助符号比由复用器315-(j-1)在先前迭代时确定的候选分量中包括的符号不可靠,则通过将当前候选分量设置为等于辅助分量来执行插入动作;

-如果确定辅助分量中包括的辅助符号不冗余,其中没有由复用器315-m在先前迭代时确定的候选分量中包括的符号中的任何一个,其中m=1,…,j-1,并且确定在辅助分量中包括的辅助符号比由复用器315-j在先前迭代时确定的候选分量中包括的符号可靠,并且辅助符号比由复用器315-(j-1)在先前迭代时确定的候选分量中包括的符号可靠,则通过将当前候选分量设置为等于由复用器315-(j-1)在先前迭代时确定的候选分量来执行移位动作。

根据一些实施例,多个复用器中的每一个被配置为:通过将当前候选分量设置为等于初始化分量来在第一迭代时执行初始化动作。

根据一些实施例,可变节点处理单元被进一步配置为:响应于由可变节点处理单元递送的固有可靠性度量生成请求来从非二进制纠错码解码器中的数据处理单元在线接收固有可靠性度量

根据一些实施例,可变节点处理单元被进一步配置为:在每次迭代时从存储单元加载至少一部分固有可靠性度量。

还提供了一种用于根据从一个检查节点消息和固有可靠性度量导出的辅助分量来生成一个可变节点消息的方法,所述固有可靠性度量是从接收到的信号中导出的,该辅助分量包括辅助符号和关联于辅助符号的辅助可靠性度量。该方法包括:

-通过以下操作来确定可变节点消息的分量:对辅助分量进行迭代地处理,以用于根据辅助可靠性度量的给定顺序来以对辅助分量进行排序,并且保留包括最可靠且全部互不相同的辅助符号的预定义数量的辅助分量。

有利地,根据本发明的各种实施例的可变节点架构与现有架构相比具有减少的延时并且要求减少的存储和计算资源。

附图说明

并入本说明书并构成本说明书的一部分的附图仅出于说明目的被提供,并且附图与上面给出的本发明的一般描述以及下面给出的实施例的具体实施方式一起示出了本发明的各种实施例。

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

图2是根据一些实施例的非二进制纠错码解码器的框图,在这些实施例中考虑了EMS解码算法;

图3是示出根据一些实施例的可变节点处理单元的结构的框图,在这些实施例中可变节点处理单元的度(degree)为二;

图4是示出根据一些实施例的对使用非二进制纠错码编码的信号进行解码的方法的流程图,在这些实施例中使用了EMS解码算法;

图5是示出根据本发明的一些实施例的计算可变节点消息的方法的流程图,在这些实施例中根据一个检查节点消息和固有可靠性度量来迭代地确定可变节点消息,以及

图6是示出根据本发明的一些实施例的确定包括不同符号的排序的可变节点分量的方法的流程图,其中执行了迭代排序和冗余消除。

具体实施方式

本公开的实施例提供了用于对使用非二进制纠错码编码的信号进行解码的具有降低的计算复杂性和降低的延时的设备、方法和计算机程序产品。特别地,它们提供了在迭代消息传递解码器中实现的高效的低延时、低内存和低复杂性的可变节点处理架构,以用于对使用非二进制纠错码编码的信号进行解码。

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

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

参考图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可以包括被配置为执行反向功能的相应处理块。它可以包括解调器121,该解调器121被配置为在由ECC解码器123进行ECC解码之前,通过对来自传输信道的接收到的信号p执行解调来生成信号y。解调器121可以被配置为将接收到的信号或信道输出移回到基带中并且执行低通滤波、采样和量化。由ECC解码器123解码的数据可以使用任何源解码器(图1中未示出)来进一步解压缩。ECC解码器123可以被配置为实现根据本公开的各种实施例的涉及检查节点处理单元和可变节点处理单元的迭代解码器(被称为“迭代解码算法”)。

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

因此,ECC编码器103可以实现由

线性码

与矩阵表示相关联,线性码

每个可变节点vn∈{1,2,…,n}对应于奇偶校验矩阵的一列。每个检查节点cn∈{1,2,…,n-K}对应于奇偶校验矩阵的一行,即,对应于奇偶校验等式。如果奇偶校验矩阵的条目H

可变节点vn的度d

根据一些实施例,非二进制纠错码

仅出于说明目的,将参考有限域对一些实施例进行以下描述。然而,技术人员将容易理解的是,本公开可以应用于诸如非零交换除环之类的任何类似除环的代数结构以及应用于诸如有限除法拟环(finite division near-ring)的任何拟环。可以在文章“Non-binary LDPC codes over finite division near rings,第23届InternationalConference on Telecommunications(ICT),1-7页,Thessaloniki,2016”中找到有关在有限除法拟环上的非二进制纠错码的设计的见解。

针对在Galois域(通常由GF(q)表示,其中q>2指定码的基数)上构造的非二进制线性码,这些符号取GF(q)中的值。码字向量c因此是n个符号的向量,每个符号都属于GF(q)。

仅出于说明目的,将参考使用非二进制LDPC码对数据进行编码的ECC编码器103对一些实施例进行以下描述。然而,技术人员将容易理解的是,本公开的各种实施例还适用于其他非二进制码,例如非二进制极性码、非二进制卷积码、非二进制turbo码、以及一般地非二进制线性块纠错码。非二进制纠错码可以有利地用于高频谱效率编码。

出于示例性的目的,在一个实施例中,ECC解码器123实现非二进制LDPC码解码器,以用于使用非二进制LDPC码对由ECC编码器103编码的数据进行解码。

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

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

迭代解码器123可以被配置为根据由向量y=(y

迭代解码器123可以被配置为基于在发送器10处使用的码

因此,迭代解码器123可以包括n个可变节点处理单元27(也由27-1至27-n或者27-vn(其中vn=1,…,n)表示)和n-K个检查节点处理单元25(也由25-1到25-(n-K)或者25-cn(其中cn=1,…,n-K)表示)。

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

由可变节点处理单元27-vn生成的消息被称为“可变节点消息”。类似地,由检查节点处理单元25-cn生成的消息被称为“检查节点消息”。

可变节点处理单元27-vn和检查节点处理单元25-cn之间的交换消息可以承载表示符号的数据。

根据一些实施例,可变节点消息和检查节点消息可以承载符号的值和测量其可靠性的度量(在下文中还被称为“可靠性度量”)。可靠性度量的值与符号的可靠性有关。在这样的实施例中,每个可变节点消息和检查节点消息可以包括q个分量,分量包括:

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

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

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

取决于可靠性度量的表达式,最可靠的符号可以与可靠性度量的最小值或最大值相关联。

LLR度量的一种定义涉及由β

β

在等式(1)中,α

因此,利用在Galois域中的符号是等概率的假设,对于第i个符号c

使用LLR度量的这种定义,最可靠的符号是根据等式(2)与最小LLR值相关联的那些符号。

仅出于说明目的,将参考在对数域中由对数似然比(LLR)值表示的可靠性度量来对一些实施例进行以下描述。然而,技术人员将容易理解的是,其他类型的解码和可靠性度量可以用于测量符号的可靠性。例如,可靠性度量可以是符号的概率密度函数的二次距离或任何单调函数。

由各种可变节点处理单元27-vn和检查节点处理单元25-cn执行的处理可以根据若干种调度机制来实现,包括但不限于以下内容所描述的三个示例。

根据第一实施方式,所有可变节点处理单元27-vn(其中vn=1,…,n)可以被配置为在第一轮中操作,并且然后,所有的检查节点处理单元25-cn(其中cn=1,…,n-K)可以被配置为更新要在其对应的集合

根据基于“水平调度”的第二实施方式,检查节点处理单元25-cn(其中cn=1,…,n-K)可以被配置为串行地操作,以更新与它们连接的所有可变节点处理单元27-vn。特别地,一组检查节点处理单元25-cn可以被配置为并行地操作,以更新所有连接的可变节点处理单元27-vn,前提是不存在冲突的可变节点处理单元27-vn(例如,当两个检查节点处理单元25-cn被连接到相同的可变节点处理单元27-vn时)。

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

迭代解码器123可以包括数据处理单元23,该数据处理单元23被配置为根据接收到的信号确定固有符号和固有可靠性度量,表示为x∈GF(q)并且属于Galois域(通常属于非二进制纠错码的代数结构)的固有符号与表示为I

-符号生成器231,其被配置为生成属于代数结构的固有符号x,在该代数结构上构造了非二进制纠错码,以及

-固有可靠性度量生成器233,其被配置为从接收到的信号生成与每个固有符号x相关联的固有可靠性度量I

在等式(3)中,β

根据一些实施例,固有可靠性度量生成器单元233可以被配置为从存储单元21加载接收到的信号y,存储单元21被配置为存储接收到的信号y。

在图2所示的一些实施例中,存储单元21可以被包括在数据处理单元23内。

在其他实施例中(图2中未示出),存储单元21可以被包括在数据处理单元23外部的迭代解码器123中。

根据一些实施例,固有可靠性度量生成器单元233可以被配置为:在迭代解码过程开始之前,离线确定至少一部分固有可靠性度量。在这样的实施例中,固有可靠性度量生成器单元233可以被进一步配置为:将计算出固有可靠性度量的至少一部分存储在存储单元21中。这样的实施例可以被有利地实现用于对在小阶代数结构上构建的码进行解码。

在一些实施例中,固有可靠性度量生成器单元233可以被配置为在迭代解码过程期间在线确定固有可靠性度量。可以有利地实现这样的实施例以用于对高阶非二进制纠错码进行解码,以实现内存节省。

在一些实施例中,固有可靠性度量生成器单元233可以被配置为离线确定固有可靠性度量中的至少一些,并且在线确定剩余的固有可靠性度量。

根据一些实施例(图2中示出),迭代解码器123可以包括单个数据处理单元23,其被配置为确定要被递送到所有可变节点处理单元27-vn(其中vn=1,…,n)的固有可靠性度量。

在其他实施例中(这里未示出),迭代解码器123可以包括多个数据处理单元23-vn(其中vn=1,…,n),每个数据处理单元23-vn被包括在可变节点处理单元23-vn(其中vn=1,…,n)中。

可变节点处理单元27-vn可以被配置为接收从接收到的信号y导出的固有可靠性度量,并且从对应于集合

类似地,检查节点处理单元25-cn可以被配置为处理由对应于集合

消息的交换可以由可变节点处理单元27-vn开始。如果处理后的信号满足奇偶校验等式,或者如果在不满足所有奇偶校验约束的情况下达到最大迭代次数,则消息的交换可以终止。

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

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

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

本公开的各种实施例提供了用于在迭代的非二进制纠错码解码器中实现的度为二(d

-从集合

-根据检查节点消息和固有可靠性度量生成一个可变节点消息。

图3是示出度d

在以下内容中,在可变节点消息中包括的分量被称为“可变节点分量”,而在检查节点消息中包括的分量被称为“检查节点分量”。

根据使用EMS算法的一些实施例,可变节点消息和/或检查节点消息可以根据其可靠性来排序,即,根据其中包括的可靠性度量的给定顺序(例如,递增或递减)来排序。此外,可变节点消息可以被截断以便仅保留预定数量n

在实施例中,预定义数量的可变节点分量n

在另一实施例中,预定义数量的可变节点分量n

出于清楚和简化的目的,将参考排序和截断的检查节点消息V和可变节点消息U对本公开的实施例进行以下描述,检查节点分量和可变节点分量的数量是相等或不同的。但是技术人员将容易理解的是,本公开适用于包括未排序的分量的可变节点消息和检查节点消息。

因此,检查节点消息V可以包括由V

可变节点消息U可以包括由

此外,在以下描述中将使用以下符号:

-n

-x

-I

-U

-U

-J是指由迭代解码器123确定的偏移值,该偏移值J可以是大于或等于零的整数(J≥0);

参考可靠性度量是指其计算,该计算涉及与包括最不可靠性符号的参考检查节点分量相关联的可靠性度量;

根据一些实施例,可变节点处理单元31可以被配置为接收与n

考虑到接收到的检查节点消息V和n

-计算单元311,其被配置为根据检查节点消息V和关联于检查节点消息V中包括的符号的固有可靠性度量

-排序和冗余消除单元313,其被配置为迭代地处理从第一或第二辅助消息中提取的至少辅助分量U

将参考在每次迭代时处理辅助分量来进行以下描述,根据该辅助分量,排序和冗余消除单元313可以被配置为在每次迭代时处理辅助分量。然而,技术人员将容易理解的是,本公开适用于在一个或多个迭代的每一个时处理两个或更多个辅助分量。

因此,计算单元311可以被配置为:

-根据检查节点消息V中包括的符号

-通过在包括实数域、整数域和自然数域的组中选择的预定义代数结构上应用加法运算,确定与第一辅助消息U

根据一些实施例,非二进制纠错码解码器123可以根据等式(4)被进一步配置为:确定偏移值J,并且根据包括最不可靠符号和偏移值的检查节点分量来确定参考可靠性度量

-根据与最高或最低固有可靠性度量I

-通过在预定义的代数结构上应用加法运算来确定与第二辅助消息U

根据一些实施例,解码器123可以被配置为:首先取决于在包括信噪比、解码过程的迭代次数、以及非二进制纠错码的代数结构的组中选择的一个或多个参数来确定与最可靠的固有符号相关联的固有可靠性度量的数量n

根据一些实施例,解码器123可以被配置为:取决于检查节点分量n

根据一些实施例,非二进制纠错码解码器123可以被配置为根据预定义解码性能标准来确定偏移值J。

根据一些实施例,非二进制纠错码解码器123可以被配置为:取决于可变节点处理单元31与检查节点处理单元33和/或检查节点处理单元35之间的消息交换的迭代次数来确定偏移值J,不同的偏移值J在解码处理的每次迭代时被动态地确定。

此外,根据参考图2的一些实施例,非二进制纠错码解码器123可以被配置为针对每个可变节点处理单元27-vn(其中vn=1,…,n)确定不同的偏移值J。

根据图3所示的一些实施例,排序和冗余消除单元313可以被配置为执行迭代排序和冗余消除,以通过复用器和比较器的实施方式来生成可变节点分量。因此,在一些实施例中,排序和冗余消除单元313可以包括:

-多个复用器315-j,其中j=1,…,n

-多个可靠性度量比较器319-j,其中j=0,…,n

-多个符号比较器317-j,其中j=0,…,n

每个复用器315-j可以与可靠性度量比较器319-j和符号比较器317-j相关联。特别地,复用器315-1可以与可靠性度量比较器319-0和319-1以及符号比较器317-0相关联,复用器315-n

即使检查节点分量被排序,第一辅助消息的辅助分量也可能不会被排序,这是由于加法运算涉及与检查节点消息中包括的符号相关联的固有可靠性度量。排序和冗余消除单元313因此用于根据辅助可靠性度量的给定顺序来对辅助分量进行排序,并且实现生成从排序的辅助分量导出的排序的可变节点分量。

此外,在第一辅助消息和第二辅助消息中包括的辅助分量可以包括冗余符号,即,可以包括两个或更多个辅助分量,这些辅助分量包括一个或多个辅助符号的相同值。符号比较器317-j用于冗余消除,以便在辅助分量之中保留包括最可靠的不同符号的分量,并且实现生成包括不同符号的最可靠的可变节点分量。

在每次迭代时(例如,在每个时钟周期时),由控制器318-j对复用器315-j执行的控制动作可以由初始化动作、保留动作、插入动作或移位动作组成。

同时于处理在第一和第二辅助消息中包括的所有n

根据其中在每次迭代时处理一个或多个辅助分量的一些实施例,每个复用器315-j(其中j=1,…,n

-与复用器315-j相关联的可靠性度量比较器319-j可以被配置为执行在辅助分量C

-与每个复用器315-j相关联的符号比较器317-j可以被配置为通过执行在辅助分量C

在其中在每次迭代时处理辅助分量的一些实施例中,每个复用器315-j(其中j=1,…,n

仅出于说明目的,将参考可靠性度量的升序并参考在每次迭代时处理辅助分量对以下实施例进行描述,根据该可靠性度量,最可靠的符号与最小的可靠性度量相关联。

因此,在一些实施例中,接收辅助分量C

-通过将当前候选分量C

*如果在辅助分量C

*如果在辅助分量C

-如果在辅助分量C

-如果在辅助分量C

应当注意的是,对于与复用器315-1关联地执行的比较,在符号和可靠性度量比较期间考虑了预定义的候选分量C

根据一些实施例,为了在第一迭代时初始化候选分量,每个复用器315-j(其中j=1,…,n

在一些实施例中,可以从不同于非二进制纠错码的构造的代数结构的代数结构中选择初始化符号。在一些实施例中,初始化可靠性度量可以是预定义的最大值。

根据一些实施例,可变节点处理单元31可以被配置为从固有可靠性度量生成单元233接收固有可靠性度量,数据处理单元23被配置为在解码过程期间的每次迭代期间在线生成固有可靠性度量;例如,响应于由可变节点处理单元31递送的用于计算第一或第二辅助消息的辅助分量的固有可靠性度量生成请求。每当固有可靠性度量被要求用于可变节点处理单元更新时,在线进行固有可靠性度量的计算实现了避免存储(memorization)所有固有可靠性度量,使得有利地节省了大量的内存和面积,特别是在考虑高阶Galois域时。

在一些实施例中,可变节点处理单元31可以被配置为在每次迭代时从存储单元21加载固有可靠性度量,数据处理单元23被配置为预先离线计算至少一部分固有可靠性度量,并且将固有可靠性度量的计算出的部分存储在存储单元21中。

图4是示出对在通信信道上接收的信号进行解码的方法的流程图,该信号使用在Galois域GF(q)上构造的非二进制纠错码

因此,解码过程可以包括两个阶段:初始化阶段和解码阶段。

在步骤401处,接收到的信号y可以被接收。接收到的信号可以根据以下等式来写作被传送的码字的函数:

y=c+w (9)

在等式(9)中,w指定长度为n的向量,该向量对更改通信信道的噪声进行建模。

在步骤403处,可以确定一个或多个解码参数。解码参数可以包括EMS迭代解码过程的最大迭代次数N

最大迭代次数N

在被应用于EMS算法的一些实施例中,可以将检查节点分量的数量和可变节点分量的数量设置为严格小于Galois域的阶,即,n

在实施例中,可变节点分量的数量n

在另一实施例中,可变节点分量的数量n

根据一些实施例,检查节点分量的数量n

根据一些实施例,可以取决于在包括信噪比、解码过程的迭代次数、以及非二进制纠错码的代数结构的组中选择的一个或多个参数来确定固有可靠性度量的数量n

根据一些实施例,可以取决于检查节点分量的数量n

根据一些实施例,可以根据预定义的解码性能标准来确定偏移值。

根据一些实施例,可以取决于消息交换的迭代次数来确定偏移值,不同的偏移值在解码过程的每次迭代时被动态地确定(即,被更新)。

在步骤405处,可以根据等式(3)来根据接收到的信号计算出与属于Galois域的最可靠的固有符号x

计算出的固有可靠性度量在迭代解码过程期间被用作要由可变节点处理单元递送的初始可变节点消息。在多次迭代期间交换承载这样的可靠性度量的可变节点消息和检查节点消息实现处理信号z=(z

因此,在步骤409处,迭代次数可以被初始化,即,设置为零,N

可以执行步骤411以检查是否满足奇偶校验约束(即,奇偶校验等式)。

如果在步骤411处确定处理后的信号z满足奇偶校验等式并且满足H.z

如果在步骤411处确定不满足奇偶校验约束,则可以执行步骤415以检查是否达到最大迭代次数N

在一些实施例中,检查节点分量的数量和可变节点分量的数量可以是不同的。

在步骤419处,可以根据可变节点消息来计算出检查节点消息。可以根据可靠性度量的给定顺序(递增或递减)来对每个检查节点消息中包括的检查节点分量进行排序。

在步骤421处,可以计算可变节点消息,每个可变节点消息根据一个检查节点消息和n

在步骤423处,可以根据在可变节点分量中包括的可靠性度量来更新处理后的信号z。

在步骤425处,可以根据N

还提供了一种方法,该方法根据一个检查节点消息和从接收到的信号导出的n

图5是描绘根据本公开的一些实施例的计算一个可变节点消息U的可变节点分量

在步骤501处,可以接收一个检查节点消息V,其包括:n

根据一些实施例,可以串行地或顺序地接收n

可以根据从检查节点消息V和固有可靠性度量I

在步骤503处,可以根据检查节点消息V和关联于检查节点消息V中包括的符号的固有可靠性度量

在一些实施例中,第一辅助消息U

在步骤505处,可以根据与预定义数量n

在一些实施例中,第二辅助消息U

根据一些实施例,其中已经预先计算和存储了至少一部分固有可靠性度量I

在其他实施例中,响应于每当计算第一或第二辅助消息的辅助分量而要求固有可靠性度量时递送的固有可靠性度量请求,固有可靠性度量可以被在线(即,在解码阶段期间)计算。

在其他实施例中,至少一部分固有可靠性度量可以被离线计算,并且至少一部分固有可靠性度量可以响应于递送的固有可靠性度量请求而被在线计算。

重新组合第一和第二辅助消息的辅助分量可以不被排序(由于涉及固有可靠性度量的计算),并且可以包括冗余符号。因此,要求排序和冗余消除操作,以便根据辅助分量生成包括最可靠的不同符号的可变节点分量。

在步骤507处,可以根据在第一和第二辅助消息中包括的辅助分量迭代地确定n

图6是示出根据本公开的一些实施例的在步骤507处使用的排序和冗余消除方法的流程图,该排序和冗余消除方法用于根据第一和第二辅助消息中包括的辅助分量来确定n

在时钟周期期间执行迭代的实施例中,排序和冗余消除要求Δ=n

此外,在流水线式的实施例中,其中检查节点分量被在线连续接收(即,在排序和冗余消除过程的迭代的每次迭代时接收检查节点分量),可变节点消息生成在时钟周期数方面的延时可以有利地减少到Δ=1+n

根据一些实施例,排序和冗余消除方法可以基于在每次迭代时对n

-在从第一或第二辅助消息中提取的至少辅助分量C

-在从第一或第二辅助消息中提取的至少辅助分量C

取决于比较结果,可以在每次迭代时决定控制动作,以通过更新在先前迭代时预先确定的候选分量来确定当前候选分量。控制动作可以包括初始化动作、保留动作、插入动作或移位动作。

在步骤601处,可以根据初始化分量C

在步骤603处,可以根据Δ=0来执行排序和冗余消除过程的迭代次数的初始化。在时钟周期期间执行迭代的实施例中,排序和冗余消除过程的迭代次数可以对应于排序和冗余消除处理时间段,即,在时钟周期数方面的延时。

在步骤605处,可以通过检查排序和冗余消除过程的迭代次数Δ是否达到n

如果在步骤605处确定Δ=n

如果在步骤605处确定Δ≠n

将参考在每次迭代时处理辅助分量来进行以下描述。技术人员将容易理解的是,本公开的各种实施例适用于在一次或多次迭代的每一次时对两个或更多个辅助分量的处理。

在步骤611处,可以接收预定义的候选分量C

可以在步骤617、621和623处执行控制动作,以取决于符号和可靠性度量比较的结果并行地确定n

-在以下条件下在步骤621处可以执行插入动作以将当前候选分量C

-在以下条件下可以在步骤615处执行移位动作以将当前候选分量C

-可以在步骤623处执行保留动作,以通过将当前候选分量C

*如果在步骤613处确定在辅助分量C

*如果在步骤613处确定在辅助分量C

根据保留动作,当前候选分量C

可以执行步骤625以根据Δ=Δ+1来递增被执行的迭代的次数。

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

尽管已经通过各种示例的描述示出了本公开的实施例,并且尽管已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求的范围约束或以任何方式限制到这样的细节。

特别地,尽管已经参考EMS算法的特定的实施方式执行了本公开的一些实施例的描述,但是应当注意的是,本公开还可以应用于诸如最小-最大算法之类的其他迭代解码算法。

此外,尽管已经参考在Galois域上构造的纠错码描述了本公开的一些实施例,但是本领域技术人员将容易理解的是,所提出的实施例也可以应用于任何非二进制LDPC码和在非交换组上构造的任何非二进制图纠错码,例如多项式码(例如,循环码)。

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

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

相关技术
  • 非二进制码的消息传递解码的可变节点处理方法和设备
  • 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法
技术分类

06120112430717