CN112470406A - 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法 - Google Patents

用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法 Download PDF

Info

Publication number
CN112470406A
CN112470406A CN201980045288.5A CN201980045288A CN112470406A CN 112470406 A CN112470406 A CN 112470406A CN 201980045288 A CN201980045288 A CN 201980045288A CN 112470406 A CN112470406 A CN 112470406A
Authority
CN
China
Prior art keywords
check node
component
auxiliary
components
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980045288.5A
Other languages
English (en)
Inventor
E·布蒂永
C·马尔尚
H·哈博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite de Bretagne Sud
Original Assignee
Universite de Bretagne Sud
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite de Bretagne Sud filed Critical Universite de Bretagne Sud
Publication of CN112470406A publication Critical patent/CN112470406A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6591Truncation, saturation and clamping

Abstract

一种排序设备,该排序设备用于通过对辅助分量进行排序来确定在非二进制纠错码解码器中实现的基本校验节点处理器(3)中的基本校验节点分量。该辅助分量被存储在多个FIFO存储器(33‑n)中,每个FIFO存储器(33‑n)被指派有FIFO编号索引。被存储在给定FIFO存储器(33‑n)中的每个辅助分量包括辅助符号、表示辅助符号的可靠性的可靠性度量以及被指派给给定FIFO存储器(33‑n)的FIFO编号索引。排序设备被配置为通过顺序布置的多个复用器(34‑m)来对辅助分量进行排序。每个复用器(34‑m)被配置为根据FIFO存储器的分量来初始化候选基本校验节点分量,该分量对应于包括最可靠的辅助符号的辅助分量。根据辅助符号的可靠性度量对候选基本校验节点分量进行排序,并且每个复用器(34‑m)被配置为执行以下步骤的一次或多次迭代:‑接收从FIFO存储器(33‑n)中提取的包括最可靠的候选符号的辅助分量,该FIFO存储器(33‑n)被指派有在先前迭代中确定出的候选基本校验节点分量中包括的FIFO编号索引;以及‑通过在接收到的辅助分量、由复用器(34‑m)在先前迭代中确定出的候选基本校验节点分量以及由后续复用器(34‑(m+1))在先前迭代中确定出的候选基本校验节点分量之中选择一个分量,来更新在先前迭代中确定出的候选基本校验节点分量。排序设备被配置为通过选择包括最可靠的候选符号的候选基本校验节点分量,在一次或多次迭代中的每次迭代中确定基本校验节点分量。

Description

