CN107404321B - 用于纠错码解码的方法和设备 - Google Patents

用于纠错码解码的方法和设备 Download PDF

Info

Publication number
CN107404321B
CN107404321B CN201710286512.2A CN201710286512A CN107404321B CN 107404321 B CN107404321 B CN 107404321B CN 201710286512 A CN201710286512 A CN 201710286512A CN 107404321 B CN107404321 B CN 107404321B
Authority
CN
China
Prior art keywords
message
data structure
processing unit
components
node processing
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.)
Active
Application number
CN201710286512.2A
Other languages
English (en)
Other versions
CN107404321A (zh
Inventor
C·马尔尚
E·布蒂永
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 CN107404321A publication Critical patent/CN107404321A/zh
Application granted granted Critical
Publication of CN107404321B publication Critical patent/CN107404321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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
    • 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
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/6502Reduction of hardware complexity or efficient processing

Abstract

本发明的实施例提供了一种在解码器中实现的校验节点处理单元,所述解码器被配置为对使用纠错码编码的信号进行解码,所述信号包括符号,校验节点处理单元被配置为接收至少两个输入消息并产生至少一个输出消息,每个消息包括多个分量,每个分量包括符号的值和与所述符号相关联的可靠性度量,其中校验节点处理单元包括:‑数据结构(31),其被配置为存储所述输入消息,输入消息的分量与数据结构中的整数索引相关联;‑数据处理单元(33),其被配置为将变换操作的一次或多次迭代应用于数据结构的至少一部分,执行变换操作的每次迭代,以根据与整数索引的给定值相关联的消息的分量中的至少一些来布置所述数据结构(31)中的所述输入消息的分量,这提供变换后的数据结构;‑计算单元(35),其被配置为根据所述变换后的数据结构中包括的分量来确定所述至少一个输出消息。

Description

用于纠错码解码的方法和设备
技术领域
本发明总体上涉及数字通信,以及更具体地涉及用于对使用纠错码编码的信号进行解码的方法和设备。
背景技术
错误检测和纠正技术常规用于保持计算和通信系统中的数据的完整性。这样的技术广泛地用于在包括媒体设备和计算机中的数字视频、通信以及存储的许多应用中实现可靠的数据存储和传输。
错误检测技术使得能够检测在将数据从发射机传输到接收机期间由噪声、干扰或其它损伤引起的错误。示例性的错误检测技术包括重复码、奇偶校验位以及循环冗余校验。
纠错技术不仅实现错误的检测,还实现原始的无错数据的重构。示例性的纠错技术包括自动重复请求和前向纠错码。
使用纠错码(ECC)的编码过程基于向原始信息数据添加冗余数据。该冗余允许接收机检测并可能纠正传输错误,而不需要重传原始数据。
现有的纠错码包括线性码,根据该线性码,码字的任何线性组合也是码字。线性码一般被划分为“分组码(block code)”和“卷积码(convolutional code)”。分组码处理固定大小的数据块,而卷积码逐个符号地处理数据。线性分组码被广泛使用,因为其与卷积码相比更不复杂且更易于实现。示例性的线性分组码包括汉明码、里德-所罗门码、Turbo码、以及低密度奇偶校验(LDPC)码。
长度为n且秩为k的线性分组码通过添加被称为“奇偶校验符号”的n-k个冗余符号将长度为k的符号块编码为长度为n>k的向量(被称为“码字”)。额外的奇偶校验符号的目的在于检测并可能纠正在传输期间发生的任何错误。可以使用“码本”、“矩阵”或“图形”表示来表示这样的代码。
码本表示定义了可允许码字的字典及其所属的线性空间。例如,对于在阶q≥2的伽罗华(Galois)域(记作GF(q))上构造的线性码,码字中包括的符号取GF(q)中的值。由此,码字是每个均属于GF(q)的n个符号的向量。如果符号属于GF(2),则代码是二进制的。相反,当q>2时,代码是所述非二进制的。
线性分组码的矩阵表示定义了一般用G表示的生成矩阵,以及一般用H表示的奇偶校验矩阵,其通过关系G.Ht=0而链接。生成矩阵和奇偶校验矩阵的条目属于在其上构造代码的域。奇偶校验矩阵定义了被设计为要由码字满足的奇偶校验约束。特别地,奇偶校验矩阵的每一行的非零条目定义了要由任何码字满足的奇偶校验方程。
线性分组码可以等效地由二分图表示,其被称为“Tanner图”。这种表示包括两组节点:被称为“可变节点”的第一组节点和被称为“校验节点”的第二组节点。可变节点和校验节点通过路径(以下称为“边缘”)链接在一起。可变节点和校验节点形成处理单元。每个可变节点与奇偶校验矩阵的列相关联。每个校验节点与奇偶校验矩阵的行相关联,即与奇偶校验方程相关联。可变节点和校验节点之间的连接由奇偶校验矩阵的非零条目确定。特别地,LDPC码由稀疏奇偶校验矩阵指定,该稀疏奇偶校验矩阵包括比非零条目的数量大得多的多个零条目。相应的Tanner图一般由很少数量的边缘来表征。这样的属性在解码所需的计算复杂度方面提供了显著的优点。
迭代解码器可以用于对使用线性分组纠错码编码的数据进行解码。在给定通信信道中的信道输出或接收的符号序列的情况下,迭代解码器在多次迭代期间对信号进行处理,使其在每次迭代时更接近原始发送的码字。
用于线性分组纠错码的迭代解码算法使用底层代码的Tanner图表示。一般地,Tanner图中的每个节点映射到硬件和/或软件实现中的处理单元。迭代解码过程相应地包括经由Tanner图中的不同路径在可变节点处理单元和校验节点处理单元之间交换消息(且反之亦然),以根据有噪声的接收到的符号序列来估计最可靠的码字。每个可变节点处理单元或校验节点处理单元从图中的对应连接的节点接收输入消息,并在处理了输入消息之后将输出消息递送到与Tanner图中的连接节点相对应的至少一个处理单元。
迭代解码过程包括初始化步骤,在该步骤期间,根据信道输出信息来初始化要由可变节点处理单元递送的消息。然后迭代地执行涉及可变节点和校验节点的消息交换。解码在以下情况下停止:或者如果所有奇偶校验约束都被满足由此返回已解码的码字,或者通过在没有满足所有奇偶校验约束的情况下达到最大迭代次数。
在可变节点处理单元与校验节点处理单元之间交换的消息携带关于符号的表示信息。例如,在硬判决解码中,交换的消息可以携带符号的值。在软判决解码中,可以在不同的处理单元之间传递符号和测量其可靠性的度量(也被称为“可靠性度量”)。例如,符号的可靠性度量可以是其概率密度函数,该概率密度函数测量符号等于GF(q)的每个值的概率。
在二进制码的情况下,消息是包括表示比特“0”和比特“1”的两个值的向量。在q>2的伽罗华域GF(q)上构造的非二进制码的情况下,消息是包括表示属于GF(q)的符号的q个值的向量。另外,在软判决解码中,消息是包括q个符号对及其可靠性度量的向量。
早期迭代解码算法被设计用于二进制码并应用于二进制LDPC码。它们是“和-积”算法(也称为“信念传播”或“消息传递”算法)和“最小和”算法,这二者在N.Wibereg、H-A.Loeliger以及R.Kotter的“Codes and Iterative Decoding on General Graphs,European Transactions on Telecommunications and Related Technologies,specialissue on Turbo Coding,June 1995”中公开。它们在错误解码概率方面提供近似最佳的性能。
也可以使用迭代算法来执行对包括非二进制LDPC码的非二进制线性分组码的解码。受到和-积算法的启发,“q-ary和-积”算法已经在M.Davey和D.MacKay的“Low-densityparity check codes over GF(q),IEEE Communications Letters,vol.2,no.6,pages165-167,June 1998”中首次提出。q-ary算法的复杂度太高而不适用于硬件实现。为了克服这个限制,已经开发了若干解决方案,主要是针对降低校验节点处理单元处的计算复杂度,其涉及每单元的O(q2)操作(解码过程的计算复杂度的主要部分)。
第一种解决方案已经在D.J.C.Mackay和M.Davey的“Evaluation of GallagerCodes for Short Block Length and High Rate Applications,In Proceedings of IMAWorkshop on Codes,Systems and Graphical Models,1999”以及L.Barnault和D.Declercq的“Fast decoding algorithm for LDPC over GF(q),In Proceedings ofIEEE Information Theory Workshop,pages 70-73,April 2003”中独立地公开了。它们包括在使用傅立叶变换的频域中实现计算复杂度的降低的q-ary算法的版本。
开发了其它对数域方法,其可以通过将求积运算变换为简单的求和运算来实现进一步降低计算复杂度。在这种情况下,消息交换期间传递的可靠性度量以对数标度表示。以这种途径的主要结果包括在H.Sadjadpour的“Maximum A Posteriori DecodingAlgorithms For Turbo Codes,In Proceedings of SPIE,vol.4045,2000”中公开的“最大-对数-映射(max-log-map)”turbo码解码器以及“扩展的最小-和”(EMS)算法和用于非二进制LDPC码解码的“最小-最大算法”。
除了对数域中的计算之外,EMS算法应用消息排序和截断功能,以进一步降低校验节点处理单元处的计算复杂度和存储器需求。因此,根据与包括在消息中的q个符号相关联的可靠性度量的顺序,首先对递送到校验节点处理单元的每个消息(q个分量的向量)进行排序。然后,将排序后的消息截断,以使得由接收消息作为输入的校验节点处理单元仅保存并处理数量为N<<q的分量。执行消息截断,以使得保留最可靠的符号以有助于计算由校验节点处理单元递送的输出消息。关于EMS算法的详细描述,本领域的技术人员可以参考D.Declercq和M.Fossorier的文章“Decoding algorithms for non-binary LDPC codesover GF,IEEE Transactions on Communications,vol.55,no.4,pages 633-643,April2007”。
最小-最大算法例如在V.Savin的“Min-max decoding for non-binary LDPCcodes,In Proceedings of IEEE International Symposium on Information Theory,pages 960-964,July 2008”中进行了公开。最小-最大算法与EMS算法相似。它们之间的唯一区别在于最小-最大算法用最大化运算来代替校验节点处理中的求和运算。
可以根据各种架构来执行对来自已排序且已截断的输入消息的、校验节点处理单元级别的输出消息的计算。例如,可以使用前向-后向架构来将由单个校验节点处理单元执行的计算划分为涉及多个基本校验节点处理单元的多个计算。每个基本校验节点处理单元处理两个或更多个输入消息以产生中间结果,该中间结果随后由后来阶段中的剩余基本校验节点处理单元来使用。用于基本校验节点处理的示例性算法是分别在E.Boutillon和L.Conde-Canencia的“Bubble check:a simplified algorithm for elementary checknode processing in extended min-sum non-binary LDPC decoder,ElectronicsLetters,vol.46,no.9,pp.633-634,April 2010”以及E.Boutillon、L.Conde-Canencia和A.Al Ghouwayel的“Design of a GF(64)-LDPC Decoder based on the EMS algorithm,IEEE Transactions on Circuits and Systems,vol.60,no.10,pages 2644-2656,October 2013”中公开的“冒泡校验(Bubble Check)”算法及其被称为“L-冒泡校验”的改进版本。另外,冒泡校验和L-冒泡校验算法基于由基本校验节点处理单元从两个输入消息中计算的最优中间结果的搜索空间的减少。
在另一个示例中,可以在校验节点处理单元处使用基于校正子计算的最近开发的架构。因此,对来自已排序且已截断的输入消息的输出消息进行计算分两步执行。在第一个步骤中,校验节点处理单元计算涉及所有输入消息的被称为“校正子”的一组值。在第二个步骤中,执行去相关操作。为了计算要递送到可变节点处理单元的输出消息,通过去相关操作从计算出的校正子中消除先前从该可变节点处理单元接收到的输入消息的贡献。基于校正子的架构在P.Schlafer、N.When、M.Alles、T.Lehnigk-Emden和E.Buutillon的“Syndromebased check nodes processing of high order NB-LDPC decoder,In Proceedings ofthe International Conference on Telecommunications,pages 156-162,April 2015”以及P.Schlafer等的“A new Architecture for High Speed,Low Latency NB-LDPCCheck Node Processing,In Proceedings of IEEE International Symposium onPersonal,Indoor and Mobile Radio Communications,August 2015”中进行了公开。基于校正子的校验节点处理允许对更高阶的伽罗华域进行高效的并行计算。
LDPC码是非常高效的线性分组码,其可以提供接近信道容量(即,可以通过通信信道传输的信息的理论最大量)的高传输速率。LDPC码正在以下各种应用中寻求扩展使用:包括数字视频广播(DVB)、长途光通信、无线局域网通信(例如,Wi-Fi 802.11标准化)以及无线电通信(3G、4G/LTE、5G及以上)。
非二进制LDPC码在需要高频谱效率的应用中是特别有利的。另外,当代码长度适中时,非二进制LDPC码可以以较高的解码复杂度为代价来实现比二进制码更好的纠错性能。随着代码的长度和/或在其上构造代码的域的大小增加,校验节点处理中的复杂计算和大存储器需求给高效的硬件实现带来障碍。这样的实现需要过多的硅面积,使得解码器对于实际设计来说相当昂贵。因此,需要降低用于解码非二进制线性分组码的校验节点处理单元的计算复杂性。
发明内容
为了解决这些问题和其它问题,提供了在解码器中实现的校验节点处理单元。解码器被配置为对使用纠错码编码的信号进行解码。信号包括符号。校验节点处理单元被配置为接收至少两个输入消息并生成至少一个输出消息。每个消息包括多个分量。每个分量包括符号的值和与符号相关联的可靠性度量。校验节点处理单元包括:
-数据结构,其被配置为存储输入消息,输入消息的分量与数据结构中的整数索引相关联;
-数据处理单元,其被配置为将变换操作的一次或多次迭代应用于数据结构的至少一部分。执行变换操作的每次迭代,以根据与整数索引的给定值相关联的消息的分量中的至少一些来布置数据结构中的输入消息的分量,这提供变换后的数据结构;
-计算单元,其被配置为根据变换后的数据结构中包括的分量来确定至少一个输出消息。
根据一个实施例,可以执行变换操作,以根据与整数索引的给定值相关联的消息的分量的可靠性度量的递增顺序来布置数据结构中的输入消息的分量。
在一个实施例中,可以预定义变换操作的迭代次数。
在特定实施例中,变换操作的迭代次数可以基于在由信噪比、输入消息中包括的分量的数量、纠错码的构造域、以及解码迭代次数组成的组中选择的至少一个约束参数来确定。
根据一个实施例,计算单元可以被配置为使用校正子-解码架构来确定一个或多个输出消息。
根据另一个实施例,计算单元可以被配置为使用涉及多个基本校验节点处理单元的前向-后向架构来确定(多个)输出消息。
在一个实施例中,输入消息的分量可以以符号的可靠性度量的递减顺序来排序。
在另一个实施例中,输入消息的分量可以以符号的可靠性度量的递增顺序来排序。
在一些实施例中,符号的可靠性度量可以由对数似然比值表示。
在非二进制LDPC码解码的一个应用中,提供在解码器中实现的校验节点处理单元,其用于以降低的计算复杂度对使用非二进制LDPC码编码的信号进行解码。
还提供了用于接收并解码使用纠错码编码的信号的接收机。该接收机包括根据任何前述特征的解码器。
在无线通信系统的一个应用中,提供了能够在无线通信系统中接收数据的无线设备。该无线设备包括根据前述实施例中的任何实施例的接收机。
在光通信系统的一个应用中,提供了能够在光通信系统中接收数据的光学设备。该光学设备包括根据前述实施例中任何实施例的接收机。
还提供了一种在解码器中实现的校验节点处理单元处计算至少一个输出消息的方法。解码器被配置为对使用纠错码编码的信号进行解码。信号包括符号。校验节点处理单元被配置为接收至少两个输入消息。每个消息包括多个分量。每个分量包括符号的值和与该符号相关联的可靠性度量。该方法包括:
-将输入消息存储在数据结构中,输入消息的分量与数据结构中的整数索引相关联;
-将变换操作的一次或多次迭代应用于数据结构的至少一部分。执行变换操作的每次迭代,以根据与整数索引的给定值相关联的消息的分量中的至少一些来布置数据结构中的输入消息的分量,这提供变换后的数据结构;
-根据变换后的数据结构中包括的分量来确定至少一个输出消息。
还提供了一种用于在解码器中实现的校验节点处理单元处计算至少一个输出消息的计算机程序。解码器被配置为对使用纠错码编码的信号进行解码。信号包括符号。校验节点处理单元被配置为接收至少两个输入消息。每个消息包括多个分量。每个分量包括符号的值和与符号相关联的可靠性度量。该计算机程序产品包括:
非暂时计算机可读存储介质,以及存储在非暂时性计算机可读存储介质上的指令,指令在被处理器执行时使得处理器:
-将输入消息存储在数据结构中,输入消息的分量与数据结构中的整数索引相关联;
-将变换操作的一次或多次迭代应用于数据结构的至少一部分。执行变换操作的每次迭代,以根据与整数索引的给定值相关联的消息的分量中的至少一些来布置数据结构中的输入消息的分量,这提供变换后的数据结构;
-根据变换后的数据结构中包括的分量来确定至少一个输出消息。
有利地,各种实施例允许减少在校验节点处理单元处计算输出消息所需的输入消息的数量。作为结果,可以显著地降低在纠错码解码器中实现的校验节点处理单元处的计算复杂度。
此外,各种实施例允许降低校验节点处理单元的硬件实现的成本、吞吐量改进以及硅面积节省。
在检查附图和具体实施方式后,本发明的其它优点对于本领域的技术人员将变得清楚。旨在将任何附加的优点并入本文。
附图说明
并入并构成本说明书的一部分的附图示出了本发明的各种实施例,并且与上文给出的本发明的总体描述以及下文给出的实施例的具体实施方式一起说明了本发明的一些实施例。
图1是本发明在通信系统中的示例性应用的示意图;
图2是根据本发明的一些实施例的迭代解码器的示意图;
图3是示出根据本发明的一些实施例的校验节点处理单元的结构的框图;
图4是表示根据本发明在校正子解码架构中的应用的校验节点处理单元的计算单元的框图;
图5是表示根据本发明在前向-后向架构中的应用的校验节点处理单元的计算单元的框图;
图6是描述根据本发明的一些实施例的使用扩展的最小和算法的迭代解码方法的流程图;
图7是示出根据本发明的一些实施例的在校验节点处理单元处确定输出消息的方法的流程图;
图8是描述根据本发明在校正子解码架构中的应用的在校验节点处理单元处确定中间消息的方法的流程图;
图9是描述根据应用于校正子解码的一些实施例的确定配置集的方法的流程图;
图10是示出根据一些实施例的使用校正子解码架构获得的帧错误率(FER)的图;以及
图11是示出根据一些实施例的使用前向-后向架构获得的帧错误率的图。
具体实施方式
本发明的实施例单独地或组合地提供了用于以降低的计算复杂度来对使用纠错码编码的信号进行解码的方法、设备以及计算机程序产品。具体地,实施例提供了用于高效实现用于对使用非二进制线性分组纠错码编码的信号进行解码的迭代解码算法中的校验节点处理单元的方法、设备以及计算机程序产品。
根据各种实施例的方法、设备以及计算机程序产品可以在若干数字数据传输和存储系统中实现,其具有在例如有线、无线和光通信、固态数据存储、磁和光记录、数字电视和视频广播中的应用。
仅出于说明的目的,将参考数字通信系统来进行本发明的一些实施例的以下描述。然而,本领域的技术人员将容易理解,本发明的各种实施例可以集成在其它类型的系统中。示例性的通信系统包括有线、无线、声学、光学以及分子系统。
此外,仅出于说明的目的,将参考线性分组纠错码来进行本发明的一些实施例的以下描述。然而,本领域的技术人员将容易理解,本发明的各种实施例适用于包括卷积码的任何线性码,并且一般地适用于任何纠错。
参考图1,示出了本发明在数字通信系统100中的示例性的实施方式。通信系统100可以包括至少一对发射机设备10和接收机设备12。发射机设备10(在下文中也被称为“发射机”)被配置为经由传输信道11将数据信息传送到接收机12(在下文中也被称为“接收机”)。
根据本发明的一些实施例,发射机10可以包括纠错码(ECC)编码器103,其被配置为使用线性分组纠错码将数字输入数据流101编码成码字c。接收机12可以被配置为通过传输信道11接收已编码数据(或码字)的有噪声的副本。接收机12可以包括被配置为递送原始码字的估计
Figure BDA0001280821880000101
的纠错码解码器123。
数字输入数据101可以在由ECC编码器103编码之前已经被先前压缩过。适于增加信息吞吐量的任何源编码方案(图1中未示出)可以用于执行该压缩。由ECC编码器103编码的数据可以进一步由调制器105调制。调制器105可以被配置为将已编码的数据映射到模拟信号s并将其映射到传输信道中。
接收机12可以包括被配置为执行反向功能的同源处理单元。接收机12可以包括解调器121,其被配置为在由ECC解码器123进行ECC解码之前解调来自传输信道的接收到的信号。解调器121可以被配置为将接收到的信号或信道输出移回基带中并执行低通滤波、采样以及量化。可以进一步使用任何源解码器(图1中未示出)对由ECC解码器123解码的数据进行解压缩。
在本发明在诸如计算机网络系统的有线通信系统的应用中,发射机10和/或接收机12可以是被配置为在有线网络中操作的任何设备。这种应用中的示例性设备包括连接到小面积或大面积有线网络的计算机、路由器或交换机。在这种情况下,传输信道11可以是用于确保在不同的连接的设备之间的数据传输的任何类型的物理电缆。
在本发明在诸如自组织无线网络、无线传感器网络以及无线电通信系统的无线通信系统的应用中,发射机10和接收机12可以是被配置为在无线环境中操作的任何类型的固定或移动无线设备。这种应用中的示例性设备包括笔记本电脑、移动电话以及基站。在这种情况下,传输信道11可以是任何无线传播介质。此外,传输信道11可以容纳若干对发射机10和接收机12。在这样的实施例中,多址技术和/或网络编码技术可以与纠错码结合使用。示例性的多址技术包括时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)以及空分多址(SDMA)。
在本发明在诸如基于光纤的系统的光通信系统的应用中,发射机10和接收机12可以是被配置为分别发射和接收通过光链路传播的数据信息的任何光收发机设备。示例性的光通信系统包括偏分复用(PMD)和模分复用(MDM)系统。
对于任何类型的有线、无线或光通信系统,传输信道11可以是任何有噪声的信道。噪声可能是由于系统组件的热噪声或被天线拦截的干扰辐射造成的。其它示例性的噪声源包括切换、手动中断、电火花以及闪电。在一些实施例中,总噪声可以由加性白高斯噪声(AWGN)来建模。
此外,根据应用于数字大容量存储的一些实施例,传输信道11可以例如由擦除信道、二进制对称信道或高斯来建模。在这样的实施例中,传输信道11可以是可以被发送到(写入)并从中接收(读取)的任何类型的存储设备。
另外,发射机10和接收机12可以配备有单个或多个天线。特别地,在存在多个发射和/或接收天线的情况下,空间-时间编码和解码技术可以与纠错编码和解码结合使用。
此外,已编码的数据可以在一个或多个频带上发送。当已编码的数据在多个频带上发送时,调制器105可以使用诸如OFDM(正交频分多路复用)和FBMC(滤波器组多载波)的多载波调制格式。
根据各种实施例,ECC编码器103可以实现由(n,k)指定的线性分组纠错码;n和k分别指代代码的长度和秩。ECC编码器103相应地将长度为k的信息数据的消息向量u编码为码字c,c是长度为n的向量。因此,码字c包括在下文中也被称为“符号”的n个分量。
对于在一般用GF(q)表示的伽罗华域上构造的线性码,其中q≥2指定代码的势(cardinality),符号取GF(q)中的值。由此,码字c是每个均属于GF(q)的n个符号的向量。如果符号属于GF(2),则代码是二进制的。相反,当q>2时,代码是所述非二进制的。
可以使用由G表示的生成矩阵和由H表示的奇偶校验矩阵以矩阵形式表示线性分组纠错码。使用向量的行记号,生成矩阵G的维度为k×n,而奇偶校验矩阵的维度为(n-k)xn。两个矩阵通过关系G.Ht=0链接。另外,两个矩阵的条目都属于相应的伽罗华域。使用矩阵表示,任何码字c都满足方程c.Ht=0。这个方程被称为“奇偶校验方程”。它定义了被设计为要由任何码字满足的n个奇偶校验约束。
与矩阵表示相关联,可以使用被称为“Tanner图”的二分图
Figure BDA0001280821880000127
来表示线性码。该图包括n个可变节点和n-k个校验节点。每个可变节点i∈{1,2,…,n}与奇偶校验矩阵的列相关联。每个校验节点j∈{1,2,…,n-k}与奇偶校验矩阵的行相关联,即与奇偶校验方程相关联。如果奇偶校验矩阵的条目Hij不为零(即,如果Hij≠0),则可变节点i连接到校验节点j。
Figure BDA0001280821880000121
表示连接到可变节点i的相邻校验节点的集合。类似地,
Figure BDA0001280821880000122
表示连接到校验节点j的相邻可变节点的集合。可变节点i(等效地,校验节点j)的度对应于集合
Figure BDA0001280821880000123
的势(等效地,集合
Figure BDA0001280821880000124
的势))。
仅出于说明的目的,将参考使用非二进制LDPC码对数据进行编码的ECC编码器103进行一些实施例的以下描述。然而,本领域的技术人员将容易理解,本发明的各种实施例适用于其它非二进制码,并且一般适用于二进制和非二进制线性分组纠错码和非二进制turbo码。
出于示例的目的,ECC解码器123实现用于对由ECC编码器103编码的数据信息进行解码的非二进制LDPC码解码器。ECC解码器123可以实现任何迭代非二进制LDPC码解码器,例如,扩展的最小和算法或最小-最大算法。
在一些实施例中,可以降低EMS解码算法的复杂度。将参考EMS算法进行随附的描述。然而,本领域的技术人员将容易地理解,各种实施例应用于任何迭代非二进制LDPC码解码器。
参考图2,示出了根据使用EMS算法的一些实施例的迭代非二进制LDPC解码器123的结构。
迭代解码器123可以被配置为根据接收到的有噪声的序列y确定发射机10发送的码字c的估计
Figure BDA0001280821880000125
迭代解码器123可以通过若干次迭代对信号进行处理,使其在每次迭代时更接近发送的码字c。
迭代解码器123可以被配置为基于代码的Tanner图表示来确定估计
Figure BDA0001280821880000126
因此,迭代解码器123可以包括n个可变节点处理单元217和n-k个校验节点处理单元215。每个可变节点处理单元217对应于Tanner图中的一个可变节点。每个校验节点处理单元215对应于Tanner图中的一个校验节点。可变节点处理单元217和校验节点处理单元215可以被配置为迭代地交换消息以根据有噪声的序列y估计最可靠的码字
Figure BDA0001280821880000131
对应于可变节点i的可变节点处理单元217可以被配置为从对应于集合
Figure BDA0001280821880000132
的校验节点处理单元215接收输入消息。可变节点处理单元217可以进一步被配置为处理这些输入消息,并将输出消息递送到对应于集合
Figure BDA0001280821880000133
中的校验节点的至少一个校验节点处理单元215。
类似地,对应于校验节点j的校验节点处理单元215可以被配置为从对应于集合
Figure BDA0001280821880000134
的可变节点处理单元217接收输入消息。校验节点处理单元215可以进一步被配置为处理这些输入消息并将输出消息递送到对应于集合
Figure BDA0001280821880000135
中的可变节点的至少一个可变节点处理单元217。
消息交换可以由可变节点处理单元217初始化。消息交换在以下情况下可以终止:或者如果处理后的信号满足奇偶校验方程,或者如果在没有满足所有奇偶校验约束的情况下达到最大迭代次数。如果在没有满足所有奇偶校验约束的情况下达到最大迭代次数,则迭代解码器123可以被配置为递送处理后的信号作为原始码字的估计。在后一种情况下,迭代解码器123可以被配置为宣告解码失败。
如图2所示,迭代解码器123还可以包括被配置为存储接收到的序列y的存储单元211。迭代解码器123还可以包括处理单元213,其被配置为基于从存储单元211加载的接收到的序列y来确定要由可变节点处理单元217递送的输出消息的初始值。
在可变节点处理单元217和校验节点处理单元215之间交换的消息可以携带关于符号的表示信息。从对应于可变节点i的可变节点处理单元217发送到对应于集合
Figure BDA0001280821880000136
中的校验节点j的校验节点处理单元215的消息被记作Ui。类似地,从对应于校验节点j的校验节点处理单元215发送到对应于集合
Figure BDA0001280821880000137
中的可变节点i的可变节点处理单元217的消息被记作Vi
根据一些实施例,交换的消息的长度可以等于用于构造线性码的伽罗华域的阶。因此,每个交换的消息Ui和Vi是在GF(q)上构造的代码的长度为q的向量。
在与软判决解码有关的其它实施例中,交换的消息可以携带符号的值和测量其可靠性的度量(在下文中也被称为“可靠性度量”)。可靠性度量的值与符号的可靠性有关。在这样的实施例中,每个消息Ui和Vi是包括q对值的向量,其中一对包括符号的值及其可靠性度量。消息的每个分量相应地对应于GF(q)中的符号的值及其可靠性度量的一个对。
根据使用EMS算法的一些实施例,可以对递送到校验节点处理单元215的消息进行排序和截断,以用于仅保留N个最可靠的分量,其中N严格低于q(N<<q)。排序可以以与符号相关联的可靠性度量的给定顺序(递增或递减)执行。此外,排序和截断操作可以由接收消息作为输入的可变节点处理单元217或校验节点处理单元215执行。
在一些实施例中,对于可变节点处理单元和校验节点处理单元,已处理消息N的截断后的分量的数量可能相似。替代地,不同的可变节点处理单元和校验节点处理单元可以保留与最可靠的符号相关联的不同数量的分量。
在一些实施例中,符号的可靠性度量可以对应于表示符号正确的概率的符号的概率密度函数。特别地,可以通过对数似然比(LLR)值在对数域中表示可靠性度量。
解码过程的计算复杂度被由校验节点处理单元215执行的计算支配。在使用EMS来解码非二进制LDPC码的一个实施例中,可以在不损害解码错误性能的情况下降低由校验节点处理单元215执行的处理的计算复杂度。
参考图3,示出了根据本发明的一些实施例的校验节点处理单元215的框图。校验节点处理单元215与度为dj的校验节点j相关联。这意味着校验节点连接到dj个可变节点。由此,校验节点处理单元215可以被配置为与dj个可变节点处理单元217(其与dj个连接的可变节点相关联)中的一个或多个可变节点处理单元217交换消息。因此,在给定的迭代中,校验节点处理单元215可以被配置为接收dj个输入消息并生成一个或多个输出消息。输入或输出消息是包括q对符号和与q对符号相关联的可靠性度量的向量。输入消息可以先前已经被排序和/或截断过。
为了清楚地呈现以下实施例,用
Figure BDA0001280821880000151
来表示由与度为dj的校验节点j相关联的校验节点处理单元接收的输入消息。输出消息由Vi表示,其中i=1,…,dj。应该注意的是,这个记号在底层校验节点j的级别上使用。
将参考使用基于对由校验节点处理单元215接收的输入消息进行的排序和截断的软输出解码的一些实施例来进行以下描述。在这样的实施例中,输入消息被表示为
Figure BDA0001280821880000152
消息
Figure BDA0001280821880000153
表示N个对构成的向量,其形式为
Figure BDA0001280821880000154
以使得携带最可靠符号的对对应于分量
Figure BDA0001280821880000155
校验节点处理单元215可以包括数据结构31,数据结构31记作Aj并且被配置为存储输入消息。示例性的数据结构包括矩阵、数组以及列表。每个输入消息的每个分量(即符号的值及其可靠性度量的每一个对)可以与确定其在数据结构中的位置的一个或多个整数索引相关联。例如,数据结构31可以是存储dj个输入消息
Figure BDA0001280821880000156
的矩阵,以使得根据下式该矩阵的列对应于表示输入消息的向量的转置:
Figure BDA0001280821880000157
在这个示例中,其中i=1,…,dj且p=0,…,N-1的每个分量
Figure BDA0001280821880000158
与行索引和列索引相关联。矩阵Aj的维度为N x dj。另外,在涉及以可靠性度量的递减顺序排序的消息的实施例中,分量
Figure BDA0001280821880000159
的行索引可以等于N-p,而其列索引可以等于i。
校验节点处理单元215还可以包括数据处理单元33,其被配置为将变换操作的一次或多次迭代应用于数据结构Aj的至少一部分。可以执行变换操作的每次迭代,以根据与一个或多个整数索引(在下文中被称为“变换索引”)的给定值相关联的消息的分量中的至少一些来布置存储在数据结构Aj中的输入消息的分量。变换操作提供了变换后的数据结构,其被记作Bj。变换后的数据结构Bj中的变换后的输入消息被记作U′i
另外,校验节点处理单元215可以包括:
-计算单元35,其被配置为根据在变换后的数据结构Bj中包括的表示符号及其可靠性度量的数据来计算一个或多个中间消息V′i(i从1变化到dj);以及
-切换单元37,其被配置为根据中间消息V′i来确定一个或多个输出消息Vi(i从1变化到dj)。
切换单元37可以被配置为将变换操作的反向操作应用于布置第一数据结构Aj的输入消息。实现这种切换操作以将每个输出消息路由到其要运往的可变节点处理单元。
在一些实施例中,变换参数可以包括最大迭代次数(记作
Figure BDA0001280821880000161
)和与每次迭代相关联的整数变换索引。可以从存储单元211加载变换参数。在这样的实施例中,数据处理单元33可以被配置为在变换操作的给定迭代时选择在第一数据结构Aj中结构化的输入消息的一些分量。可以基于变换操作的相应迭代的整数变换索引来确定所选择的分量的至少一个整数索引。数据处理单元33还可以被配置为通过以与所选择的分量相关联的可靠性度量的给定顺序布置数据结构Aj的分量来确定变换后的数据结构Bj
在一些实施例中,例如当输入消息被排序时,可以执行数据处理单元35以根据所选择的分量的可靠性度量的递增顺序来布置数据结构的分量。
在未对输入消息进行排序的其它实施例中,数据处理单元35可以被配置为执行变换操作的多次迭代,以使得根据与分量相关联的可靠性度量的给定顺序对每个输入消息的分量进行排序。
例如,在数据结构Aj是根据等式(1)的矩阵的实施例中,变换操作可以对应于置换该矩阵的一些列。在这样的实施例中,整数变换索引可以表示行索引。因此,数据处理单元33可以选择分量
Figure BDA0001280821880000162
以使得其行索引等于整数变换索引。因此,可以执行置换,以使得所选择的分量
Figure BDA0001280821880000163
中的至少一些以其相关联的可靠性度量的递增顺序被布置。
对于所有校验节点处理单元215的计算单元35,最大迭代次数可以相同,或者可以在计算单元之间彼此不同。此外,可以基于至少一个约束参数来预定义或确定最大迭代次数。在这种情况下,校验节点处理单元215可以被配置为确定由信噪比、每个输入消息中的分量的数量N、在其上构造所使用的纠错码C(n,k)的域、以及解码迭代次数组成的组中的约束参数。
计算单元35可以实现用于根据变换后的数据结构Bj中的结构化数据来计算中间消息的串行、并行或混合架构。示例性的并行架构包括基于校正子解码的架构。示例性的串行架构包括前向-后向架构。
参考图4,示出了实现基于校正子解码的并行架构的计算单元35的结构。在这些实施例中,计算单元35可以包括:
-校正子计算单元41,其被配置为确定多个校正子。如本文所使用的,校正子表示包括dj对符号的值和符号的可靠性度量的向量。校正子计算单元41可以被配置为根据表示在变换的数据结构Bj中结构化的输入消息U′i的数据来确定校正子。
-去相关单元43,其被配置为根据计算后的校正子来确定多个去相关的校正子。去相关单元43可以包括dj个基本去相关单元DUi 43,i=1,…,dj。每个基本去相关单元DUi 43可以被配置为通过从计算后的校正子向量中减去输入消息
Figure BDA0001280821880000171
的贡献来确定去相关的校正子向量。
-处理单元45,其被配置为根据计算后的去相关的校正子向量来确定中间消息V′i,i=1,…,dj。在本发明的一些实施例中,处理单元45还可以被配置为执行中间消息的排序和截断,以使得仅保留最可靠的分量并且去除冗余分量。
输入消息的变换与校正子解码架构相结合仍然改进了复杂度。特别地,表示数据结构Bj中的符号的数据的布置使得能够显著减少计算后的校正子的数量。
图5示出了实现基于前向-后向架构的串行架构的计算单元35的结构。
在这样的实施例中,计算单元35可以包括多个基本校验节点处理单元。更具体地,对于dj个输入消息,计算单元35可以包括(3dj-6)个基本校验节点处理单元。这些处理单元可以被划分为与下文中被称为“前向层”、“后向层”以及“合并层”的三个处理层相关联的3个类别。前向层可以包括dj-2个基本校验节点处理单元ECN-FL 51。后向层可以包括dj-2个基本校验节点处理单元ECN-BL 53。合并层可以包括dj-2个基本校验节点处理单元ECN-ML55。
每个处理层的每个基本校验节点处理单元ENC-FL 51、ECN-BL 53以及ECN-ML 55可以被配置为接收两个或更多个输入消息,并通过对所接收的输入消息执行操作来确定基本消息。一般来说,由基本校验节点接收的输入消息可以源自变换后的数据结构Bj中的变换消息,或者源自由属于相同或不同处理层的另一个基本校验节点计算的基本消息。
更具体地,一个或多个ECN-FL 51可以被配置为接收来自在变换后的数据结构Bj中包括的变换消息Ui′的输入消息。剩余的ECN-FL 51可以被配置为接收在变换后的数据结构Bj中包括的至少一个输入消息和由位于相同前向层的另一个ECN-FL 51计算的至少一个基本消息。
类似地,一个或多个ECN-BL 53可以被配置为接收来自在变换后数据结构Bj中包括的变换消息Ui′的输入消息。剩余的ECN-BL 53可以被配置为接收在变换后的数据结构Bj中包括的至少一个输入消息和由位于相同后向层的另一个ECN-FB 53计算的至少一个基本消息。
ECN-ML 55可以被配置为接收来自由ECN-FL 51计算的至少一个基本消息或由ECN-BL 53计算的至少一个基本消息的输入消息。
输入消息的变换表示了与前向-后向架构相结合的若干优点。可以简化由基本校验节点处理单元执行的操作。在基本校验节点处理单元执行不同操作的意义上来说,其可以相应地具有不同架构,由此使得在一些配置中能够并行实现前向-后向架构。作为结果,可以设计具有降低的复杂度的高速实现,同时提供最佳的错误解码性能。
图6是示出根据基于使用EMS算法和泛洪实现的迭代解码的各种实施例的非二进制LDPC码的解码方法的流程图,其中在第一回合中所有可变节点处理单元处理其消息,然后在第二回合中所有校验节点处理单元处理其输出消息。
仅出于说明的目的,将参考软输出解码和由对数似然比(LLR)值在对数域中表示的可靠性度量来进行一些实施例的以下描述。然而,本领域的技术人员将容易理解,可以使用其它类型的解码和可靠性度量来测量符号的可靠性。例如,可靠性度量可以是二次距离或符号的概率密度函数的任何单调函数。
解码方法包括通过应用最佳MAP解码从由向量y表示的接收到的有噪声的序列确定原始码字c的估计
Figure BDA0001280821880000191
的步骤。使用由在伽罗华域GF(q)(q>2的)上构造的C(n,k)指定的非二进制LDPC码在发射机处对码字c进行编码。
Figure BDA0001280821880000192
表示不同码字所属的码本或字母表。所接收的序列可以写为根据下式的已发送的码字的函数:
y=c+w(2)
在等式(2)中,w指定长度为n的向量,其对改变通信信道的噪声建模。
用于正确码字的MAP解码规则等效于使码字错误的概率最小化,或等效于使后验概率p(c|y)最大化。使用贝叶斯法则,MAP解码准则由下式给出:
Figure BDA0001280821880000193
假设码字均匀分布在码本
Figure BDA0001280821880000194
中,因此假设p(c)和p(y)独立于c。作为结果,等式(3)中的MAP解码法则可以由下式给出的最大似然(ML)法则代替:
Figure BDA0001280821880000195
码字可以以行的形式表示为c=(c1,…,cn),其中ci,i=1,…,n表示了表示符号的离散样本。符号在集合GF(q)={0,1,…,q-1}={α01,…,αq-1},α0=0中取值。接收到的序列可以类似地表示为y=(y1,…,yn)。接收到的序列的每个分量yi(i=1,…,n)可以相应地写为:
yi=ci+wi (5)
假设通信信道是无记忆,其中输出序列的概率分布仅取决于当前信道输入。因此,等式(4)可以重写为:
Figure BDA0001280821880000201
式(6)的对数域解码法则可以根据下式表示为:
Figure BDA0001280821880000202
在特定实施例中,噪声可以由每个样本均值为零且方差为σ2的加性白高斯噪声(AWGN)(即
Figure BDA0001280821880000203
i=1,…,n)来建模。因此,可以通过如下所述的转移概率密度函数(pdf)p(yi|ci)来表征通信信道:
Figure BDA0001280821880000204
在等式(8)中,αt∈{α0,…,αq-1}指定可由符号ci取的值。p(yi|ci=αt)表示知道第i个符号等于αt的第i个信道输出的条件概率密度函数。
给定信道输出,可以执行步骤601以根据信道输出确定初始可靠性度量的值。初始可靠性度量在下文中也被称为“先验信息”。
使用对数域MAP解码,可以基于接收到的序列以每个符号的对数似然比的形式导出可靠性度量。LLR是测量符号可靠性的度量。LLR度量的一个定义涉及固定的参考符号。符号ci的参考符号(记作βi)可以对应于满足下式的最可靠符号:
βi=argmaxt=0,…,q-1p(αt|yi) (9)
使用LLR度量的这种定义,最可靠的符号是具有最小LLR值的符号。因此,对于第i个符号ci,该符号的等于αt的LLR值被记作LLRt(ci),并且可以表示为:
Figure BDA0001280821880000205
在等式(10)中,负号可用于使得能够处理正的LLR值。可以使用接收到的序列的概率密度函数来导出初始LLR值。LLRt(ci)可以首先等效地表示为:
Figure BDA0001280821880000206
对于均匀分布的符号,可以去除等式(11)中的第二项。作为结果,可以使用等式(8)中的概率密度函数来解决导出不同符号的初始LLR值LLRt(ci)的问题。为了避免混淆,第i个符号ci的先验信息被记为λt(ci),其中t=0,…,q-1,
使用对数似然比值,等式(7)中的MAP估计可以表示为:
Figure BDA0001280821880000211
在等式(12)中,K是与c无关的项,其由下式定义:
Figure BDA0001280821880000212
因此,等式(12)中的MAP优化法则可以简化为:
Figure BDA0001280821880000213
根据等式(14),对数域中的MAP解码法则与找到使LLR的和最小化的码字相似。
计算后的初始可靠性度量将在迭代解码过程中用作要由可变节点处理单元递送的初始消息。在多次迭代期间交换携带这种可靠性度量的消息使得能够处理已解码的消息z=(z1,z2,…,zn)以用于生成估计
Figure BDA0001280821880000214
以使其更接近MAP估计
Figure BDA0001280821880000215
为了使z成为码字,它应该满足所有奇偶校验方程,即z.Gt=0。已解码的消息z可以被初始化为z=(β12,…,βn)。
由于给定符号的计算后可靠性度量与可变节点处理单元和校验节点处理不同,所以将考虑以下记号以有助于理解以下实施例:
-由可变节点处理单元i针对校验节点处理单元j计算的LLR值将被记作LLRV(ij)(.)。
-由校验节点处理单元j针对可变节点处理单元i计算的LLR值将被记作LLRC(ji)(.)。
此外,由于考虑了非二进制码,应当注意,在伽罗华域GF(q)上执行对GF元素的求和和乘法运算。
在步骤603中,可以从存储器中取回解码过程的最大迭代次数Nems,max。该最大迭代次数可能会对解码性能和复杂度产生影响。如果可用的计算和存储器资源有限,则可能需要少量迭代。例如,在存在高噪声电平(即低信噪比)的情况下,需要实现更好的解码性能的大量迭代。因此,在一些实施例中,最大迭代次数可以被调节为噪声电平的函数。
在步骤605中,可以根据在步骤601中计算出的先验信息来初始化要由可变节点处理单元(i=1,…,n)递送到其连接的相邻校验节点(j=1,…,n-k)的消息Ui。使用在校验节点j和可变节点i的级别的本地记号,消息Ui是包括以LLR值
Figure BDA0001280821880000221
的形式的q对符号t和该符号的可靠性度量的向量。
根据一些实施例,在可变节点处理单元和校验节点处理单元之间的消息更新期间由各种消息携带的符号可以乘以缩放因子。缩放因子可以取决于奇偶校验矩阵中包括的值。仅出于说明的目的,将参考单一比例缩放因子进行下面的描述。然而,本领域的技术人员将容易理解,各种实施例适用于缩放因子的任何值。
在步骤607中,执行迭代解码过程的迭代的次数Niter可以初始化为零,Niter=0。
在步骤609中,可以检查奇偶校验方程,以验证所有奇偶校验约束是否由已处理的向量z满足。
如果确定z通过z.Gt=0满足奇偶校验方程,则可以执行步骤611以停止解码过程并递送已解码的码字
Figure BDA0001280821880000222
如果在步骤609中确定奇偶检验约束未被满足,则可以执行步骤613以检查是否达到最大迭代次数Nems,max,即是否Niter=Nems,max。如果确定执行迭代的次数达到最大次数,则可以执行步骤615以停止解码并宣告解码失败。如果确定尚未达到最大迭代次数,则可以执行步骤617至625,以运行可变节点处理单元和校验节点处理单元之间的消息交换的一次迭代。
在步骤617中,可以计算每个可变节点处理单元的输出消息Ui
在消息交换的第一次迭代期间,输出消息可以对应于在步骤605中确定的消息。在任何后来的迭代期间,给定可变节点处理单元i的输出消息也可以使用来自其连接的集合
Figure BDA0001280821880000223
中的校验节点处理单元的接收到的消息来计算。对于与度为di的可变节点相关联的可变节点处理单元i,存在来自所连接的相邻校验节点j=1,…,dj的dj个接收到的消息Vi。从可变节点观点,符号t的可靠性度量可以相应地由下式给出:
Figure BDA0001280821880000231
在步骤619中,可以根据符号的可靠性度量的顺序对由可变节点处理单元计算的输出消息进行排序。
在一个实施例中,消息可以以可靠性度量的递减顺序进行排序。
在步骤621中,可以将已排序的输出消息截断以仅保留表示具有最小可靠性度量的最可靠符号的数据。由可变节点处理单元计算的每个输出消息中的q个排序的分量(对)可以相应地减少到N对,N低于q(N<<q)。已排序的消息被表示为
Figure BDA0001280821880000232
包括N对的已排序的消息的形式为
Figure BDA0001280821880000233
以使得携带最可靠符号的对对应于分量
Figure BDA0001280821880000234
排序和/或截断操作可以由接收消息作为输入的可变节点处理单元或校验节点处理单元执行。
在步骤623中,可以根据由连接的可变节点处理单元发送的接收到的输入消息来计算出校验节点处理单元的输出消息。对于与度为dj的校验节点j相关联的校验节点处理单元,可以使用从与集合
Figure BDA0001280821880000235
中的可变节点i′相关联的可变节点处理单元接收的dj个已排序的输入消息
Figure BDA0001280821880000236
来计算消息Vi
在步骤625中,可以由校验节点处理单元基于表示已计算的消息Vi包括的符号的数据来更新处理后的向量z。第i个符号zi可以对应于由下式给出的优化问题:
Figure BDA0001280821880000237
其中:
Figure BDA0001280821880000238
然后可以在步骤627中递增执行消息交换的迭代的次数。
图7是描述根据一些实施例的在与度为dj的校验节点j相关联的校验节点处理单元的级别计算输出消息的方法的流程图。校验节点处理单元可以接收两个或更多个输入消息
Figure BDA0001280821880000241
Figure BDA0001280821880000242
并且可以生成一个或多个输出消息Vi。由于输入消息已经被排序并截断,输入消息可以被排序为
Figure BDA0001280821880000243
分量
Figure BDA0001280821880000244
(p=1,…,N)携带表示为
Figure BDA0001280821880000245
的伽罗华域符号,并且其可靠性度量表示为
Figure BDA0001280821880000246
携带最可靠符号的对是分量
Figure BDA0001280821880000247
可以执行步骤701以结构化第一数据结构数据Aj中的接收到的输入消息。示例性的数据结构包括矩阵、数组和列表。每个输入消息的每个分量(即每对符号的值和该符号的可靠性度量)与确定其在数据结构中的位置的一个或多个整数索引相关联。
在一些实施例中,dj个输入消息
Figure BDA0001280821880000248
可以在矩阵Aj结构化,以使得根据下式该矩阵的列对应于表示输入消息的向量的转置:
Figure BDA0001280821880000249
在这个示例中,每个分量
Figure BDA00012808218800002410
(i=1,…,dj且p=0,…,N-1)与行索引和列索引相关联。在这种情况下,矩阵Aj的维度为N x dj。另外,在涉及以可靠性度量的递减顺序排序的消息的实施例中,分量
Figure BDA00012808218800002411
的行索引可以等于N-p,而其列索引可以等于i。
由计算单元(35)计算的输出消息可以使用表示在变换后的数据结构中包括的符号的数据来确定,该变换后的数据结构通过将变换T(j)的一次或多次迭代应用于数据结构Aj而导出。变换T(j)由变换标准和两个或更多个变换参数定义。
可以执行步骤703以取回两个或更多个变换参数,该变换参数包括最大变换次数(记为
Figure BDA00012808218800002412
)和与变换T(j)的每次迭代相关联的整数变换索引
Figure BDA00012808218800002413
整数变换索引可以是在值[1,N-1]的间隔中包括的任何整数。
可以从存储设备或存储器装置中取回变换参数。仅出于说明的目的,将参考由包括最大变换次数和每次迭代的整数索引的参数对
Figure BDA0001280821880000251
Figure BDA0001280821880000252
定义的变换T(j)来进行下面的描述。
在一个实施例中,对于两个或更多个校验节点处理单元,变换参数可以是相同的。
在另一个实施例中,校验节点处理单元可以使用一个或多个不同的变换参数。
此外,根据一个实施例,每个计算单元的最大迭代次数可以是预定义的(确定性的),例如,等于一(1)或二(2)。替代地,可以基于在由信噪比、到相应的校验节点处理单元的每个输入消息中的分量的数量、在其上构造使用的纠错码的域的阶、以及解码迭代次数组成的组中选择的至少一个约束参数来确定最大迭代次数。
可以执行步骤705以将执行变换T(j)迭代的次数初始化为零,Nt=0。
可以重复步骤707至713,直到执行迭代的次数Nt达到最大迭代次数
Figure BDA0001280821880000253
为止。
在变换操作的每次迭代处,可以在步骤707中确定变换后的数据结构Bj。可以关于相应的整数变换索引执行变换操作的迭代。因此,输入消息的一些分量在数据结构Aj中结构化,以使得可以基于相应迭代的整数变换索引来确定所选择的分量的至少一个整数索引。变换后的数据结构Bj可以通过根据与可靠性度量有关的布置标准来排列第一数据结构Aj的至少一些分量来确定,该可靠性度量与所选择的分量的至少一部分相关联。
在输入消息被排序的一些实施例中,布置标准可以是以与所选择的分量的至少一部分相关联的可靠性度量的递增顺序的数据结构Aj中的这些所选择的分量的排序。
在数据结构Aj是由等式(18)给出的矩阵的另一个实施例中,变换操作可以对应于该矩阵的一些列的置换。在这样的实施例中,与给定迭代lv相关联的整数变换索引可以表示行索引。因此,可以首先选择在Aj中结构化并且具有等于整数变换索引lv的行索引的输入消息的分量中的至少一些,如等式(19)的虚线矩形所示:
Figure BDA0001280821880000261
然后可以通过布置矩阵Aj的分量中的至少一些来确定变换后的数据结构Aj。可以通过根据与分量
Figure BDA0001280821880000262
(i从1变化到dj)中的至少一些相关联的可靠性度量的递增顺序应用该矩阵的至少一些列的置换来执行该布置。变换后的矩阵Bj可以相应地写为:
Figure BDA0001280821880000263
在等式(20)中,分量
Figure BDA0001280821880000264
表示由分量
Figure BDA0001280821880000265
的布置产生的中间分量。它们满足下式给出的布置标准:
Figure BDA0001280821880000266
Figure BDA0001280821880000267
1≤i<i′≤dj
在特定实施例中,可以有利地将与给定变换迭代相关联的整数变换索引lv设定为等于N-1。在这样的实施例中,可以执行矩阵Aj的分量的布置,以使得条目U1′[N-lv],
Figure BDA0001280821880000268
中的至少一些以其相关联的可靠性度量的递增顺序排序。
此外,符号zi等于由分量
Figure BDA0001280821880000269
(i=1,…,dj)承载的
Figure BDA00012808218800002610
的概率可以近似为:
Figure BDA00012808218800002611
使用等式(21)的近似,使用等于N-1的整数变换索引的值来布置输入消息有利地实现降低在校验节点处理处处理输入消息的复杂度。
可以执行步骤709以递增执行变换T(j)迭代的次数。可以执行步骤711以通过其变换后的版本Bj来代替第一数据结构Aj
可以执行步骤713以检查是否达到变换T(j)的最大迭代次数。
如果确定执行迭代的次数达到了变换操作的最大迭代次数,则可以执行步骤715,以使用表示符号及其包括在变换数据结构Bj中的可靠性度量的数据来确定中间消息Vi′。
在步骤805中,与每个连接的可变节点相关联的计算出的对可以以符号
Figure BDA0001280821880000271
的可靠性度量的递减顺序排序。可以通过在对应的有序符号
Figure BDA0001280821880000272
(t=1,…,N)的集合中选择N个最可靠的符号及其可靠性度量来相应地确定每个中间消息Vi′。由此,中间消息Vi′包括这样的符号:从校验节点的观点,符号
Figure BDA0001280821880000273
(对于p,t=1,…,N)及其可靠性度量
Figure BDA0001280821880000274
Figure BDA0001280821880000275
可以执行步骤717,以根据中间消息Vi′确定一个或多个输出消息Vi(i从1变化到dj),以使得将每个输出消息路由到其要运往的可变节点处理单元。
即使本发明不限于这些应用,本发明在基于校正子的架构中具有以降低的复杂度计算中间消息的特别优点。
图8是描述根据使用校正子解码的本发明的一些实施例的使用表示数据结构Bj中符号及其的可靠性的数据来计算中间消息(步骤715)的方法的流程图。
在步骤801中,可以针对与度为dj的校验节点j相关联的校验节点处理单元确定偏差路径集合。偏差路径
Figure BDA0001280821880000276
表示从变换后的数据结构Bj中提取出的一组分量
Figure BDA0001280821880000277
以使得
Figure BDA0001280821880000278
从0变化到N-1。偏差路径可以分组到记作
Figure BDA0001280821880000279
的配置集中,其中D指定配置集的势。第a个偏差路径的分量
Figure BDA0001280821880000281
是包括符号
Figure BDA0001280821880000282
及其可靠性度量
Figure BDA0001280821880000283
的对。
在步骤803中,可以使用配置集Conf(j)来计算校正子
Figure BDA0001280821880000284
的集合S(j)。可以针对每个偏差路径
Figure BDA0001280821880000285
确定校正子
Figure BDA0001280821880000286
每个校正子
Figure BDA0001280821880000287
可以包括记作
Figure BDA0001280821880000288
的伽罗华域元素的值以及记作
Figure BDA0001280821880000289
的其可靠性度量,其中t=0,…,q-1。可以使用在步骤801中确定的配置Conf(j)中的偏差路径来计算可靠性度量,以使得:
Figure BDA00012808218800002810
相应的伽罗华域元素
Figure BDA00012808218800002811
可以根据下式来确定:
Figure BDA00012808218800002812
应当注意,在伽罗华域中执行对诸如等式(23)中的伽罗华域元素的操作。
在步骤805中,可以以符号
Figure BDA00012808218800002813
的可靠性度量的递减顺序对所计算后的校正子集合进行排序。
在步骤807中,可以使用排序的校正子来确定与每个中间向量Vi′相关联的一组去相关校正子。特别地,对于每个分量Vi′[t],可以根据下式计算去相关校正子
Figure BDA00012808218800002814
Figure BDA00012808218800002815
可以通过在对应的去相关校正子的集合中选择N个最可靠的符号及其可靠性度量来在步骤807中相应地确定每个中间消息Vi′。由此,中间消息Vi′包括符号
Figure BDA00012808218800002816
(p=0,…,N-1)及其可靠性度量,从校验节点观点,由下式给出:
Figure BDA00012808218800002817
配置集合的势D可能会影响解码复杂度和/或性能。对于EMS算法,配置集可以包括可以从变换后的数据结构Bj提取的所有可能的偏差路径。在这种情况下势记作Dmax
在一些实施例中,可以执行配置集的生成,以使得对于给定数量的偏差路径,配置集合包括具有有助于输出消息的最高概率的第一给定数量的偏差路径。可以通过蒙特-卡罗仿真针对给定纠错码、给定信噪比、以及迭代解码过程的给定迭代次数来执行这种配置集生成。
图9是示出根据一些实施例的在校验节点处理单元处生成偏差路径集合(步骤801)的方法的流程图。基于对在若干迭代中的有噪声码字进行解码期间有助于计算输出消息的偏差路径的次数的计数,相应地生成偏差路径集合。可以将对应于不同偏差路径的计数器的值保存在与函数F相关联的数组(记作K)中,函数F针对每个偏差路径
Figure BDA0001280821880000291
通过下式定义:
Figure BDA0001280821880000292
数组K可以相应地包括
Figure BDA0001280821880000293
个计数值,每个值与偏差路径相关联。根据本实施例生成的偏差路径集合对应于与数组K中的最高计数值相关联的偏差路径。
可以执行步骤901以确定包括偏差路径的所有可能值的初始配置集合。
可以执行步骤903以针对初始配置集中包括的每个偏差路径
Figure BDA0001280821880000294
来初始化其数组K中的计数器值,以使得:
Figure BDA0001280821880000295
可以执行步骤905以产生有噪声的码字。
可以执行步骤907以应用生成的有噪声的码字的多次解码迭代。
可以执行步骤909,以针对相应的校验节点处理单元来确定有助于计算由校验节点处理单元递送的输出消息的偏差路径。
可以执行步骤911,以针对步骤909中的每个确定的偏差路径来更新数组K()中的相应计数器数,以使得:
Figure BDA0001280821880000296
可以执行步骤913以生成与数组K的最高值相关联的偏差路径集合。
根据本发明的一些实施例的输入消息的布置允许减少用于计算中间消息的校正子的数量,由此降低了在校验节点处理单元处计算输出消息的复杂度。
在一些实施例中,使用涉及基本校验节点处理单元的前向-后向架构,根据本发明的各种实施例的输入消息的布置允许显著降低每个基本校验节点处理单元的计算复杂度。特别地,可以将由基本校验节点处理单元执行的操作简化为简单的伽罗华域加法器。此外,基本校验节点处理单元一般是相同的,即实现相同的操作。然而,使用输入消息的布置使得能够在每个基本校验节点处适应所执行的操作,由此减少在给定校验节点处理单元处所涉及的总计算复杂度。
图10示出了根据一些实施例的在使用EMS算法在AWGN信道下在GF(64)上解码(576480)非二进制LDPC码的帧错误率方面评估的错误概率性能。使用针对在图例中被称为“z”的偏差路径数量的不同值的校正子解码架构针对EMS算法的四个实施方式来评估FER。未排序和已排序分别指示具有变换操作的迭代的实施例和不应用变换操作的实施例。如数值结果所示,根据这样的实施例的EMS解码提供了作为传统EMS算法的最佳解码性能,其显著减少用于计算输出消息的偏差路径的数量。作为结果,可以大大降低解码复杂度,而不牺牲错误性能。
图11示出了对在图10所示的数值结果中所考虑的相同代码进行解码的帧错误率方面评估的错误概率性能。使用针对用于输出消息计算的处理后的冒泡的不同值的前向-后向架构,针对EMS算法的实施方式来评估帧错误率。未排序和已排序的分别指示具有变换操作的迭代的实施例和不应用变换操作的实施例。数值结果示出,所提出的方法在延迟和硬件占用空间方面呈现了解码复杂度的显著降低。
已经针对以下特定实施方式执行了根据各种实施例的EMS算法的描述:其中所有可变节点处理单元在第一回合中操作,并且然后所有校验节点处理单元更新要发送到可变节点的消息。这种特定调度被称为泛洪调度。特别地,所有校验节点的处理可以串行地操作,或者以从2到全部的不同的并行度进行操作。应当注意,本发明应用于包括以下调度的其它调度:被称为水平调度和垂直调度。在被称为水平调度的第一个示例中,校验节点可以串行地操作,以更新连接到校验节点的所有可变节点。还应当注意的是,如果不存在冲突的可变节点(两个校验节点连接到相同的可变节点),则一组校验节点可以并行地操作以更新连接的所有可变节点。在被称为垂直调度的第二个示例中,可变节点可以串行地操作,以更新连接到其的所有校验节点。
本文描述的方法和设备可以通过各种手段来实现。例如,这些技术可以以硬件、软件或其组合实现。对于硬件实现,迭代解码器123的处理元件例如可以根据仅硬件的配置(例如,以具有相应存储器的一个或多个FPGA、ASIC或VLSI集成电路中)或根据使用VLSI和DSP二者的配置来实现。
此外,虽然已经在通信系统的应用中描述了本发明的一些实施例,但是应当注意,本发明不限于通信设备,并且可以集成在诸如数据存储设备的许多设备中。
此外,本文描述的方法可以通过计算机程序指令来实现,计算机程序指令被提供给任何类型的计算机的处理器,以产生具有执行用于实现本文指定的功能/动作的指令的处理器的机器。这些计算机程序指令也可以存储在可以指示计算机以特定方式工作的计算机可读介质中。为此,可以将计算机程序指令加载到计算机上以使得执行一系列操作步骤,并且由此产生计算机实现的过程,以使得所执行的指令提供用于实现本文指定的功能的过程。
虽然已经通过各种示例的描述说明了本发明的实施例,并且虽然已经相当详细地描述了这些实施例,但是申请人的意图并非在于将所附权利要求的范围限制或以任何方式限于这些细节。本领域的技术人员将容易认识到附加的优点和修改。因此,本发明在其更广泛的方面中不限于所示出且所描述的具体细节、代表性方法以及说明性示例。

Claims (14)

1.一种在解码器中实现的校验节点处理单元,所述解码器被配置为对使用纠错码编码的信号进行解码,所述信号包括符号,所述校验节点处理单元被配置为接收至少两个输入消息并生成至少一个输出消息,每个消息包括多个分量,每个分量包括符号的值和与所述符号相关联的可靠性度量,其中所述校验节点处理单元包括:
-数据结构(31),其被配置为存储所述输入消息,所述输入消息的分量与所述数据结构中的整数索引相关联;
-数据处理单元(33),其被配置为将变换操作的一次或多次迭代应用于所述数据结构的至少一部分,变换操作是数据布置操作,所述变换操作的每次迭代被执行以根据与所述整数索引的给定值相关联的消息的分量中的至少一些来布置所述数据结构(31)中的所述输入消息的分量,这提供变换后的数据结构,变换后的数据结构是包括经过布置的分量的数据结构,其中,所述变换操作的迭代次数是基于在由信噪比、所述输入消息中的分量的数量、所述纠错码的构造域、以及解码迭代次数组成的组中选择的至少一个约束参数来确定的;
-计算单元(35),其被配置为根据所述变换后的数据结构中包括的分量来确定所述至少一个输出消息。
2.根据权利要求1所述的校验节点处理单元,其中,变换操作的每次迭代被执行,以根据与所述整数索引的所述给定值相关联的所述消息的分量的所述可靠性度量的给定顺序,来布置所述数据结构(31)中的所述输入消息的分量。
3.根据前述权利要求中的任一项所述的校验节点处理单元,其中,所述变换操作的迭代次数是预定义的。
4.根据权利要求1或2所述的校验节点处理单元,其中,所述计算单元(35)被配置为使用校正子解码架构来确定所述一个或多个输出消息。
5.根据权利要求1或2所述的校验节点处理单元,其中,所述计算单元(35)被配置为使用多个基本校验节点处理单元来确定所述一个或多个输出消息。
6.根据权利要求2所述的校验节点处理单元,其中,所述输入消息的所述分量以所述符号的可靠性度量的递减顺序被排序。
7.根据权利要求1或2所述的校验节点处理单元,其中,所述可靠性度量是由对数似然比表示的。
8.根据权利要求1或2所述的校验节点处理单元,其中,所述纠错码是非二进制LDPC码。
9.一种接收机,其被配置为接收并解码使用纠错码编码的信号,其中,所述接收机包括根据前述权利要求中的任一项所述的在解码器中实现的校验节点处理单元,所述解码器被配置为解码所述信号。
10.一种无线设备,其能够在无线通信系统中接收数据,其中,所述无线设备包括根据权利要求9所述的接收机,所述接收机被配置为接收并解码使用纠错码编码的信号。
11.一种光学设备,其能够在光通信系统中接收数据,其中,所述光学设备包括根据权利要求9所述的接收机,所述接收机被配置为接收并解码使用纠错码编码的信号。
12.一种存储设备,其能够在数据存储系统中接收数据,其中,所述存储设备包括根据权利要求9所述的接收机,所述接收机被配置为接收并解码使用纠错码编码的信号。
13.一种用于在解码器中实现的校验节点处理单元处计算至少一个输出消息的方法,所述解码器被配置为对使用纠错码编码的信号进行解码,所述信号包括符号,所述校验节点处理单元被配置为接收至少两个输入消息,每个消息包括多个分量,每个分量包括符号的值和与所述符号相关联的可靠性度量,每个输入消息的分量根据所述符号的所述可靠性度量的顺序被排序,其中,所述方法包括:
-将所述输入消息存储在数据结构中,所述输入消息的分量与所述数据结构中的整数索引相关联;
-将变换操作的一次或多次迭代应用于所述数据结构的至少一部分,变换操作是数据布置操作,所述变换操作的每次迭代被执行,以根据与所述整数索引的给定值相关联的消息的分量中的至少一些来布置所述数据结构中的所述输入消息的分量,这提供变换后的数据结构,变换后的数据结构是包括经过布置的分量的数据结构其中,所述变换操作的迭代次数是基于在由信噪比、所述输入消息中的分量的数量、所述纠错码的构造域、以及解码迭代次数组成的组中选择的至少一个约束参数来确定的;
-根据所述变换后的数据结构中包括的分量来确定所述至少一个输出消息。
14.一种用于在解码器中实现的校验节点处理单元处计算至少一个输出消息的计算机程序,所述解码器被配置为对使用纠错码编码的信号进行解码,所述信号包括符号,所述校验节点处理单元被配置为接收至少两个输入消息,每个消息包括多个分量,每个分量包括符号的值和与所述符号相关联的可靠性度量,每个输入消息的分量根据所述符号的可靠性度量的顺序被排序,所述计算机程序产品包括:
非暂时性计算机可读存储介质,以及存储在所述非暂时性计算机可读存储介质上的指令,当所述指令被处理器执行时,使得所述处理器:
-将所述输入消息存储在数据结构中,所述输入消息的分量与所述数据结构中的整数索引相关联;
-将变换操作的一次或多次迭代应用于所述数据结构的至少一部分,变换操作是数据布置操作,所述变换操作的每次迭代被执行,以根据与所述整数索引的给定值相关联的消息的分量中的至少一些来布置所述数据结构中的所述输入消息的分量,这提供变换后的数据结构,变换后的数据结构是包括经过布置的分量的数据结构其中,所述变换操作的迭代次数是基于在由信噪比、所述输入消息中的分量的数量、所述纠错码的构造域、以及解码迭代次数组成的组中选择的至少一个约束参数来确定的;
-根据所述变换后的数据结构中包括的分量来确定所述至少一个输出消息。
CN201710286512.2A 2016-05-02 2017-04-27 用于纠错码解码的方法和设备 Active CN107404321B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16305510.6 2016-05-02
EP16305510.6A EP3242405B1 (en) 2016-05-02 2016-05-02 Non-binary check node processing with pre-sorted input