用于针对非二进制码的消息传递解码的基本校验节点处理的 排序设备和方法
技术领域
本发明总体上涉及数字通信,并且具体地涉及用于对使用纠错码编码的信号进行解码的方法和设备。
背景技术
纠错码在若干数据处理和存储设备及系统中实现,以提供可靠且无错误的传输,以及允许在存在噪声和/或干扰的情况下可靠地存储数据。
其中使用纠错码的示例性应用包括例如在无线自组织网(例如,在Wi-FiTM802.11中标准化)、无线电通信系统(例如,3G、4G/LTE、5G等)、光学通信系统和数字视频广播(例如,DVB-C2、DVB-S2X和DVB-T2中标准化)中的语音和多媒体传输。
纠错码可以被分类为两个种类:线性码和非线性码。与非线性纠错码相比,线性纠错码的实现方式复杂度低,因此特别有利。示例性线性纠错码包括卷积码和线性块码,例如,Hamming码、Reed-Solomon码、Turbo码、极化码和低密度奇偶校验(LDPC)码。
LDPC码已经被证明是非常高效的码。特别地,非二进制LDPC码提供的传输速率被证明接近可以在传输信道上发送的最大信息量。非二进制LDPC码提供高频谱效率编码,并且性能优于二进制LDPC码。
给定线性纠错码的线性结构,可以在接收机设备中使用迭代消息传递算法来对使用(多个)线性纠错码编码的信号进行解码。
消息传递算法使用用于解码数据的码的图形表示,其被称为“Tanner图”。Tanner图包括节点的两个集合,其分别被称为“变量节点”和“校验节点”。每个变量节点与码的奇偶校验矩阵的一列相关联。每个校验节点与奇偶校验矩阵的一行相关联,即,与奇偶校验等式相关联。变量节点和校验节点经由边缘(edge)连接。变量节点与校验节点之间的连接由奇偶校验矩阵的非零条目确定。
变量节点和校验节点形成处理单元。消息传递算法基于在校验节点处理单元与变量节点处理单元之间交换表示编码的数据的消息,该消息与用于编码数据的码的图形表示相关联。解码过程包括通过计算变量节点消息进行的变量节点更新、通过计算校验节点消息进行的校验节点更新以及码字决策制订。每个校验节点消息和变量节点消息包括一个或多个分量,这些分量包括符号以及与该符号相关联的可靠性度量。
针对非二进制码(例如,非二进制LDPC码)的示例性解码算法包括:
-例如在L.Barnault和D.Declercq的“Fast decoding algorithm for LDPC overGF(q)”(Proceedings of IEEE Information Theory Workshop,第70-73页,2003年4月)中公开的“q-aray和积(sum-product)”算法;
-例如在V.Savin的“Min-max decoding for non-binary LDPC codes”(Proceedings of IEEE International Symposium on Information Theory,第960-964页,2008年7月)中公开的“最小-最大”算法;
-例如在D.Declercq和M.Fossorier的“Decoding algorithms for non-binaryLDPC codes over GF”(IEEE Transactions on Communications,vol.55,no.4,第633-643页,2007年4月)中公开的“扩展最小和(EMS)”算法,以及
-例如在J.O.Lacruz、F.García-Herrero、J.Valls和D.Declercq的“One MinimumOnly Trellis Decoder for Non-Binary Low-Density Parity-Check Codes”(IEEETransactions on Circuits and Systems I:Regular Papers,vol.62,no.1,第177-184页,2015年1月)和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”(2013AsilomarConference on Signals,Systems and Computers,Pacific Grove,CA,2013年,第831-835页)中公开的“Trellis EMS解码器(T-EMS”)。
EMS算法基于对数尺度计算,以通过将乘积运算转换为简单求和运算来降低计算复杂度。
EMS算法的最大复杂度是在校验节点处理单元处执行的计算。为了进一步减轻在校验节点处理单元处的计算复杂度和存储器要求,EMS算法还对变量节点消息和校验节点消息应用排序和截断操作。根据与给定消息(变量节点消息或校验节点消息)中包括的符号相关联的可靠性度量的次序来执行消息排序。执行消息截断以保留给定消息(变量节点消息或校验节点消息)中包括的预定义数量的最可靠的符号。
可以根据各种架构来执行在校验节点处理单元级别处对校验节点消息的计算。现有的校验节点架构包括在C.Marchand等人的“Extended-Forward Architecture forSimplified Check Node Processing in NB-LDPC Decoders”(SIPS,2017年,法国)中公开的“基于校验子的架构”、“向前-向后架构”和被称为“扩展向前架构”的近期架构。
使用基于校验子的架构,校验节点处理单元通过执行两个步骤来计算校验节点消息。第一步骤专用于根据所有接收到的变量节点消息计算被称为“校验子”的值的集合。第二步骤的目的是根据计算出的校验子的集合来生成(多个)校验节点消息。因此,与要被递送到给定变量节点处理单元的每个校验节点消息相关联地执行去相关操作。去相关操作包括从计算出的校验子中消除先前从被配置为接收计算出的校验节点消息的变量节点处理单元接收到的变量节点消息的贡献。在P.Schlafer、N.When、M.Alles、T.Lehnigk-Emden和E.Boutillon的“Syndrome based check node processing of high order NB-LDPCdecoders”(Proceedings of the International Conference on Telecommunications,第156-162页,2015年4月)和P.Schlafer等人的“A new Architecture for High Speed,Low Latency NB-LDPC Check Node Processing”(Proceedings of IEEE InternationalSymposium on Personal,Indoor and Mobile Radio Communications,2015年8月)中公开了基于校验子的架构。
基于校验子的架构允许并行计算,这对于对在高阶Galois域上构造的码进行解码特别有利。然而,利用这样的架构,计算复杂度由计算出的校验子的数量主导,该校验子的数量随着接收到的变量节点消息的数量的增加而增加。
在向前-向后架构中,由校验节点处理单元执行的计算被划分为涉及多个基本校验节点处理单元(下文称为“基本校验节点处理器”)的多个基本计算,每个基本校验节点处理器被配置为:根据从接收到的变量节点消息导出的第一消息和第二消息来确定基本校验节点消息。根据由基本校验节点处理器确定的基本校验节点消息来递归地构造/确定校验节点消息。
在向前-向后架构中实现的基本校验节点处理器的作用是:在第一消息和第二消息中包括的分量的所有可能的组合之中,确定预定义数量的分量,这些分量包括最可靠的且全部彼此不同的符号。因此,基本校验节点处理器通过应用计算操作,随后应用排序操作和冗余消除操作,来确定基本校验节点消息。在计算操作期间,基本校验节点处理器通过对第一消息和第二消息的分量中包括的符号和可靠性度量应用加法运算来确定辅助分量(也被称为“气泡(bubble)”)。排序操作的目的是根据辅助分量中包括的符号的可靠性来对辅助分量进行排序。冗余消除操作的目的是在包括冗余符号的辅助分量之中保留包括最可靠的冗余符号的辅助分量。
针对基本校验节点处理器的设计的早期工作包括在E.Boutillon和L.Conde-Canencia的“Bubble check:a simplified algorithm for elementary check nodeprocessing in extended min-sum non-binary LDPC decoders”(Electronics Letters,vol.46,no.9,第633-634页,2010年4月)中公开的气泡校验算法。
第一消息和第二消息中包括的分量的可能组合的数量可能导致排序操作和冗余消除操作的高复杂度。针对基本校验节点处理器的近期算法已经被设计来处理该复杂度问题,这些算法包括:
-在E.Boutillon、L.Conde-Canencia和A.Al Ghouwayel的“Design of a GF(64)-LDPC Decoder based on the EMS algorithm”(IEEE Transactions on Circuits andSystems,vol.60,no.10,第2644-2656页,2013年10月)中公开的“L-气泡校验”算法,以及
-在O.Abassi、L.Conde-Canencia、A.Al Ghouwayel和E.Boutillon的“A NovelArchitecture For Elementary Check Node Processing In Non-Binary LDPCDecoders”(IEEE Transactions on Circuits and Systems II:Express Briefs,vol.64,no.2,第136-140页,2017年)中公开的“S-气泡校验”算法。
L-气泡和S-气泡算法既基于基本校验节点处理的矩阵表示,还基于针对确定基本校验节点消息的分量考虑的第一消息和第二消息的分量的组合数量的减少。矩阵的元素对应于辅助分量(气泡)。矩阵元素的总数对应于第一消息和第二消息的分量的所有可能的组合。L-气泡算法通过将在排序操作和冗余消除操作期间处理的辅助分量减少到表示基本校验节点处理的矩阵的前两行和前两列中包括的气泡,从而降低了排序操作和冗余消除操作的复杂度。S-气泡算法是L-气泡算法的变型,其中表示在表示基本校验节点处理的矩阵中的辅助分量的选择次序的路径被优化,从而实现了对基本校验节点处理器的硬件设计的简化。
根据扩展向前架构,多个基本校验节点处理器用于校验子的计算,因此利用了基于验证子的架构的并行化优势和基本校验节点处理的线性复杂度。为了使用该架构达到最佳性能,基本校验节点处理器可能不执行冗余消除操作。该步骤可以在去相关操作之后应用。
与其他现有的迭代解码算法相比,EMS算法在硬件复杂度和通信性能之间提供了很好的折中。特别地,使用基本校验节点处理来将处理划分为多个计算可以有利地提供校验节点处理单元的高速率和低成本设计。达到这样的性能要求进一步减少基本校验节点处理中涉及的计算操作,实质上是减少排序操作的复杂度。
因此,需要针对在校验节点处理单元中实现的基本校验节点处理器开发低复杂度的架构,以对通常使用非二进制线性纠错码(特别是使用非二进制LDPC码)编码的信号进行解码。
发明内容
为了解决这些问题和其他问题,提供了一种排序设备,该排序设备用于通过对辅助分量进行排序来确定在非二进制纠错码解码器中实现的基本校验节点处理器中的基本校验节点分量,该辅助分量被存储在多个FIFO存储器中,每个FIFO存储器被指派有FIFO编号索引,被存储在给定FIFO存储器中的每个辅助分量包括辅助符号、表示辅助符号的可靠性的辅助可靠性度量以及被指派给给定FIFO存储器的FIFO编号索引。排序设备包括顺序布置的多个复用器,这些复用器被配置为初始化候选基本校验节点分量的集合,每个候选基本校验节点分量是根据FIFO存储器中的一个被确定的,并且其对应于被存储在FIFO存储器中的辅助分量之中包括最可靠的辅助符号的辅助分量。根据辅助符号的可靠性度量对候选基本校验节点分量进行排序。每个复用器34-m被配置为执行以下步骤的一次或多次迭代:
-接收从FIFO存储器中提取的包括最可靠的候选符号的辅助分量,该FIFO存储器被指派有在先前迭代中确定出的候选基本校验节点分量中包括的FIFO编号索引;以及
-通过在接收到的辅助分量、由复用器34-m在先前迭代中确定出的候选基本校验节点分量以及由后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量之中选择一个分量,来更新在先前迭代中确定出的候选基本校验节点分量。
排序设备被配置为通过选择包括最可靠的候选符号的候选基本校验节点分量,在一次或多次迭代中的每次迭代中确定基本校验节点分量。
根据一些实施例,基本校验节点处理器可以被配置为接收从两个或更多个变量节点消息导出的第一消息和第二消息,该基本校验节点处理器包括计算单元,该计算单元被配置为根据第一消息和第二消息确定辅助分量。
根据一些实施例,第一消息包括第一给定数量的分量,并且第二消息包括第二给定数量的分量,第一消息和第二消息的每个分量包括符号和关联于该符号的可靠性度量,计算单元被配置为根据第一消息中包括的分量和第二消息中包括的分量来确定辅助分量之中的每个辅助分量,计算单元被配置为:
-通过在非二进制纠错码的构造的代数结构上应用第一加法运算,来确定每个辅助分量中包括的辅助符号,该第一加法运算被应用于第一消息的分量中包括的符号和第二消息的分量中包括的符号;
-通过在预定义的代数结构上应用第二加法运算来确定与每个辅助符号相关联的辅助可靠性度量,该第二加法运算被应用于与第一消息的分量中包括的符号相关联的可靠性度量以及与第二消息的分量中包括的符号相关联的可靠性度量;
可以根据辅助符号的递减的可靠性来对被存储在每个FIFO存储器中的辅助分量进行排序。
根据一些实施例,可以在包括实数域、整数域和自然数域的组中选择预定义的代数结构。
根据一些实施例,分量的第一给定数量和分量的第二给定数量可以相等。
根据其他实施例,分量的第一给定数量和分量的第二给定数量可以不同。
根据一些实施例,其中,基本校验节点处理器在校验节点处理单元中实现,该校验节点处理单元被配置为在多次消息交换迭代期间与在非二进制纠错码中实现的至少一个变量节点处理单元交换两个或更多个变量节点消息,基本校验节点处理器可以被配置为取决于在包括以下各项的组中选择的至少一个参数来预先确定辅助分量的数量:消息交换迭代的次数、非二进制纠错码的构造的代数结构、信噪比、第一消息的分量的第一预定义数量或第二消息的分量的第二预定义数量中的一个或多个、以及基本校验节点处理器在校验节点处理单元内的位置。
根据一些实施例,候选基本校验节点分量可以包括候选符号和关联于候选符号的候选可靠性度量,每个复用器34-m与可靠性度量比较器36-m相关联,该可靠性度量比较器36-m被配置为在接收到的辅助分量中包括的辅助可靠性度量与由复用器34-m在先前迭代中确定出的候选基本校验节点分量中包括的候选可靠性度量之间执行比较,每个复用器34-m被配置为执行用于进行以下操作的控制动作:取决于由与复用器34-m相关联的可靠性度量比较器36-m执行的比较以及由与后续复用器34-(m+1)相关联的可靠性度量比较器36-(m+1)执行的比较,在接收到的辅助分量和由复用器34-m和后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量之中选择分量。
根据一些实施例,每个复用器34-m可以被配置为:
-通过以下操作来执行保持动作:在确定接收到的辅助分量中包括的辅助符号比由复用器34-m在先前迭代中确定出的候选基本校验节点分量中包括的候选符号更可靠时,将候选基本校验节点分量设置为由复用器34-m在先前迭代中确定出的候选基本校验节点分量;
-通过以下操作来执行插入动作:在确定辅助分量中包括的辅助符号不如由复用器34-m在先前迭代中确定出的候选基本校验节点分量中包括的候选符号可靠,且辅助符号比由后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量中包括的候选符号更可靠时,将候选基本校验节点分量设置为接收到的辅助分量;
-通过以下操作来执行移位动作:在确定接收到的辅助分量中包括的辅助符号比由后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量中包括的候选符号更可靠时,将候选基本校验节点分量设置为由后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量。
还提供了一种用于通过对辅助分量进行排序来确定在非二进制纠错码解码器中实现的基本校验节点处理器中的基本校验节点分量的排序方法,该辅助分量被存储在多个FIFO存储器(33-n)中,每个FIFO存储器(33-n)被指派有FIFO编号索引。被存储在给定FIFO存储器中的每个辅助分量包括辅助符号、表示辅助符号的可靠性的辅助可靠性度量以及被指派给给定FIFO存储器的FIFO编号索引。排序方法包括通过多个复用器(34-m)执行候选基本校验节点分量的集合的初始化,每个候选基本校验节点分量是根据FIFO存储器中的一个被确定的,并且其对应于被存储在FIFO存储器中的辅助分量之中包括最可靠的辅助符号的辅助分量。根据辅助符号的辅助可靠性度量对候选基本校验节点分量进行排序。方法包括通过每个复用器(34-m)执行以下步骤的一次或多次迭代:
-接收从FIFO存储器(33-n)中提取的包括最可靠的候选符号的辅助分量,该FIFO存储器(33-n)被指派有在先前迭代中确定出的候选基本校验节点分量中包括的FIFO编号索引;以及
-通过在接收到的辅助分量、由复用器34-m在先前迭代中确定出的候选基本校验节点分量以及由后续复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量之中选择一个分量,来更新在先前迭代中确定出的候选基本校验节点分量;
方法还包括通过选择包括最可靠的候选符号的候选基本校验节点分量,在一次或多次迭代中的每次迭代中确定基本校验节点分量。
有利地,与现有技术相比,特别是在考虑大量气泡时,根据本发明的各种实施例的排序操作实现延迟和复杂度的降低。
有利地,提出的排序操作的复杂度根据排序气泡的数量是线性的,并且其延迟不取决于排序气泡的数量。
有利地,根据本发明的各种实施例的排序操作使得能够以减少的关键路径对已经使用非二进制纠错码编码的信号进行解码。
在查看附图和下面的具体实施方式之后,本发明的其他优点对于技术人员将变得显而易见。
附图说明
并入并构成本说明书一部分的附图示出了本发明的各种实施例以及上面给出的本发明的一般描述以及下面给出的实施例的详细描述。
图1是根据一些实施例的本发明在通信系统中的示例性应用的框图;
图2是根据其中使用EMS解码算法的一些实施例的非二进制纠错码解码器的框图;
图3是示出根据其中使用EMS算法的一些实施例的在校验节点处理单元中实现的基本校验节点处理器的结构的框图;
图4示出了根据一些实施例的将辅助分量分组到路径中的两个示例性分组;
图5是描绘根据其中执行迭代排序的一些实施例的用于根据第一消息和第二消息确定基本校验节点消息的方法的流程图;以及
图6是描绘根据一些实施例的用于执行控制动作的方法的流程图。
具体实施方式
本公开的实施例提供了用于以低计算复杂度和低延迟来对使用非二进制纠错码编码的信号进行解码的设备、方法和计算机程序产品。特别地,这些设备、方法和计算机程序产品为在校验节点处理单元中实现的基本校验节点处理器提供了高效的减少延迟且减少复杂度的架构,该架构在迭代消息传递解码器中使用以对使用非二进制纠错码编码的信号进行解码。
根据公开的各种实施例的方法、设备和计算机程序产品可以在若干类型的应用中使用的若干类型的数字数据传输和存储设备以及系统中实现。示例性设备和系统包括但不限于:计算机、磁盘、膝上型计算机、电话、智能电话、记录器、基站、无人机、卫星、物联网设备(IoT)、嵌入式设备等。示例性应用包括磁和光记录、数字电视和视频广播、数字通信等。
仅出于说明的目的,将参考数字通信系统对本公开的一些实施例进行以下描述。然而,技术人员将容易地理解,本公开的各种实施例可以被集成在用于其他应用的其他类型的系统(例如,定位系统、存储器和存储系统以及航天器系统)中。
参考图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(正交频分复用(Orthogonal Frequency DivisionMultiplexing)的缩写)和FBMC(滤波器组多载波(Filter Bank Multi-Carrier)的缩写)之类的多载波调制格式。
根据本公开的一些实施例,发射机10包括纠错码(ECC)编码器103,其被配置为使用非二进制纠错码将表示为u的数字输入数据块101编码为表示为c的码字向量。接收机12可以被配置为通过传输信道11接收编码的数据或码字向量的有噪副本p。接收机12可以包括纠错码解码器123,其被配置为递送数字输出数据块125作为对原始数字输入数据块101的估计
Figure BDA0002883996320000111
数字输入数据101可以在被ECC编码器103编码之前被预先压缩。适合于增加信息吞吐量的任何源编码方案(图1中未示出)可以用于执行压缩。由ECC编码器103编码的数据可以由调制器105进一步调制。调制器105可以被配置为将编码的数据映射到模拟信号s上并通过传输信道11发送该模拟信号s。
接收机12可以包括被配置为执行相反功能的相应的处理块。接收机12可以包括解调器121,其被配置为通过在由ECC解码器123对来自传输信道的接收到的信号p进行ECC解码之前对该接收到的信号p执行解调来生成信号y。解调器121可以被配置为将接收到的信号或信道输出移动回到基带,并执行低通滤波、采样和量化。由ECC解码器123解码的数据可以使用任何源解码器(图1中未示出)进一步解压缩。ECC解码器123可以被配置为实现根据本公开的各种实施例的涉及校验节点处理单元和变量节点处理单元的迭代解码器(其被称为“迭代解码算法”)。
仅出于说明的目的,将参考线性块非二进制纠错码对本公开的一些实施例进行以下描述。然而,技术人员将容易地理解,本公开的各种实施例应用于包括非二进制卷积码的任何线性非二进制纠错码。
因此,ECC编码器103可以实现由C(n,K)指定的线性块非二进制纠错码;n和K分别指代码字向量的长度和编码的数据块的长度。ECC编码器103相应地将长度为K的数据块u编码为码字向量c,其中c=(c1,...,cn)是长度的向量,其包括纠错码C(n,K)的构造的代数结构的n个元素,这些元素也被称为“符号”。
线性码C(n,K)可以使用由G表示的生成器矩阵和由H表示的奇偶校验矩阵以矩阵形式表示。使用向量的行表示法,生成器矩阵G的维度为K×n,而奇偶校验矩阵的维度为(n-K)×n。这两个矩阵通过关系G.Ht=0链接。另外地,两个矩阵的条目都属于代数结构,在该代数结构上构造了纠错码。使用矩阵表示,任何码字向量c都满足等式c.Ht=0。该等式也被称为“奇偶校验等式”。该等式定义了(n-K)个奇偶校验约束,这些约束被设计为要由任何码字向量满足。
结合矩阵表示,可以使用由
Figure BDA0002883996320000121
表示的Tanner图来表示线性码C(n,K)。该图包括n个变量节点和n-K个校验节点。
每个变量节点vn∈{1,2,...,n}对应于奇偶校验矩阵的一列。每个校验节点cn∈{1,2,...,n-K}对应于奇偶校验矩阵的一行,即,对应于奇偶校验等式。如果奇偶校验矩阵的条目Hvn,cn等于码C(n,K)的构造的代数结构的非空元素,则将变量节点vn连接到校验节点cn。
Figure BDA0002883996320000131
表示连接到变量节点vn的校验节点的集合。类似地,
Figure BDA0002883996320000132
表示连接到校验节点cn的变量节点的集合。
变量节点vn的度dVN(或者校验节点cn的dCN)对应于集合
Figure BDA0002883996320000133
的基数(或者集合
Figure BDA0002883996320000134
的基数)。
根据一些实施例,非二进制纠错码C(n,K)的构造的代数结构可以是任何非零交换除法环(commutative division ring),例如,“Galois域”。
仅出于说明的目的,将参考有限域对一些实施例进行以下描述。然而,技术人员将容易地理解,本公开可以应用于诸如非零交换除法环之类的任何除法环状代数结构以及诸如有限除法近环之类的任何近环。可以在文章“Non-binary LDPC codes over finitedivision near rings”(23rd International Conference 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码解码器。
为了易于呈现本公开的各种实施例,在说明书的其余部分中将使用以下定义。
基于基本校验节点的架构指代包括一个或多个基本校验节点处理器的校验节点处理单元的任何实现方式架构。
由变量节点处理单元27-vn生成的消息被称为“变量节点消息”。由校验节点处理单元25-cn生成的消息被称为“校验节点消息”。
变量节点消息和校验节点消息可以包括携带表示符号的数据的分量。变量节点消息中包括的分量被称为“变量节点分量”,并且校验节点消息中包括的分量被称为“校验节点分量”。
固有消息(intrinsic message)指代包括被称为固有分量的分量的消息,每个固有分量包括固有符号和与该固有符号相关联的固有可靠性度量。固有可靠性度量是仅根据接收到的序列被计算出的。因此,“固有”一词指代固有可靠性度量仅依赖于(传输)信道。
由基本校验节点处理器处理的第一消息和第二消息指代从由其中实现基本校验节点处理单元的校验节点处理单元接收到的变量节点消息导出的消息。第一消息包括第一预定义数量的分量,并且第二消息包括第二预定义数量的分量。
基本校验节点消息指代由基本校验节点处理器根据第一消息和第二消息计算出的消息。基本校验节点消息的分量被称为基本校验节点分量。
辅助分量(也被称为“气泡”)指代由基本校验节点处理器根据第一消息中包括的分量和第二消息中包括的分量确定出的分量。辅助分量包括辅助符号和与该辅助符号相关联的辅助可靠性度量。
候选基本校验节点分量指代由基本校验节点处理器在由所述基本校验节点处理器执行的对辅助分量的迭代排序的给定迭代中确定出的分量。
参考图2,示出了根据使用EMS算法的一些实施例的迭代非二进制LDPC解码器123的结构。
迭代解码器123可以被配置为根据由向量y=(y1,…,yn)表示的接收到的有噪序列来确定对由发射机10发送的码字c的估计
Figure BDA0002883996320000141
码字c=(c1,…,cn)可能已经在发射机处使用由在Galois域GF(q)(其中q>2)上构造的C(n,K)指定的非二进制LDPC码被编码。可以在若干次迭代中处理信号,以尝试在每次迭代中减少其余的错误。
迭代解码器123可以被配置为基于在发射机10处使用的码C(n,K)的Tanner图表示来确定估计
Figure BDA0002883996320000142
Tanner图中的每个变量节点映射到变量节点处理单元。Tanner图中的每个校验节点都映射到校验节点处理单元。
因此,迭代解码器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估计最可靠的码字
Figure BDA0002883996320000152
根据一些实施例,变量节点消息和校验节点消息中分别包括的变量节点分量和校验节点分量可以携带符号和测量其可靠性的度量(在下文中也被称为“可靠性度量”)的值。可靠性度量的值与符号的可靠性相关。在这样的实施例中,每个变量节点消息(或者校验节点消息)可以包括q个变量节点分量(或者校验节点分量),分量(校验节点分量或变量节点分量)包括:
-GF(q)中的符号的值,以及
-与符号相关联的可靠性度量。
在一些实施例中,符号的可靠性度量可以对应于符号的估计出的概率密度函数,该概率密度函数表示符号正确的概率。特别地,可靠性度量可以在对数域中由对数似然比(LLR)值表示。
取决于可靠性度量的表示,最可靠的符号可以与可靠性度量的最小值或最大值相关联。
LLR度量的一种定义涉及由βi表示的固定符号,并该固定符号对应于满足下式的最可靠的符号:
βi=argmaxt=0,...,q-1p(αt|yi) (1)
在等式(1)中,αt表示Galois域上的符号。
因此,在Galois域中的符号是等概率的假设下,对于第i个符号ci,该符号的LLR值等于αt,标记为LLRt(ci),并可以被表示为:
Figure BDA0002883996320000151
使用LLR度量的这种定义,根据等式(2),最可靠的符号是与最小的LLR值相关联的那些符号。
仅出于说明的目的,将参考在对数域中由对数似然比(LLR)值表示的可靠性度量对一些实施例进行以下描述。然而,技术人员将容易地理解,可以使用其他类型的解码和可靠性度量来测量符号的可靠性。例如,可靠性度量可以是符号的概率密度函数的二次距离或任何单调函数。
根据使用EMS算法的一些实施例,可以根据变量节点消息和/或校验节点消息的可靠性(即,根据变量节点分量和校验节点分量中包括的可靠性度量的给定次序(例如,递增或递减))来对变量节点消息和/或校验节点消息进行排序。此外,变量节点消息可以被截断以便仅保留包括最可靠的符号的预定义数量nVN的变量节点分量,其中nVN严格低于q。类似地,校验节点消息可以被截断以便仅保留包括最可靠的符号的预定义数量nCN的校验节点分量,其中nCN严格小于q。此外,排序操作和截断操作可以由变量节点处理单元27-vn或由校验节点处理单元25-cn执行。
在实施例中,变量节点分量的预定义数量nVN和校验节点分量的预定义数量nCN不同,即,nVN≠nCN
在另一实施例中,变量节点分量的预定义数量nVN和校验节点分量的预定义数量nCN相同,即,nVN=nCN
将参考被排序和截断的变量节点消息和校验节点消息来对本公开的实施例进行以下描述,校验节点分量和变量节点分量的数量相等或不同。
由各种变量节点处理单元27-vn和校验节点处理单元25-cn执行的处理可以根据包括但不限于以下描述的三个示例的若干调度机制来实现。
根据第一实现方式,所有变量节点处理单元27-vn(vn=1,...,n)被配置为在第一轮中操作;然后所有校验节点处理单元25-cn(cn=1,...,n-K)可以被配置为更新在其对应集合
Figure BDA0002883996320000161
中要被递送到变量节点处理单元的校验节点消息。这种特定的调度被称为“泛洪调度(flooding scheduling)”。特别地,校验节点处理单元25-cn可以被配置为串行或并行地操作,其中,从2到n-K的校验节点处理单元25-cn可以同时操作。
根据基于“水平调度”的第二实现方式,校验节点处理单元25-cn(cn=1,...,n-K)被配置为串行操作,从而更新与其连接的所有变量节点处理单元27-vn。特别地,一组校验节点处理单元25-cn可以被配置为并行操作,从而更新所有连接的变量节点处理单元27-vn。
根据基于“垂直调度”的第三实现方式,变量节点处理单元27-vn被配置为串行操作,从而更新与其连接的所有校验节点处理单元25-cn。
消息的交换可以由变量节点处理单元27-vn开始。在解码过程开始时发送给校验节点处理单元25-cn的变量节点消息可以包括固有消息。
迭代解码器123可以相应地包括数据处理单元23,该数据处理单元23被配置为根据接收到的序列来确定固有符号和固有可靠性度量,被表示为x∈GF(q)且属于Galois域(通常属于非二进制纠错码的代数结构)的固有符号与被表示为I+(x)的固有可靠性度量相关联。可以根据纠错码解码器123外部的设备计算固有可靠性度量。固有信息可以包括信道信息。可替代地,在级联码的情况下,可以从信道以及从不同解码器的输出获得固有信息。
更具体地,数据处理单元23可以包括:
-符号生成器231,其被配置为生成属于其上构造非二进制纠错码的代数结构的固有符号x,以及
-固有可靠性度量生成器233,其被配置为根据接收到的序列y生成与每个固有符号x相关联的固有可靠性度量I+(x)。
使用等式(2)的LLR表示法,可以根据下式以对数尺度确定与符号x相关联的固有可靠性度量:
Figure BDA0002883996320000171
在等式(3)中,βi指代先前在等式(1)中定义的最可靠的符号。
根据一些实施例,固有可靠性度量生成器单元233被配置为从存储单元21加载接收到的信号y,存储单元21被配置为存储接收到的信号y。
在图2中示出的一些实施例中,存储单元21被包括在数据处理单元23内。
在其他实施例中(图2中未示出),存储单元21被包括在数据处理单元23外部的迭代解码器123中。
根据一些实施例,固有可靠性度量生成器233被配置为在迭代解码过程开始之前离线确定固有可靠性度量的至少一部分。在这样的实施例中,固有可靠性度量生成器单元233还可以被配置为将计算出的固有可靠性度量的至少一部分存储在存储单元21中。可以有利地实现这样的实施例以用于对在小阶的代数结构上构造的码进行解码,以将计算出的所有固有可靠性度量存储在存储单元21中。对于高阶的代数结构,可以仅将计算出的固有可靠性度量的一部分存储在存储单元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导出的固有可靠性度量,并且从与集合
Figure BDA0002883996320000181
相对应的校验节点处理单元25-cn接收校验节点消息。变量节点处理单元27-vn还可以被配置为处理接收到的校验节点消息和固有可靠性度量、计算局部决策、并且将变量节点消息递送到对应于集合
Figure BDA0002883996320000182
中的校验节点的至少一个校验节点处理单元25-cn。
类似地,校验节点处理单元25-cn可以被配置为处理由对应于集合
Figure BDA0002883996320000183
的变量节点处理单元27-vn发送的变量节点消息。校验节点处理单元25-cn还可以被配置为将校验节点消息递送到对应于集合
Figure BDA0002883996320000184
中的变量节点的至少一个变量节点处理单元27-vn。
如果处理后的信号满足奇偶校验等式,或者如果在不满足所有奇偶校验约束的情况下达到了消息交换迭代的最大数量,则解码过程可以终止。
因此,迭代解码器123可以包括解码决策单元29,其被配置为在解码过程的每次迭代中接收由变量节点处理单元27-vn计算出的局部决策,并且:
-如果处理后的信号满足奇偶校验等式,则递送处理后的信号作为对原始码字向量的估计;或者
-声明解码失败,但如果在不满足所有奇偶校验约束的情况下达到了迭代的最大数量,则输出最后一次迭代中估计出的码字向量。
本公开的各种实施例提供了在校验节点处理单元25-cn(cn∈{1,...,n-K})中实现的基本校验节点处理器的高效的低复杂度且低成本架构。
根据本公开的各种实施例,校验节点处理单元25-cn实现一个或多个基本校验节点处理器,并且被配置为基于由所述一个或多个基本校验节点处理器执行的多个基本计算来确定至少一个校验节点消息。
在校验节点处理单元25-cn中实现的每个基本校验节点处理器可以被配置为:
-接收从由校验节点处理单元25-cn接收到的三个或更多个变量节点消息导出的第一消息和第二消息,以及
-根据第一消息和第二消息确定基本校验节点消息,该基本校验节点消息包括一个或多个基本校验节点分量。
根据一些实施例,迭代解码器123可以包括两个或更多个校验节点处理单元25-cn(其中cn=1,...,(n-K)),所述两个或更多个校验节点处理单元25-cn中的每一个实现基于基本校验节点的架构。
本公开的各种实施例提供了用于在基本校验节点处理器中进行迭代排序的高效的减少复杂度且减少延迟的技术。
图3是示出在度为dCN≥3的校验节点处理单元25-cn中实现的基本校验节点处理器3的结构的框图,校验节点处理单元25-cn因此被配置为:
-从集合
Figure BDA0002883996320000191
中的变量节点处理单元27-vn接收由
Figure BDA0002883996320000194
表示的dCN≥3的(三个或更多个)变量节点消息,以及
-根据接收到的变量节点消息
Figure BDA0002883996320000192
确定由
Figure BDA0002883996320000193
表示的一个或多个校验节点消息。
根据使用EMS算法与校验节点消息和变量节点消息的排序和截断的一些实施例,每个变量节点消息Ui,i=1,...,dCN包括由
Figure BDA0002883996320000195
Figure BDA0002883996320000196
表示的nVN个变量节点分量,变量节点分量
Figure BDA0002883996320000197
包括属于Galois域GF(q)的符号
Figure BDA0002883996320000198
和与符号
Figure BDA0002883996320000199
相关联的可靠性度量
Figure BDA00028839963200001910
可以根据与可靠性度量
Figure BDA00028839963200001911
的给定次序(递增或递减)相对应的递减的可靠性来对变量节点分量进行排序,使得
Figure BDA0002883996320000201
(或者
Figure BDA0002883996320000202
)(j=0,...,nVN-2),并且针对可靠性度量的递增次序(或者递减次序)的包括最可靠的符号的分量为
Figure BDA0002883996320000203
(或者为Ui[nVN-1])。
类似地,每个校验节点消息Vi(i=1,...,dCN)可以包括由
Figure BDA0002883996320000204
Figure BDA0002883996320000205
表示的nCN个校验节点分量,校验节点分量
Figure BDA0002883996320000206
包括属于Galois域GF(q)的符号
Figure BDA0002883996320000207
和与符号
Figure BDA0002883996320000208
相关联的可靠性度量Vi +[l]。可以根据与可靠性度量Vi +[l]的给定次序(递增或递减)相对应的递减的可靠性来对校验节点分量进行排序,使得Vi +[l]≤Vi +[l+1](或者Vi +[j]≥Vi +[j+1])(l=0,...,nCN-2),并且针对可靠性度量的递增次序(或者递减次序)的包括最可靠的符号的分量为
Figure BDA00028839963200002011
(或者Vi[nVN-1]))。
在不失一般性的情况下,仅出于说明目的,将参考与符号相关联的可靠性度量的递增次序相对应的递减的可靠性对一些实施例进行以下描述。
基本校验节点处理器3可以被配置为接收由X表示的第一消息,该第一消息包括由
Figure BDA00028839963200002012
表示的第一给定数量nX的分量,并接收由Y表示的第二消息,该第二消息包括由
Figure BDA00028839963200002013
Figure BDA00028839963200002014
表示的第二给定数量nY的分量,第一消息和第二消息是从变量节点消息
Figure BDA00028839963200002015
导出的。第一消息和第二消息的每个分量可以包括符号和与该符号相关联的可靠性度量。可以根据与第一消息的分量和第二消息的分量中包括的可靠性度量X+[x]和Y+[y]的给定次序(递增或递减)相对应的递减的可靠性,对第一消息的分量和第二消息的分量进行排序,使得:
i)X+[x]≤X+[x+1](x=0,,...,nX-1),以及Y+[y]≤Y+[y+1](y=0,...,nY-1),以及
ii)包括最可靠的符号的分量分别为
Figure BDA00028839963200002016
Figure BDA00028839963200002017
根据一些实施例,第一消息和第二消息可以包括相同数量的分量,据此,第一给定数量和第二给定数量相等,即,nX=nY
在另一实施例中,第一消息和第二消息可以包括不同数量的分量,据此,第一给定数量和第二给定数量不同,即,nX≠nY
基本校验节点处理器3被配置为根据第一消息X和第二消息Y确定由E表示的基本校验节点消息,基本校验节点消息E包括由
Figure BDA0002883996320000211
Figure BDA0002883996320000212
表示的nE个基本校验节点分量,每个基本校验节点分量E[e]包括符号
Figure BDA0002883996320000213
和与该符号相关联的可靠性度量E[e]+,根据可靠性度量E[e]+的递增次序对基本校验节点分量进行排序,使得:
i)E[e]+≤E[e+1]+(e=0,,...,nE-2),以及
ii)包括最可靠的符号的基本校验节点分量为
Figure BDA0002883996320000214
根据一些实施例,基本校验节点处理器3可以被配置为根据从第一消息X和第二消息Y中包括的分量的组合导出的辅助分量来确定基本校验节点消息E的基本校验节点分量,基本校验节点处理器3被配置为通过对辅助分量进行排序并选择包括最可靠的符号的nE个分量来确定所述基本校验节点分量。
因此,如图3中描绘的,基本校验节点处理器3可以包括:
-计算单元31,其被配置为根据第一消息X和第二消息Y来确定由
Figure BDA0002883996320000215
指定的预定义数量nB的辅助分量。更具体地,由
Figure BDA0002883996320000216
表示的辅助分量指代根据第一消息X中包括的分量
Figure BDA0002883996320000217
和第二消息中包括的分量
Figure BDA0002883996320000218
确定出的辅助分量,索引x在0,1,...,nX-1中变化并且索引y在0,1,...,nY-1中变化。辅助分量
Figure BDA0002883996320000219
是包括以下各项的分量:
-由
Figure BDA00028839963200002110
指定的辅助符号,以及
-由Bt[x][y]+指定的与辅助符号相关联的辅助可靠性度量。
辅助分量的最大可能数量可以由第一消息中包括的分量和第二消息中包括的分量的可能组合的总数给出。辅助分量的最大可能数量可以等于nX×nY
辅助分量的预定义数量nB可以在基本校验节点分量的预定义数量nE与辅助分量的最大可能数量nX×nY之间变化。换言之,辅助分量的预定义数量nB可以大于或等于基本校验节点分量的预定义数量nE,并且小于或等于辅助分量的最大数量,即,nE≤nB≤nX×nY
根据一些实施例,计算单元31可以被配置为:
-通过在非二进制纠错码的构造的代数结构上应用第一加法运算,来确定每个辅助分量Bt[x][y](t=1,...,nB)中包括的辅助符号
Figure BDA0002883996320000222
根据下式将第一加法运算应用于第一消息X的分量
Figure BDA0002883996320000223
中包括的符号
Figure BDA0002883996320000224
以及第二消息Y的分量Y[y]中包括的符号
Figure BDA0002883996320000225
Figure BDA0002883996320000221
对于在Galois域上构造的纠错码,在Galois域GF(q)上执行等式(4)的第一加法运算。
-通过在包括实数域、整数域和自然数域的组中选择的预定义的代数结构上应用第二加法运算,来确定与每个辅助符号
Figure BDA0002883996320000226
相关联的辅助可靠性度量Bt[x][y]+,根据下式将第二加法运算应用于与第一消息X的分量X[x]中包括的符号
Figure BDA0002883996320000227
相关联的可靠性度量X[x]+和与第二消息Y的分量Y[y]中包括的符号
Figure BDA0002883996320000228
相关联的可靠性度量Y[y]+
Bt[x][y]+=X[x]++Y[y]+ (5)
根据一些实施例,基本校验节点处理器3可以被配置为取决于在包括以下各项的组中选择的至少一个参数来预先确定辅助分量的预定义数量nB
-在集合
Figure BDA0002883996320000229
中在校验节点处理单元25-cn与至少一个变量节点处理单元27-vn之间交换的消息的迭代次数,
-非二进制纠错码的构造的代数结构(例如,用于在Galois域上构造的码的Galois域),
-信噪比,
-第一消息X的分量的第一预定义数量nX和第二消息Y的分量的第二预定义数量nY中的一个或两个,以及
-基本校验节点处理器3在校验节点处理单元25-cn内的位置。
在一些实施例中,计算单元31可以串行地接收第一消息和第二消息的分量,使得在每个时钟周期接收第一消息的一个分量或第二消息的一个分量。
在这样的实施例中,计算单元31可以被配置为取决于接收到的第一消息的分量和第二消息的分量来确定nB个辅助分量。例如,计算单元31可以被配置为计算从第一消息的分量X[0]和第二消息中包括的分量Y[y]导出的辅助分量Bt[0][y],其中每个y在0,1,...,nY-1中变化。在该示例中,计算单元31可以被配置为响应于在寄存器(图3中未示出)中接收到分量X[0]来存储第一消息的分量X[0],并响应于接收到第二消息中包括的分量Y[y]来在每个时钟周期确定辅助分量Bt[0][y]。辅助分量的计算可以相应地取决于第一消息和第二消息的分量的接收次序。
取决于第一消息的分量和第二消息的分量的接收次序来对辅助分量进行串行计算,使得能够将计算出的辅助分量分组到由
Figure BDA0002883996320000231
表示的多条(np条)路径中,使得每条路径Pathn=(Pathn[0],...,Pathn[Nn-1])(n=1,...,np)包括由
Figure BDA0002883996320000232
表示的至少一个辅助分量。
可以根据辅助符号的递减的可靠性将辅助分量分组到路径中,使得:
-根据满足
Figure BDA0002883996320000233
的辅助符号的递减的可靠性,对索引为n的每条路径中包括的辅助分量进行排序;以及
-根据辅助符号的递减的可靠性,对每条路径的包括最可靠的辅助符号的辅助分量进行排序,使得
Figure BDA0002883996320000234
根据一些实施例,如图3中描绘的,在辅助分量的计算期间构造的每条路径Pathn的辅助分量可以被存储在FIFO存储器33-n(n=1,...,np)中,每个FIFO存储器33-n被指派有由在1和np之间变化的索引n给出的FNI表示的FIFO编号索引,并且被存储在每个FIFO存储器33-n中的辅助分量被指派有存储其的FIFO存储器33-n的FIFO编号索引。被存储在FIFO存储器33-n中的辅助分量由FIFOn[a]表示,其中a在0和Nn-1之间变化,其中Nn指定被存储在FIFO存储器33-n中的辅助分量的总数(等同于路径Pathn中辅助分量的总数)。填充不同的FIFO存储器33-n可以取决于第一消息和第二消息的分量的到达次序,取决于每条路径的辅助分量的计算,以及取决于对辅助分量的进行分组的路径的结构。
参考图4,示出了路径的两个示例性构造,同时根据第一消息和第二消息计算辅助分量。辅助分量的计算相应地使用二维表示来说明。垂直轴指定第一消息的处理后的分量。水平轴指定第二消息的处理后的分量。计算出的辅助分量由实心圆表示。
图4A描绘了四条路径的第一示例性构造,使得:
-根据第二消息的分量Y[0]和第一消息的分量X[x]确定路径Path1的辅助分量,其中x在0和nX-1之间变化;
-根据第一消息的分量X[0]和第二消息的分量Y[y]确定路径Path2的辅助分量,其中y在1和nY-2之间变化;
-根据第二消息的分量Y[1]和第一消息的分量X[x]确定路径Path3的辅助分量,其中x在1和nX-3之间变化;
-根据第一消息的分量X[1]和第二消息的分量Y[y]确定路径Path4的辅助分量,其中y在2和nY-2之间变化;
图4B描绘了五条路径的第二示例性构造,使得:
-根据第二消息的分量Y[0]和第一消息的分量X[x]确定路径Path1的辅助分量,其中x在0和nX-1之间变化;
-根据第二消息的分量Y[1]和第一消息的分量X[x]确定路径Path2的辅助分量,其中x在0和nX-3之间变化;
-根据第二消息的分量Y[2]和第一消息的分量X[x]确定路径Path3的辅助分量,其中x在0和nX-3之间变化;
-根据第二消息的分量Y[3]和第一消息的分量X[x]确定路径Path4的辅助分量,其中x在0和nX-4之间变化,并且
-根据第一消息的分量X[0]和第二消息的分量Y[y]确定路径Path5的辅助分量,其中y在4和nY-1之间变化。
图4中描绘的两个示例示出了在计算辅助分量时可能的路径构造。然而,技术人员将容易地理解,取决于第一消息和第二消息的分量的接收次序,可以获得其他路径构造。特别地,可以考虑第一消息和第二消息的分量的接收次序,以便尽快计算FIFO存储器的第一元素,即,元素Pathn[0](n=1,...,np),以便使基本校验节点处理器3的延迟最小化。应注意,当FIFO的第一元素准备就绪时,可以开始排序过程。在这种情况下,可以同时执行用路径填充FIFO和生成基本校验节点消息E的基本校验节点分量。
本公开的各种实施例提供了在基本校验节点处理器3中实现的高效且低复杂度的排序设备,以通过对从第一消息和第二消息导出的辅助分量迭代地排序来确定至少一个基本校验节点消息的nE个基本校验节点分量。
为了促进对本公开的理解,结合下文中在一些实施例的描述中使用的表示法来提供以下定义:
-nIT=nE指定辅助分量排序过程的迭代次数,脚标it=1,...,nIT指代排序过程的第it次迭代;
-nMUX=np指定用于排序过程的复用器的数量;
-ncomp=nMUX指定用于排序过程的可靠性度量比较器的数量;
-
Figure BDA0002883996320000251
指代在排序过程的第it次迭代中从辅助分量中提取的辅助分量,该辅助分量包括辅助符号
Figure BDA0002883996320000252
辅助可靠性度量
Figure BDA0002883996320000253
以及FIFO编号索引
Figure BDA0002883996320000254
该FIFO编号索引
Figure BDA0002883996320000255
指示在迭代it中从其提取辅助分量的FIFO存储器;
-
Figure BDA0002883996320000256
指代由第m个复用器34-m在排序过程的第it次迭代中确定出的候选基本校验节点分量,该候选基本校验节点分量包括候选符号
Figure BDA0002883996320000257
与所述候选符号相关联的候选可靠性度量
Figure BDA0002883996320000258
以及FIFO编号索引
Figure BDA0002883996320000259
该FIFO编号索引
Figure BDA00028839963200002510
指示候选符号
Figure BDA00028839963200002511
和候选可靠性度量
Figure BDA00028839963200002512
所源自的FIFO存储器;
-
Figure BDA00028839963200002513
指代由第一复用器34-1在排序过程的第it次迭代中确定出的候选基本校验节点分量,该候选基本校验节点分量
Figure BDA00028839963200002514
包括排序过程的第it次迭代中最可靠的候选符号。
参考图3,基本校验节点处理器3可以包括排序设备,该排序设备被配置为通过根据辅助可靠性度量的给定次序在数量nIT次迭代期间对辅助分量进行排序,来根据由计算单元31确定出的nB个辅助分量确定基本校验节点分量(更准确地,预定义数量nE的辅助校验节点分量)。排序设备可以包括多个(nMUX=np个)复用器34-m,复用器34-m(m=1,...,nMUX)被配置为通过将候选基本校验节点分量
Figure BDA00028839963200002515
设置为存储在FIFO存储器33-m(n=m)中的且包括最可靠的辅助符号的辅助分量Bm(0)=FIFOm[0],来在排序过程的第一次迭代(即,it=1)中执行初始化动作。
因此,在排序过程的第一次迭代中,根据与可靠性度量
Figure BDA0002883996320000261
Figure BDA0002883996320000262
的递增或递减次序相对应的候选符号的递减的可靠性,对候选基本校验节点分量
Figure BDA0002883996320000263
进行排序。
每个候选基本校验节点分量
Figure BDA0002883996320000264
被指派有FIFO编号索引
Figure BDA0002883996320000265
该FIFO存储器编号索引对应于其中存储候选基本校验节点分量的FIFO存储器的编号。
对于每个下一次迭代it=2,...,nIT,每个复用器34-m可以被配置为:
-接收从候选FIFO存储器33-n中提取的且包括最可靠的候选符号的由
Figure BDA0002883996320000266
表示的辅助分量,该候选FIFO存储器被指派有在上一次迭代中确定出的FIFO编号索引,该FIFO编号索引
Figure BDA0002883996320000267
被包括在候选基本校验节点分量
Figure BDA0002883996320000268
中。这意味着在迭代it中提取的辅助分量对应于存储在FIFO编号索引为
Figure BDA0002883996320000269
的FIFO存储器33-n中的下一分量,并可以使用FIFO存储器的弹出操作进行提取,使得在指派了FIFO编号索引
Figure BDA00028839963200002610
的候选FIFO存储器33-n处执行弹出操作(即,Pulln=1);
-通过执行用于在接收到的辅助分量
Figure BDA00028839963200002611
和由复用器34-m和复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002612
Figure BDA00028839963200002613
之中选择分量的控制动作来更新候选基本校验节点分量
Figure BDA00028839963200002614
在排序过程的每次迭代中对辅助分量的处理在每次迭代中提供np个候选基本校验节点分量
Figure BDA00028839963200002615
这些分量根据候选可靠性度量的给定次序被排序,使得:
-包括最可靠的候选符号的候选基本校验节点分量是也由
Figure BDA00028839963200002616
Figure BDA00028839963200002617
表示的候选基本校验节点分量
Figure BDA00028839963200002618
并且
-每第m个候选基本校验节点分量
Figure BDA00028839963200002619
包括候选符号
Figure BDA00028839963200002620
该候选符号
Figure BDA00028839963200002621
比第(m+1)个候选基本校验节点分量
Figure BDA00028839963200002622
中包括的候选符号
Figure BDA00028839963200002623
更可靠。
换言之,对于可靠性度量的递减(或者递增)次序,在每次迭代中确定出的候选基本校验节点分量满足
Figure BDA00028839963200002624
(或者
Figure BDA00028839963200002625
Figure BDA00028839963200002626
)(m=1,...,np-1)。
排序设备可以被配置为通过在总共nIT=nE次迭代的每次迭代中生成和/或选择包括最可靠的候选符号的候选基本校验节点分量
Figure BDA0002883996320000272
Figure BDA0002883996320000273
来确定基本校验节点分量E[e](e=0,...,nE-1)。
在第it次迭代中生成包括最可靠的候选符号的候选基本校验节点分量
Figure BDA0002883996320000274
之后,排序设备可以被配置为确定要在下一次迭代中使用的候选FIFO存储器以提取辅助分量。候选FIFO存储器对应于在第it次迭代中包括最可靠的候选符号的所选择的候选基本校验节点分量
Figure BDA0002883996320000275
所源自的FIFO存储器33-n。因此,排序设备还可以被配置为根据被指派给在第it次迭代中包括最可靠的候选符号的所选择的候选基本校验节点分量
Figure BDA0002883996320000276
的分量索引来确定更新后的分量索引,例如通过将被指派给所选择的候选基本校验节点分量
Figure BDA0002883996320000277
的分量索引递增一(‘1’)。因此,在排序过程的下一次迭代中要处理的辅助分量对应于存储在候选FIFO存储器中并且被指派有更新后的分量索引的辅助分量。
在至少nE个辅助分量的处理/排序结束时,基本校验节点消息E由在不同的迭代it=1,...,nE中选择的候选基本校验节点分量构造,使得:
Figure BDA0002883996320000271
排序设备还可以包括多个(ncomp个)可靠性度量比较器36-m,其中m=1,...,np。每个复用器34-m(m=1,...,np)可以与可靠性度量比较器36-m相关联,该可靠性度量比较器36-m被配置为在接收到的辅助分量
Figure BDA0002883996320000278
中包括的辅助可靠性度量
Figure BDA0002883996320000279
与由复用器34-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002710
中包括的候选可靠性度量
Figure BDA00028839963200002711
之间执行可靠性度量比较。每个复用器34-m可以被配置为在每次迭代中执行用于进行以下操作的控制动作:取决于由与所述复用器(34-m)相关联的可靠性度量比较器(36-m)执行的比较以及由与复用器(36-(m+1))相关联的可靠性度量比较器(36-(m+1))执行的比较,在接收到的辅助分量和由复用器(34-m)和复用器(34-(m+1))在先前迭代中确定出的候选基本校验节点分量之中选择分量。
在一些实施例中,由复用器34-m执行的控制动作可以是例如保持动作、插入动作或移位动作。然而,技术人员将容易地理解,可以执行其他控制动作。
例如,在每次迭代it=2,...,nIT中,每个复用器34-m可以被配置为:
-通过以下操作来执行保持动作:在确定在第it次迭代中接收到的辅助分量
Figure BDA0002883996320000281
中包括的辅助符号
Figure BDA0002883996320000282
比由复用器34-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA0002883996320000283
中包括的候选符号
Figure BDA0002883996320000284
更可靠时,将候选基本校验节点分量
Figure BDA0002883996320000285
设置为由复用器34-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA0002883996320000286
根据保持动作,复用器34-m可以将在先前迭代期间预先选择的候选基本校验节点分量保持为当前迭代的候选基本校验节点分量。因此,可以满足下式:
Figure BDA0002883996320000287
以及
Figure BDA0002883996320000288
-通过以下操作来执行插入动作:在确定辅助分量中包括的辅助符号
Figure BDA0002883996320000289
不如由复用器34-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002810
中包括的候选符号
Figure BDA00028839963200002811
可靠,且辅助符号
Figure BDA00028839963200002812
比由复用器34-(m+1)先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002813
中包括的候选符号
Figure BDA00028839963200002814
更可靠时,将候选基本校验节点分量
Figure BDA00028839963200002815
设置为接收到的辅助分量
Figure BDA00028839963200002816
根据插入动作:
Figure BDA00028839963200002817
以及
Figure BDA00028839963200002818
-通过以下操作来执行移位动作:在确定接收到的辅助分量中包括的辅助符号不如由复用器315-(m+1)在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002819
中包括的候选符号可靠时,将候选基本校验节点分量
Figure BDA00028839963200002820
设置为由复用器34-(m+1)在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200002821
根据移位动作:
Figure BDA00028839963200002822
以及
Figure BDA00028839963200002823
由每个复用器34-m执行的控制动作可以取决于由与复用器34-m相关联的可靠性度量比较器36-m以及与复用器34-(m+1)(在复用器34-m的右侧相邻的复用器)相关联的可靠性度量比较器36-(m+1)执行的可靠性度量比较的结果。假定复用器34-np是最后一个复用器并且没有右侧相邻的复用器,则假设涉及当m=np时涉及候选基本校验节点分量
Figure BDA00028839963200002824
的可靠性度量比较使用候选分量Bcst,该候选分量Bcst包括恒定符号和可靠性度量的恒定值。可靠性度量的这种恒定值使得在辅助符号
Figure BDA00028839963200002825
与恒定可靠性度量之间的任何可靠性度量比较的结果总是恒定的,使得候选分量Bcst不如辅助符号
Figure BDA0002883996320000291
可靠。
参考图5,示出了用于确定在非二进制纠错码解码器中实现的基本校验节点处理器中的基本校验节点分量的排序方法。该方法包括根据从变量节点消息导出的第一消息和第二消息计算辅助分量,并在nIT=nE次迭代期间对所述辅助分量进行排序,该辅助分量包括辅助符号、辅助可靠性度量和FIFO编号索引。
因此,在步骤501处,可以接收从三个或更多个变量节点消息
Figure BDA0002883996320000292
导出的由X表示的第一消息和由Y表示的第二消息。
根据一些实施例,第一消息X可以包括由X[x]表示的第一给定数量nX的分量(x=0,...,nX-1),并且第二消息Y可以包括第二给定数量nY的分量Y[y](y=0,...,nY-1)。
根据一些实施例,第一消息和第二消息可以包括相同数量的分量,据此,第一给定数量和第二给定数量可以相等,即,nX=nY
在其他实施例中,第一消息和第二消息包括不同数量的分量,据此,第一给定数量和第二给定数量可以不同,即,nX≠nY
在步骤503处,可以根据第一消息X和第二消息Y来确定由
Figure BDA0002883996320000293
指定的预定义数量nB的辅助分量。更具体地,辅助分量
Figure BDA0002883996320000294
指代根据第一消息X中包括的分量
Figure BDA0002883996320000295
和第二消息中包括的分量
Figure BDA0002883996320000296
确定出的辅助分量,索引x在0,1,...,nX-1中变化并且索引y在0,1,...,nY-1中变化。辅助分量
Figure BDA0002883996320000297
可以是包括以下各项的分量:
-由
Figure BDA0002883996320000298
指定的辅助符号,以及
-由Bt[x][y]+指定的与所述辅助符号相关联的辅助可靠性度量。
根据一些实施例,步骤503可以包括:
-通过在非二进制纠错码的构造的代数结构上应用第一加法运算,来确定每个辅助分量Bt[x][y](t=1,...,nB)中包括的辅助符号
Figure BDA0002883996320000299
根据等式(4)将第一加法运算应用于第一消息X的分量
Figure BDA00028839963200002910
中包括的符号
Figure BDA0002883996320000301
以及第二消息Y的分量Y[y]中包括的符号
Figure BDA0002883996320000302
以及
-通过在预定义的代数结构上应用第二加法运算,来确定与每个辅助符号
Figure BDA0002883996320000303
相关联的辅助可靠性度量Bt[x][y]+,根据等式(5)将第二加法运算应用于与第一消息X的分量X[x]中包括的符号
Figure BDA0002883996320000304
相关联的可靠性度量X[x]+和与第二消息Y的分量Y[y]中包括的符号
Figure BDA0002883996320000305
相关联的可靠性度量Y[y]+
根据一些实施例,在包括实数域、整数域和自然数域的组中选择对其执行第二加法运算的预定义的代数结构。
根据一些实施例,可以取决于在包括以下各项的组中选择的至少一个参数来确定辅助分量的数量nB:在变量节点与校验节点之间交换的消息的迭代次数Niter、非二进制纠错码的构造的代数结构(例如,用于在Galois域上构造的码的Galois域)、信噪比、第一消息X的分量的第一预定义数量nX和第二消息Y的分量的第二预定义数量nY中的一个或两个、以及基本校验节点处理器在校验节点处理单元内的位置。
确定出的辅助分量可以被分组到由
Figure BDA0002883996320000306
表示的多条(np条)路径中,使得每条路径Pathn=(Pathn[0],...,Pathn[Nn-1])(n=1,...,np)包括由
Figure BDA0002883996320000307
表示的至少一个辅助分量。
可以根据辅助符号的递减的可靠性将辅助分量分组到路径中,使得:
-根据满足
Figure BDA0002883996320000308
的辅助符号的递减的可靠性,对索引为n的每条路径中包括的辅助分量进行排序;以及
-根据辅助符号的递减的可靠性,对每条路径的包括最可靠的辅助符号的辅助分量进行排序,使得
Figure BDA0002883996320000309
在步骤507处,每条路径Pathn的辅助分量可以被存储在FIFO存储器33-n(n=1,...,np)中,每个FIFO存储器33-n被指派有由在1和np之间变化的索引n给出的FIFO编号索引FNI,并且被存储在每个FIFO存储器33-n中的辅助分量还包括被指派给存储其的FIFO存储器33-n的FIFO编号索引。
可以执行步骤509至525,以通过执行nIT=nE次迭代根据被存储在不同的FIFO存储器中的nB个辅助分量,来确定基本校验节点消息E的nE个基本校验节点分量
Figure BDA0002883996320000311
根据一些实施例,每个基本校验节点分量E[e]可以包括符号
Figure BDA0002883996320000312
和与所述符号相关联的可靠性度量E[e]+,根据可靠性度量E[e]+的给定次序对基本校验节点分量进行排序,使得E[e]+≤E[e+1]+(e=0,...,nE-2),并且包括最可靠的符号的基本校验节点分量为
Figure BDA0002883996320000313
在一个实施例中,迭代可以对应于时钟周期。
迭代排序的每次迭代可以提供np个候选基本校验节点分量
Figure BDA0002883996320000314
Figure BDA0002883996320000315
这取决于从被存储在FIFO存储器中的nB个辅助分量中提取的辅助分量中包括的辅助可靠性度量与在先前迭代中确定出的候选基本校验节点分量中包括的候选可靠性度量之间执行的比较。可以根据候选可靠性度量的给定次序来对候选基本校验节点分量
Figure BDA0002883996320000316
进行排序,使得:
-包括最可靠的候选符号的候选基本校验节点分量是候选基本校验节点分量
Figure BDA0002883996320000317
并且
-第m个候选基本校验节点分量
Figure BDA0002883996320000318
包括候选符号
Figure BDA0002883996320000319
该候选符号
Figure BDA00028839963200003110
比第(m+1)个候选基本校验节点分量
Figure BDA00028839963200003111
中包括的候选符号
Figure BDA00028839963200003112
更可靠。
取决于比较结果,可以在每次迭代中决定并执行控制动作,以通过更新在先前迭代中预先确定出的候选分量来确定候选基本校验节点分量。
控制动作可以是例如保持动作、插入动作或移位动作。
在步骤509处,可以根据it=1来执行迭代排序过程的多个迭代的初始化。在其中在时钟周期期间执行迭代的实施例中,排序过程的迭代次数可以对应于排序处理时间段,即,就时钟周期数而言的延迟。
在步骤509处,可以在迭代排序过程的第一迭代(it=1)时执行初始化动作。初始化动作可以包括将候选基本校验节点分量
Figure BDA00028839963200003113
设置为存储在FIFO存储器33-m(n=m)中的且包括最可靠的辅助符号的辅助分量Bm(0)=FIFOm[0],根据与可靠性度量
Figure BDA0002883996320000322
的递增或递减次序相对应的候选符号的递减的可靠性对候选基本校验节点分量
Figure BDA0002883996320000323
进行排序。
在步骤511处,可以递增排序过程的迭代次数。
在步骤513处,可以通过检查排序过程的迭代次数it是否达到nE来控制nE个基本校验节点分量的生成。
如果在步骤513处确定it=nE,则这意味着已经确定了期望数量nE的基本校验节点分量。因此,在步骤527处,可以停止排序过程,并且可以递送nE个基本校验节点分量作为在it=1,...,nE的每次迭代中选择的所选择的候选基本校验节点分量
Figure BDA0002883996320000324
使得:
Figure BDA0002883996320000321
如果在步骤513处确定it≠nE,并且更具体地Δ<nE,则这意味着尚未确定期望数量的基本校验节点分量。可以执行步骤515至525以确定nE个基本校验节点分量。
在步骤515处,可以确定候选FIFO存储器,该候选FIFO存储器被指派有FIFO编号索引,该FIFO编号索引
Figure BDA0002883996320000325
被包括在先前迭代中确定出的且包括最可靠的候选符号的候选基本校验节点分量
Figure BDA0002883996320000326
中。
在步骤519处,可以从在步骤515处确定出的候选FIFO存储器中提取辅助分量,该辅助分量是候选FIFO存储器中紧接候选基本校验节点分量
Figure BDA0002883996320000327
的辅助分量。
在步骤521处,可以执行在接收到的辅助分量
Figure BDA0002883996320000328
中包括的辅助可靠性度量
Figure BDA0002883996320000329
与候选基本校验节点分量
Figure BDA00028839963200003210
中包括的候选可靠性度量
Figure BDA00028839963200003211
中的每一个之间的可靠性度量比较。
在步骤523处,可以通过取决于在步骤521处执行的比较来执行控制动作,从而确定np个候选基本校验节点分量
Figure BDA00028839963200003212
在步骤525处,可以选择并递送包括最可靠的候选符号的更新后的候选基本校验节点分量
Figure BDA0002883996320000331
图6是示出取决于在接收到的辅助分量中包括的辅助可靠性度量与候选基本校验节点分量
Figure BDA0002883996320000332
中包括的候选可靠性度量之间执行的比较而在步骤523处执行的控制动作的流程图。
在步骤601处,可以接收候选基本校验节点分量
Figure BDA0002883996320000333
候选基本校验节点分量
Figure BDA0002883996320000334
和辅助分量
Figure BDA0002883996320000335
可以在步骤605、609和611处执行控制动作,以取决于可靠性度量比较的结果来并行地确定np个候选基本校验节点分量
Figure BDA0002883996320000336
更具体地,对于每个m=1,...,np
-在步骤601处可以通过以下操作来执行保持动作:在步骤603处确定在第it次迭代中接收到的辅助分量
Figure BDA0002883996320000337
中包括的辅助符号
Figure BDA0002883996320000338
比由复用器315-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA0002883996320000339
中包括的候选符号
Figure BDA00028839963200003310
更可靠时,将候选基本校验节点分量
Figure BDA00028839963200003311
设置为由复用器34-m在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200003312
因此,可以满足下式:
Figure BDA00028839963200003313
以及
Figure BDA00028839963200003314
-在步骤609处可以通过以下操作来执行插入动作:在步骤603处确定辅助分量中包括的辅助符号
Figure BDA00028839963200003315
不如在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200003316
中包括的候选符号
Figure BDA00028839963200003317
可靠,且在步骤607处确定辅助符号
Figure BDA00028839963200003318
比在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200003319
中包括的候选符号
Figure BDA00028839963200003320
更可靠时,将候选基本校验节点分量
Figure BDA00028839963200003321
设置为接收到的辅助分量
Figure BDA00028839963200003322
根据插入动作:
Figure BDA00028839963200003323
以及
Figure BDA00028839963200003324
-在步骤611处可以通过以下操作来执行移位动作:在步骤607处确定接收到的辅助分量中包括的辅助符号不如在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200003325
中包括的候选符号可靠时,将候选基本校验节点分量
Figure BDA00028839963200003326
设置为在先前迭代中确定出的候选基本校验节点分量
Figure BDA00028839963200003327
根据移位动作:
Figure BDA00028839963200003328
以及
Figure BDA00028839963200003329
Figure BDA00028839963200003330
应当注意,考虑到恒定候选分量
Figure BDA00028839963200003331
包括恒定符号和恒定可靠性度量,因此恒定候选分量总是不如任意的辅助符号
Figure BDA00028839963200003332
可靠,所以假定在针对m=np执行时步骤607的比较具有恒定的“是”结果。
本文描述的方法和设备可以通过各种方式来实现。例如,可以以硬件、软件或其组合来实现这些技术。对于硬件实现方式,可以例如根据仅硬件配置(例如,在具有对应存储器的一个或多个FPGA、ASIC或VLSI集成电路中)或根据使用VLSI和DSP两者的配置来实现迭代解码器123的处理元件。
虽然已经通过对各种示例的描述示出了本公开的实施例,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图不是将所附权利要求书的范围限制或以任何方式局限于此类细节。
特别地,虽然已经参考EMS算法的特定实现方式对本公开的一些实施例进行了描述,但是应当注意,本公开还可以应用于诸如最小-最大算法之类的其他迭代解码算法。
此外,尽管已经参考在Galois域上构造的纠错码描述了本公开的一些实施例,但是本领域技术人员将容易地理解,所提出的实施例也可以应用于在非交换组上构造的任何非二进制LDPC码和任何非二进制图纠错码,例如,多项式码(例如,循环码)。
此外,即使本公开在通信系统的应用中具有一些优点,也应当注意,本公开不限于这样的通信设备,并且可以被集成在诸如数据存储设备之类的许多设备中。
可以通过供应给任何类型的计算机的处理器以产生具有执行指令以实现本文指定的功能/动作处理器的机器的计算机程序指令来实现本文描述的方法。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指导计算机以特定方式起作用。为此,可以将计算机程序指令加载到计算机上以引起一系列操作步骤的执行,并由此产生计算机实现的过程,使得所执行的指令提供用于实现本文指定的功能的过程。