Publications (2)

Publication Number Publication Date
CN107404321A CN107404321A (zh) 2017-11-28
CN107404321B true CN107404321B (zh) 2021-01-22

Family

ID=55969078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710286512.2A Active CN107404321B (zh) 2016-05-02 2017-04-27 用于纠错码解码的方法和设备

Country Status (4)

Country Link
US (1) US10637510B2 (zh)
EP (1) EP3242405B1 (zh)
KR (1) KR101895164B1 (zh)
CN (1) CN107404321B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3419181A1 (en) 2017-06-19 2018-12-26 Universite De Bretagne Sud Simplified check node processing in non-binary ldpc decoder
CN108933603B (zh) * 2018-02-28 2022-02-22 和芯星通科技(北京)有限公司 一种实现校验节点处理的方法及装置
EP3591844B1 (en) * 2018-07-05 2023-10-04 Universite De Bretagne Sud Variable node processing methods and devices for message-passing decoding of non-binary codes
EP3637622A1 (en) 2018-10-08 2020-04-15 Universite De Bretagne Sud Offset value determination in a check node processing unit for message-passing decoding of non-binary codes
US11695431B2 (en) * 2018-10-24 2023-07-04 Star Ally International Limited LPWAN communication protocol design with turbo codes
CN113273085A (zh) * 2019-01-14 2021-08-17 上海诺基亚贝尔股份有限公司 信道解码中的数据处理
JP2022124682A (ja) * 2021-02-16 2022-08-26 キオクシア株式会社 メモリシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
FR2904499B1 (fr) * 2006-07-27 2009-01-09 Commissariat Energie Atomique Procede de decodage a passage de messages avec ordonnancement selon une fiabilite de voisinage.
JP4412401B2 (ja) * 2007-12-18 2010-02-10 ソニー株式会社 復号装置、復号方法、受信装置、および記憶媒体再生装置
CN101471674A (zh) * 2007-12-28 2009-07-01 三星电子株式会社 低密度奇偶校验码译码方法及装置
US9996499B2 (en) * 2010-09-29 2018-06-12 Alcatel Lucent Scalable and programmable processor comprising multiple cooperating processor units
KR101718543B1 (ko) * 2010-11-17 2017-03-22 한국과학기술원 개선된 비트 반전 알고리즘 기반의 저밀도 패리티 검사 부호를 위한 복호 방법, 장치 및 이를 위한 기록 매체
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
KR102194136B1 (ko) * 2014-03-12 2020-12-22 삼성전자주식회사 비이진 ldpc 부호를 이용한 이동 통신 시스템에서 오류 정정 장치 및 방법
KR20150137430A (ko) * 2014-05-29 2015-12-09 삼성전자주식회사 통신 시스템에서 비-이진 ldpc 부호를 복호화하는 방법 및 장치

Also Published As

Publication number Publication date
CN107404321A (zh) 2017-11-28
KR101895164B1 (ko) 2018-10-04
EP3242405B1 (en) 2024-02-21
US20170317695A1 (en) 2017-11-02
US10637510B2 (en) 2020-04-28
KR20170124469A (ko) 2017-11-10
EP3242405A1 (en) 2017-11-08

Similar Documents

Publication Publication Date Title
CN107404321B (zh) 用于纠错码解码的方法和设备
CN107919874B (zh) 校验子计算基本校验节点处理单元、方法及其计算机程序
CN107979445B (zh) 使用预先排序的输入的基于基本校验节点的校正子解码
CN110999093B (zh) 用于非二进制ldpc码的扩展最小和(ems)解码的校验节点处理的混合架构
US11133827B2 (en) Simplified, presorted, syndrome-based, extended min-sum (EMS) decoding of non-binary LDPC codes
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
GR01 Patent grant
GR01 Patent grant