Claims (10)

1.一种排序设备,用于通过对辅助分量进行排序来确定在非二进制纠错码解码器中实现的基本校验节点处理器(3)中的基本校验节点分量,所述辅助分量被存储在多个FIFO存储器(33-n)中,每个FIFO存储器(33-n)被指派有FIFO编号索引,被存储在给定FIFO存储器(33-n)中的每个辅助分量包括辅助符号、表示所述辅助符号的可靠性的辅助可靠性度量以及被指派给所述给定FIFO存储器(33-n)的FIFO编号索引,所述排序设备包括顺序布置的多个复用器(34-m),所述复用器(34-m)被配置为初始化候选基本校验节点分量的集合,每个候选基本校验节点分量是根据所述FIFO存储器(33-n)中的一个被确定的,并且其对应于被存储在所述FIFO存储器(33-n)中的所述辅助分量之中包括最可靠的辅助符号的辅助分量,根据所述辅助符号的所述辅助可靠性度量对所述候选基本校验节点分量进行排序,其中,每个复用器(34-m)被配置为执行以下步骤的一次或多次迭代:
-接收从所述FIFO存储器(33-n)中提取的包括所述最可靠的候选符号的辅助分量,所述FIFO存储器(33-n)被指派有在先前迭代中确定出的所述候选基本校验节点分量中包括的所述FIFO编号索引;以及
-通过在接收到的辅助分量、由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量以及由后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量之中选择一个分量,来更新在先前迭代中确定出的所述候选基本校验节点分量;
所述排序设备被配置为通过选择包括所述最可靠的候选符号的所述候选基本校验节点分量,在所述一次或多次迭代中的每次迭代中确定基本校验节点分量。
2.根据权利要求1所述的排序设备,其中,所述基本校验节点处理器(3)被配置为接收从两个或更多个变量节点消息导出的第一消息和第二消息,所述基本校验节点处理器(3)包括计算单元(31),所述计算单元(31)被配置为根据所述第一消息和所述第二消息确定所述辅助分量。
3.根据权利要求2所述的排序设备,其中,所述第一消息包括第一给定数量的分量,并且所述第二消息包括第二给定数量的分量,所述第一消息和所述第二消息的每个分量包括符号和关联于所述符号的可靠性度量,所述计算单元(31)被配置为根据所述第一消息中包括的分量和所述第二消息中包括的分量来确定所述辅助分量之中的每个辅助分量,所述计算单元(31)被配置为:
-通过在所述非二进制纠错码的构造的代数结构上应用第一加法运算,来确定每个辅助分量中包括的所述辅助符号,所述第一加法运算被应用于所述第一消息的分量中包括的符号和所述第二消息的分量中包括的符号;
-通过在预定义的代数结构上应用第二加法运算来确定与每个辅助符号相关联的所述辅助可靠性度量,所述第二加法运算被应用于与所述第一消息的分量中包括的符号相关联的可靠性度量以及与所述第二消息的分量中包括的符号相关联的可靠性度量;
根据所述辅助符号的递减的可靠性来对被存储在每个FIFO存储器(33-n)中的所述辅助分量进行排序。
4.根据权利要求3所述的排序设备,其中,在包括实数域、整数域和自然数域的组中选择所述预定义的代数结构。
5.根据权利要求3所述的排序设备,其中,分量的所述第一给定数量和分量的所述第二给定数量相等。
6.根据权利要求3所述的排序设备,其中,分量的所述第一给定数量和分量的所述第二给定数量不同。
7.根据权利要求1所述的排序设备,其中,所述基本校验节点处理器(3)在校验节点处理单元中实现,所述校验节点处理单元被配置为在多次消息交换迭代期间与在所述非二进制纠错码中实现的至少一个变量节点处理单元交换两个或更多个变量节点消息,所述基本校验节点处理器(3)被配置为取决于在包括以下各项的组中选择的至少一个参数来预先确定所述辅助分量的数量:所述消息交换迭代的次数、所述非二进制纠错码的构造的代数结构、信噪比、第一消息的分量的第一预定义数量或第二消息的分量的第二预定义数量中的一个或多个、以及所述基本校验节点处理器(3)在所述校验节点处理单元内的位置。
8.根据权利要求1所述的排序设备,其中,候选基本校验节点分量包括候选符号和关联于所述候选符号的候选可靠性度量,每个复用器(34-m)与可靠性度量比较器(36-m)相关联,所述可靠性度量比较器(36-m)被配置为在所述接收到的辅助分量中包括的辅助可靠性度量与由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量中包括的所述候选可靠性度量之间执行比较,每个复用器(34-m)被配置为执行用于进行以下操作的控制动作:取决于由与所述复用器(34-m)相关联的所述可靠性度量比较器(36-m)执行的所述比较以及由与所述后续复用器(34-(m+1))相关联的可靠性度量比较器(36-(m+1))执行的比较,在所述接收到的辅助分量和由所述复用器(34-m)和所述后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量之中选择分量。
9.根据权利要求8所述的排序设备,其中,每个复用器(34-m)被配置为:
-通过以下操作来执行保持动作:在确定所述接收到的辅助分量中包括的所述辅助符号比由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量中包括的所述候选符号更可靠时,将所述候选基本校验节点分量设置为由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量;
-通过以下操作来执行插入动作:在确定所述辅助分量中包括的所述辅助符号不如由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量中包括的所述候选符号可靠,且所述辅助符号比由所述后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量中包括的所述候选符号更可靠时,将所述候选基本校验节点分量设置为所述接收到的辅助分量;
-通过以下操作来执行移位动作:在确定所述接收到的辅助分量中包括的所述辅助符号比由所述后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量中包括的所述候选符号更可靠时,将所述候选基本校验节点分量设置为由所述后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量。
10.一种用于通过对辅助分量进行排序来确定在非二进制纠错码解码器中实现的基本校验节点处理器(3)中的基本校验节点分量的排序方法,所述辅助分量被存储在多个FIFO存储器(33-n)中,每个FIFO存储器(33-n)被指派有FIFO编号索引,被存储在给定FIFO存储器(33-n)中的每个辅助分量包括辅助符号、表示所述辅助符号的可靠性的可靠性度量以及被指派给所述给定FIFO存储器(33-n)的FIFO编号索引,所述排序方法包括通过多个复用器(34-m)执行候选基本校验节点分量的集合的初始化,每个候选基本校验节点分量是根据所述FIFO存储器中的一个被确定的,并且其对应于被存储在所述FIFO存储器(33-n)中的所述辅助分量之中包括最可靠的辅助符号的辅助分量,根据所述辅助符号的所述可靠性度量对所述候选基本校验节点分量进行排序,其中,所述方法包括通过每个复用器(34-m)执行以下步骤的一次或多次迭代:
-接收从所述FIFO存储器(33-n)中提取的包括所述最可靠的候选符号的辅助分量,所述FIFO存储器(33-n)被指派有在先前迭代中确定出的所述候选基本校验节点分量中包括的所述FIFO编号索引;以及
-通过在接收到的辅助分量、由所述复用器(34-m)在先前迭代中确定出的所述候选基本校验节点分量以及由后续复用器(34-(m+1))在先前迭代中确定出的所述候选基本校验节点分量之中选择一个分量,来更新在先前迭代中确定出的所述候选基本校验节点分量;
所述方法还包括通过选择包括所述最可靠的候选符号的所述候选基本校验节点分量,在所述一次或多次迭代中的每次迭代中确定基本校验节点分量。
CN201980045288.5A 2018-07-05 2019-07-04 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法 Pending CN112470406A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18305889.0A EP3591845B1 (en) 2018-07-05 2018-07-05 Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes
EP18305889.0 2018-07-05
PCT/EP2019/068041 WO2020008006A1 (en) 2018-07-05 2019-07-04 Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes

Publications (1)

Publication Number Publication Date
CN112470406A true CN112470406A (zh) 2021-03-09

Family

ID=63762428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980045288.5A Pending CN112470406A (zh) 2018-07-05 2019-07-04 用于针对非二进制码的消息传递解码的基本校验节点处理的排序设备和方法

Country Status (4)

Country Link
US (1) US11245421B2 (zh)
EP (1) EP3591845B1 (zh)
CN (1) CN112470406A (zh)
WO (1) WO2020008006A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066917A1 (en) * 2009-09-14 2011-03-17 Stmicroelectronics Sa Method and Apparatus for Elementary Updating a Check Node During Decoding of a Block Encoded with a Non-binary LDPC Code
US20130346883A1 (en) * 2011-08-18 2013-12-26 Brian Shuster Systems and methods of managing virtual world avatars
US20160182087A1 (en) * 2014-12-18 2016-06-23 Apple Inc. Gldpc soft decoding with hard decision inputs
CN107919874A (zh) * 2016-09-09 2018-04-17 南布列塔尼大学 用于非二进制ldpc码解码的校验子计算的基本校验节点处理
CN107979445A (zh) * 2016-10-25 2018-05-01 南布列塔尼大学 使用预先排序的输入的基于基本校验节点的校正子解码

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7507740B2 (en) * 2004-06-02 2009-03-24 Takeda Pharmaceutical Company Limited Fused heterocyclic compound
FR3016259B1 (fr) * 2014-01-07 2017-09-08 Univ Bretagne Sud Procede de gestion d'une unite de calcul de noeud de parite, equipement et logiciel pour la mise en oeuvre du procede
EP3419181A1 (en) * 2017-06-19 2018-12-26 Universite De Bretagne Sud Simplified check node processing in non-binary ldpc decoder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110066917A1 (en) * 2009-09-14 2011-03-17 Stmicroelectronics Sa Method and Apparatus for Elementary Updating a Check Node During Decoding of a Block Encoded with a Non-binary LDPC Code
US20130346883A1 (en) * 2011-08-18 2013-12-26 Brian Shuster Systems and methods of managing virtual world avatars
US20160182087A1 (en) * 2014-12-18 2016-06-23 Apple Inc. Gldpc soft decoding with hard decision inputs
CN107919874A (zh) * 2016-09-09 2018-04-17 南布列塔尼大学 用于非二进制ldpc码解码的校验子计算的基本校验节点处理
CN107979445A (zh) * 2016-10-25 2018-05-01 南布列塔尼大学 使用预先排序的输入的基于基本校验节点的校正子解码

Also Published As

Publication number Publication date
US20210250047A1 (en) 2021-08-12
EP3591845B1 (en) 2023-08-09
WO2020008006A1 (en) 2020-01-09
US11245421B2 (en) 2022-02-08
EP3591845A1 (en) 2020-01-08

Similar Documents

Publication Publication Date Title
US10560120B2 (en) Elementary check node processing for syndrome computation for non-binary LDPC codes decoding
CN107404321B (zh) 用于纠错码解码的方法和设备
CN107979445B (zh) 使用预先排序的输入的基于基本校验节点的校正子解码
CN110999093B (zh) 用于非二进制ldpc码的扩展最小和(ems)解码的校验节点处理的混合架构
CN110999092B (zh) 非二进制ldpc码的简化的预排序的基于校正子的扩展最小和(ems)解码
US11290128B2 (en) Simplified check node processing in non-binary LDPC decoder
US11545998B2 (en) Offset value determination in a check node processing unit for message-passing decoding of non-binary codes
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
US11245421B2 (en) Check node processing methods and devices with insertion sort

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination