CN101689865A - 置乱式ldpc解码 - Google Patents

置乱式ldpc解码 Download PDF

Info

Publication number
CN101689865A
CN101689865A CN200880023322A CN200880023322A CN101689865A CN 101689865 A CN101689865 A CN 101689865A CN 200880023322 A CN200880023322 A CN 200880023322A CN 200880023322 A CN200880023322 A CN 200880023322A CN 101689865 A CN101689865 A CN 101689865A
Authority
CN
China
Prior art keywords
node
check
matrix
symbol
memory
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.)
Granted
Application number
CN200880023322A
Other languages
English (en)
Other versions
CN101689865B (zh
Inventor
约翰·迪利森
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101689865A publication Critical patent/CN101689865A/zh
Application granted granted Critical
Publication of CN101689865B publication Critical patent/CN101689865B/zh
Expired - Fee Related 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/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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • 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/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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
    • 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
    • H03M13/112Soft-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 with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • 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
    • H03M13/1122Soft-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 storing only the first and second minimum values per check node
    • 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/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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/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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • 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/6566Implementations concerning memory access contentions
    • 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/658Scaling by multiplication or division
    • 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/6583Normalization other than scaling, e.g. by subtraction
    • 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/6588Compression or short representation of variables
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种基于对数似然比置信传播算法的LDPC解码器,迭代地对由包含多个循环矩阵的奇偶校验矩阵H表示的LDPC码进行解码。第一计算装置(1010),用于根据存储于第一存储器(1005)中的相应符号值的表示以及前一迭代的校验节点消息Λmn来计算下一个迭代符号消息λnm。置乱装置(1030)根据相应子矩阵中非零元素的位置来改变从第一计算装置(1010)所接收到的符号消息的顺序。第二计算装置(DP-0,DP-1,DP-D-1)根据从桶形移位器接收到的符号消息来计算校验节点消息,并且将计算所得的校验节点消息的表示存储于第二存储器(1015)中。第三计算装置(1020)根据第一计算装置和第二计算装置的输出来更新第一存储器中的符号值的表示。采用“交叉式”或“置乱式”LDPC解码原理。一个实施例针对多对角线循环矩阵所设计。

Description

置乱式LDPC解码
技术领域
本发明涉及一种LDPC解码器和LDPC解码方法。
背景技术
在发送端与接收端之间的传输中,可能出现一些传输误差。可以使用纠错编码来检测并校正这些误差中的一些。低密度奇偶校验(LDPC)编码是一类纠错码:其为分组码(或等效为奇偶校验码),并由奇偶校验矩阵H定义。1963年R.G.Gallager(在1963年Gallager发表于MIT的论文“Low-Density Parity-Check Codes”中)针对加罗瓦域(Galois Field)GF(2)上的LDPC编码介绍了该类纠错码。1998年Mackay(在1998年由英国剑桥大学的卡文迪西实验室中的D.J.CMackay,M.C.Davey发表的“Low Density Check Code over GF(q)”中)针对较高基数(即GF(rq),其中r为质数)的加罗瓦域(GaloisField)就其原理进行了归纳。LDPC编码可用于各种传输系统(例如,卫星通信系统、无线传输系统、光纤系统)以及各种存储媒介(例如,硬盘驱动器、光盘、磁带)。使用LDPC的系统示例有:DVB-S2、DMB-T(中国DVB地面标准)、STiMi(中国DVB卫星标准)、IEEE802.11n以及802.16e。
LDPC码由大小为M行乘N列的奇偶校验矩阵H来定义,M为限制(对应于校验节点)的数量,N为变量(码符号的估计值,由符号节点表示)的数量。所述矩阵在位置(m,n)的非零项表示变量Vn参与限制Cm。大多数新的标准化系统使用再分为多个被称作循环矩阵的分组(矩阵)的奇偶校验矩阵。循环矩阵是零矩阵(所有元素均为0)或者基于单位矩阵。基于单位矩阵的循环矩阵可以是单对角线的(单位矩阵本身或者该单位矩阵的旋转形式)或者可以具有多条对角线。所谓的桶形移位器用于将通常以正常连续顺序存储于存储器中的变量旋转至由单位矩阵的旋转所限定的位置。在2006年由J.Dielissen等人在IEEE会议中发表的“Low cost LDPC decoder forDVB-S2”(下文中称作[Dielissen,DATE])中公开了最新的低成本的实现。但是,这种结构不能解决包含“多对角线”的LDPC编码的问题。显然,多对角线的处理更复杂。US 2005/0138519 A1示出了一种设计用于对多对角线的循环矩阵进行处理的结构。但是,该结构对不需要解决“多对角线”问题的廉价示例来说不具有可扩展性。
发明内容
有利地提供了一种可扩展的LDPC解码结构,优选地,其可以用于具有单对角线或多对角线的循环矩阵的一些标准化系统中。还可以有利地减小已知LDPC解码结构的成本。
为了更好地解决这一问题,在本发明的第一方面,LDPC解码器用于对加罗瓦域(Galois Field)上的LDPC码进行迭代解码,其中所述LDPC码由预定的M×N的奇偶校验矩阵H表示,矩阵H由多个子矩阵构成,其中每个子矩阵是零矩阵或者是每行和每列具有相同数量的非零元素的矩阵;所述LDPC解码器基于对数似然比置信传播算法(下文中称其为LLR-BP算法),其表示将符号消息λnm从相应符号节点n(0<=n<N)传递至所连接的校验节点m(0<=m<N)以及将校验节点消息Λmn从相应校验节点m传递至连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码器包括:
第一存储器(1005),用于针对每个符号节点存储LDPC码的相应符号的相应符号值的表示;
第二存储器(1015),用于存储各校验节点消息Λmn的表示;
第一计算装置(1010),用于根据存储于第一存储器的相应符号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息λnm
置乱装置(1030),用于从第一计算装置(1010)接收以第一顺序排列的符号消息,并且根据相应子矩阵中非零元素的位置来以不同顺序提供该符号消息;
第二计算装置(DP-0,DP-1,DP-D-1),用于根据LLR-BP算法来计算校验节点消息,并且用于将计算所得的校验节点消息的表示存储于第二存储器中;该计算依赖于相应校验节点从桶形移位器接收到的符号消息;以及
第三计算装置(1020),用于根据第一计算装置和第二计算装置的输出来更新第一存储器中的符号值的表示。
在根据本发明的结构中,在线性域(即,在置乱装置之前)中计算所述符号消息(通常被称为λnm消息),这与现有技术中的解决方案正好相反,在现有技术中,该计算是在置乱域(shuffled domain)中执行的。这使得无需较大部分地重新设计也可以制造适于单对角线或多对角线系统的编码器。此外,还使得能够降低成本。如从属权利要求6所述,子矩阵可以是循环矩阵,并且置乱装置被实现为桶形移位器。
在根据本发明的实施例中,至少一个子矩阵是每行和每列均具有至少两个非零元素的矩阵,下文称其为多元矩阵(multi-matrix);第一计算装置被布置为根据相关的校验节点消息来计算对应于多元矩阵的符号消息λi nm,其中每个相关的校验节点消息对应于该多元矩阵中的一个非零元素。
通过在线性域中操作,则简化了对这种具有多个非零元素(即,多对角线)的子矩阵的处理。如在从属权利要求3中所述,可以以简单的迭代结构来处理这种多元矩阵,其中将来自一个相关校验节点消息的每个时间信息与中间结果组合在一起。
在根据本发明的实施例中,LLR-BP算法基于最小和算法,并且LDPC编码器包括:校正装置,用于将符号消息的值乘以校正因子α;以及饱和装置,用于将符号消息值限制在预定范围;所述校正装置和饱和装置被布置在第一计算装置和桶形移位器之间。通过在桶形移位器之前执行校正和饱和处理,所述桶形移位器在进一步受限的范围内操作,并且因此可以更廉价地实施。
在根据本发明的实施例中,符号消息的表示以预定顺序存储于第一存储器中;LDPC解码器还包括布置在第二计算装置与第三计算装置之间的另一桶形移位器,用于以对应于所述预定顺序的顺序来提供校验节点消息。该结构还可包括位于反向路径(即,朝向第一存储器)中的另一桶形移位器。这简化了对位于前向路径中的桶形移位器的控制。
在根据本发明的实施例中,LLR-BP算法基于最小和算法;第二计算装置包括压缩装置,用于压缩校验节点消息并且以压缩的形式将该校验节点消息存储于第二存储器中;以及第一计算装置包括解压缩装置,用于对从第二存储器中读出的校验节点消息进行解压缩。通过以压缩的形式存储校验节点消息减少了成本。根据本发明的结构既可以利用压缩的校验节点消息操作,也可以使用解压缩的校验节点消息操作。
为了满足本发明的目的,提出了一种对加罗瓦域(Galois Field)上的LDPC码进行迭代解码的方法,其中所述LDPC码由预定的M×N的奇偶校验矩阵H表示,矩阵H由多个循环矩阵构成,其中每个循环矩阵是零矩阵或者是具有至少一条对角线的对角矩阵,并且至少一个循环矩阵是通过将单位矩阵旋转至少一个位置所形成的对角矩阵;所述LDPC解码方法基于对数似然比置信传播算法(下文中称其为LLR-BP算法),其表示将符号消息λnm从相应的符号节点n(0<=n<N)传递至所连接的校验节点m(0<=m<N)以及将校验节点消息Λmn从相应的校验节点m传递至所连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码方法包括:
针对每个符号节点将LDPC码的相应符号的相应符号值的表示存储于第一存储器中;
将各校验节点消息Λmn的表示存储于第二存储器中;
执行第一计算,包括根据存储于第一存储器的相应符号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息λnm
通过接收以第一顺序排列的由第一计算产生的符号消息,以及根据循环矩阵的旋转以不同顺序提供所述符号消息,来执行桶形移位操作;
执行第二计算,包括根据LLR-BP算法来计算校验节点消息,并且将计算所得的校验节点消息的表示存储于第二存储器中;该计算依赖于相应校验节点从桶形移位器接收到的符号消息;以及
根据第一计算和第二计算的输出来更新第一存储器中的符号值的表示。
本发明的这些和其他方面将从下文中描述的实施例变得明显,并且下文将参考实施例来对其进行说明。
附图说明
在附图中:
图1示出了其中可使用本发明的示例系统的框图;
图2示出了使解码处理可视化的Tanner图;
图3示出了分两组执行迭代的示例;
图4示出了循环奇偶校验矩阵;
图5a和图5b示出了桶形移位器的作用;
图6示出了已有技术中的数据路径;
图7示出了用于最小和算法的数据路径细节;
图8示出了传统的顶层结构;
图9示出了传统的使用压缩的Λ存储的数据路径;
图10示出了根据本发明的LDPC解码器结构的基本实现;
图11示出了在桶形移位器之前基于最小和算法执行校正和饱和处理;
图12示出了优选的数据路径;
图13示出了用于处理多对角线的结构;以及
图14示出了与压缩的Λ存储相结合的结构。
具体实施方式
除非特别说明,附图中所使用的相同的参考标号表示相同的功能。图1示出了其中可使用本发明的示例系统100的框图。该系统包括LDPC编码器110和LDPC解码器120。编码信号可以通过传输媒介130(诸如无线或有线网络)来传输。可以理解的是,也可以将编码信号存储于诸如硬盘或光存储之类的存储系统中。在这种情况下,对象130则表示存储系统。还可以进行许多在附图1中未示出的其他操作,诸如对信号进行加密/解密、调制/解调等。这些操作都是已知的并且不属于本发明的一部分。
LDPC编码/解码本身是已知的。本文关于已知方面仅给出简短的描述。在一个简单示例中,编码器110的任务是对一些二进制信息(通常被称为符号,其中该符号可以仅为1位,或者也可以使用多位来表示)进行编码。假设要求分别使用值“0”、“0”、“0”、“1”来传输四个信息位S1、S2、S3、S4。这些信息位被排列为矩阵的形式。为了能够检测并校正传输误差,计算第一附加的奇偶位。该奇偶位使得矩阵的行和/或列满足预定的奇偶方程。该奇偶方程通常为加罗瓦域GF(rq)(其中r为质数并且q为整数,例如GF(2)、GF(4)、GF(8)以及通用地为GF(2q))的方程。在本文的示例中,该方程使得每行和列中的所有位的和等于0模2(即,GF(2)中的方程)。通过对所有行和列添加奇偶位以及对奇偶位行和列添加奇偶位,在该示例中可以获得3×3的矩阵:
S 1 = 0 ′ ′ ′ ′ S 2 = 0 ′ ′ ′ ′ S 3 = 0 ′ ′ ′ ′ S 4 = 1 ′ ′ ′ ′ → S 1 = 0 ′ ′ ′ ′ S 2 = 0 ′ ′ ′ ′ P 1 = 0 ′ ′ ′ ′ S 3 = 0 ′ ′ ′ ′ S 4 = 1 ′ ′ ′ ′ P 2 = 1 ′ ′ ′ ′ P 3 = 0 ′ ′ ′ ′ P 4 = 1 ′ ′ ′ ′ P 5 = 1 ′ ′ ′ ′
位P1至P5为奇偶位。满足如下6个奇偶校验方程:
S1+S2+P1=0 mod 2
S3+S4+P2=0 mod 2
P3+P4+P5=0 mod 2
S1+S3+P3=0 mod 2
S2+S4+P4=0 mod 2
P1+P2+P5=0 mod 2
这些奇偶校验方程可以由所谓的奇偶校验矩阵H表示,其可以具有如下形式:
H = 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1
其中,符号序列被选择为:S1 S2 P1 S3 S4 P2 P3 P4 P5。也可以选择其他序列,以允许矩阵的重新排列。H中的列数对应于需要被传输(系统位和计算所得的奇偶校验位)的位(符号)数。H中的非零元素的位置包含以哪个方程验证哪些位的信息(例如,在第一行中校验S1+S2+P1=0 mod 2,在第二行中验证S3+S4+P2=0 mod 2等)。
低密度奇偶校验(LDPC)码可以由该稀疏奇偶校验矩阵H指定。“低密度”是指在H中所具有的1的个数远少于所具有的0的个数。该码的结构完全由奇偶校验矩阵H描述。实际上,H矩阵具有比该示例中所示更少的元素“1”。在说明书的其余部分中,N表示码字长度,M表示奇偶校验方程的数量。因此,奇偶校验矩阵H由具有元素“0”或“1”的M行和N列构成。矩阵中的行为奇偶校验方程,并且行中具有“1”的元素的集合为方程的自变量。对于具有索引m(0<=m<M)的奇偶校验方程,其校验的码字符号位置的集合N(m)定义如下:
N(m)={n|n=0,1,...,N-1;Hmn≠0}。
N(m)中的元素数量记为Km。类似地,对于码字符号位置n(0≤n<N),校验符号位置n的奇偶校验方程的索引集合M(n)定义如下:
M(n)={m|m=0,1,...,M-1;Hmn≠0}
M(n)中的元素数量记为Jn
通常通过Tanner图(二分图)来对LDPC算法进行可视化。即,将图的节点分为两个不同的集合,并且边缘仅连接两种不同类型的节点。如图2所示的示例说明了以上给出的H矩阵。这两组节点将被称为符号节点(左边的节点)和校验节点(右边的节点)。符号节点的数量对应于矩阵H的列数N,即所传输的符号和奇偶位的总数。校验节点的数量对应于矩阵H的行数M,其等于奇偶校验方程的数量。当且仅当Hmn=1时,第n个符号节点(1≤n<N)与第m个校验节点(1≤m<M)连接。如上所述示例,第一校验节点CN-1连接至第一、第二和第三符号节点,表示以第一奇偶校验方程来验证S1+S2+P1=0 mod 2。
对LDPC编码进行解码是基于在连接节点之间传递消息进行的,其中该消息表示发送节点置信为真的值(或者更一般地表示发送节点置信为真的概率)。对这样的解码算法的各种优化是已知的。通常,这样的算法被称为置信传播算法(BP)、消息传递算法(MAP)或者和积算法(SAP)。通常,在对数域执行该算法,来以求和运算代替乘法运算。LDPC解码器不对‘硬位’(例如,二进制符号值)进行操作,而对‘软位’进行操作,通常通过使用数据的若干位(例如,8位)来执行。由那些位表示的整数值是对已编码的符号位为0或1的可能性有多高的度量。例如,可以从范围[-127,127]中抽取该整数值,其中:-127表示“确定为0”,-100表示“非常可能为0”,0表示“为0或1的可能性相等”,100表示“非常可能为1”,127表示“确定为1”等。在足够次数的迭代(这取决于是否满足所有的奇偶校验或者是否达到了最大迭代次数)之后,可以基于所存储的符号值来提供硬判决(即,解码位)。使用软位来对LDPC解码器进行初始化,所述软位由从编码器接收这些位的传输或存储系统的解调制器提供。例如,对于每个位,传统的无线接收机的前端将提供对表示接收到的位/符号的内部模拟电压距离给定门限有多远的整数度量。在图2中将初始化符号节点n的软位值表示为Ln。代替直接对可能性进行运算,LDPC解码器通常对所接收到的信息的对数似然比进行运算,例如对传输‘0’的可能性除以传输‘1’的可能性的结果的对数(或者另一种方式:对传输‘1’的可能性除以传输‘0’的可能性的结果的对数)进行运算。通常,假设y已经存在,则x的条件对数似然比为:
LLR ( x ) = log p ( 0 | y ) p ( 1 | y )
该方程可以使用传输系统的知识来‘求解’。例如,在简单的传输系统中,将要传输的位被映射为功率相等的两个值(例如,被表示为+1和-1)中的一个(例如,将二进制位“0”映射为+1,并将二进制位“1”映射为-1)。可以将编码器和解码器之间的传输信道表示为高斯信道(加入了高斯噪声)。进一步假设传输“1”或“0”的可能性相等,则
LLR ( x ) = log p ( 0 | y ) p ( 1 | y ) = 2 r σ 2
其中,r为所接收到的位的值,并且σ2是噪声方差。
本发明所使用的LDPC解码是对数域中的“基于置信传播”(基于BP)的算法(基于LLR-BP的),其中LLR表示对数似然比。如2005年J.Chen等在IEEE Transactions on Communications的卷53的第1288-1299页发表的“Reduced complexity decoding of LDPC codes”中所述,该算法可以基于双曲正切(tanh)函数、加拉格(Gallager)方法、雅可比(Jacobian)变换、具有最小函数的近似BP、标准BP、偏移BP或其组合。下文中将这种算法称为基于LLR-BP的算法。这种算法的一种优选的形式是标准的最小和LDPC解码算法。该算法实现了与更一般的置信传播(BP)解码所能实现的性能级别非常接近的性能级别,或者有时甚至超出了更一般的置信传播(BP)解码所能实现的性能级别,同时提供了显著的硬件优势。下文给出的详细描述基于标准的最小和算法,应该理解的是其构思同样适用于置信传播算法的其他形式。
图的顶点(V)的集合为N个符号节点的集合与M个奇偶校验节点的集合的并集。Hmn=1时,边缘(E)的集合包含所有的边缘(m,n)。传统的LDPC算法的迭代包括从符号节点(N)经由边缘(E)发送至校验节点(M)的信息,以及从校验节点(M)经由边缘(E)发送至符号节点(N)的信息。所述符号节点将由索引n指示,而所述校验节点由索引m指示。
对于最小和算法的给定的迭代i,定义如下变量(该消息也如图2所示):
-Ln,输入至符号节点n的x位带符号的输入信息。例如,如果将BPSK调制用于传输编码字,则Ln如下:
L n = 2 y n σ 2 - - - ( 1 )
其中,yn为已接收的BPSK符号值,并且σ2为噪声方差。应该理解的是,可以使用任意适合的调制技术。
i mn,在第i次迭代中从符号节点n发送至校验节点m的消息。该消息也被称为“符号消息”。通常,该符号消息取决于符号节点n所接收的原始值(Ln)以及从连接的校验节点所接收到的更新消息。因此,在第一次迭代中,仅发送Ln作为符号消息。来自校验节点的更新信息被表示为Λi mn。在传统的LDPC解码中,λi nm可以被选择为:
λ mn i = L n + Σ m ′ ∈ M ( N ) \ m Λ m ′ n i - 1 - - - ( 2 )
应该注意:在该方程中,针对符号节点n连接的所有校验节点m′求和(M(n)),而不针对没有消息发送至的校验节点m。这避免了不稳定性。还应该注意,更新消息Λmn i-1来自前一次迭代i-1。如下所述,这不是严格的要求。
i mn,在第i次迭代中从校验节点m发送至符号节点n的消息。该消息还可以被称为‘校验节点消息’。该消息取决于校验节点m所接收到的符号消息。该消息可以被初始化为:
Λ mn 0 = 0
优选地,该消息的更新基于校验节点所接收到的所有符号消息,即来自连接至校验节点m的所有符号节点(N(m)),除正要将校验节点消息发送至的符号节点n之外。基于只根据当前迭代开始时的信息值的更新,并通过使用最小和算法得出:
Λ mn i = ( { sign n ′ ∈ N ( m ) \ n XOR ( λ n ′ m i ) } ) * α * { | sign ( λ n ′ m i ) | } - - - ( 3 ) n ′ ∈ N ( m ) \ n MIN
其中,XOR被定义为布尔异或函数的等效符号,即XOR(-,-)=+。应该注意,α为校正因子,其是标准的最小和算法已知的。
n,解码器的输出消息。不同的是,在λnm′s的情况中,解码器的输出消息λn通常使用符号节点n中所有可用的信息,并且仅在最后一次迭代I中需要。
λ n = L n + Σ m ∈ M ( n ) Λ i mn - - - ( 4 )
在上述给定公式中,迭代i中的解码静态地基于前一次迭代i-1的最后获得的信息。这种迭代形式可以被看作是雅可比(Jacobi)迭代。该算法可以被修改为包括高斯-塞德尔(Gauss-Seidel)迭代(一种被称为“交错解码”、“turbo解码LDPC”、“置乱式解码”以及“分级解码”的技术)。在该形式的LDPC解码中,解码不是静态地基于前一迭代最后所获得的信息,而是立即使用当前迭代i中所获得的信息。为此,使用LDPC的校验节点中心处理。使用了变量λn i,其由Ln和校验节点与符号节点之间的最新消息构成:
λ n i = L n + Σ m ′ ∈ U ( n , m ) Λ i m ′ n + Σ m ′ ∈ R ( n , m ) Λ m ′ n i - 1 - - - ( 5 )
在该方程中,集合 U ( n , m ) ⋐ M ( n ) 涉及在校验节点m进行处理之前在当前迭代i中已更新了的消息,并且R(n,m)=M(n)\U(n,m)为剩余的还未更新的消息的集合。对于雅可比(Jacobi)迭代,U(n,m)=Φ,并且对于高斯-塞德尔(Gauss-Seidel)U(n,m),则定义如下:
Φ ⋐ U ( n , m 1 ) ⋐ U ( n , m 2 ) ⋐ . . . ⋐ U ( n , m j ) - - - ( 6 )
该方程允许在几个校验节点中并行进行更新。在第一循环中更新了的校验节点被称为m1,在第二循环中更新了的节点被称为m2,就以此类推。通常,由于会产生存储器的冲突,因此并非所有校验节点都可以并行进行更新。调度表为并行校验循环分配校验节点。
Figure G2008800233220D00114
的值由如下方程给出:
λ nm x i = λ n i ( m x ) - Λ m x n i - 1 - - - ( 7 )
并且在当前校验节点mx中计算
Figure G2008800233220D00116
之后,λn i被更新为:
λ n i ( m x + 1 ) = λ nm x + Λ m x n i - - - ( 8 )
因此在该方程中,mx+1为前一循环校验节点mx(或者被并行处理的校验节点的集合)被处理之后被处理的校验节点(或者被并行处理的校验节点的集合)。图3示出了分为两个主要组来执行的迭代i。在第一组中,对校验节点CN-1至CN-3进行处理(形成集合m1),并且在相同迭代的下一组中,对剩余的校验节点CN-4至CN-6进行处理(形成集合m2)。
在当今的通信标准中标准化了的LDPC编码(诸如DVB-S2、802.11n、802.16e、DMB-T以及STiMi)均包含准循环结构。这表示描述符号节点与校验节点(即,N(m)与M(n))之间的互连关系的H矩阵由多个循环矩阵构成。这些循环矩阵包括旋转一定角度的零矩阵或单位矩阵。在一些标准中,在一个循环矩阵中存在多条对角线。在DVB-S2中,LDPC码包括64800位,对于1/2的码速率来说,其一半为系统位(输入至编码器的原始输入位),且其另一半为奇偶位。使用总数为32400个奇偶方程,产生具有64800列和32400行的H矩阵。该矩阵再被分为多个360×360大小的分组(循环矩阵)。图4示出了循环矩阵H矩阵的示例结构。在该示例中,循环矩阵仅为4×4的分组。循环矩阵400为单位矩阵。循环矩阵410为向右旋转1个位置所得的矩阵。循环矩阵420为向右旋转三个位置所得的矩阵。当然,向右旋转也可被看作是向左旋转。利用循环矩阵构建H矩阵的优点在于:可以将属于一个(子)循环矩阵的所有数据存储于存储器的一行,并且可以在一个时钟循环中取回,并且可以利用旋转将其发送至各校正数据路径,其中数据路径执行由校验节点表示的至少部分处理。图5A和图5B示出了并行校验循环矩阵的行的情况。由相应的数据路径对矩阵的每行进行校验。在图5所示的示例中,循环矩阵具有4行,因此优选地利用各数据路径并行地对4个方程进行校验。图5A示出了迭代开始时符号节点存储值a至z。第一方程(等于第一数据路径DP-1)应该使用a、f以及z(在该示例中,忽略了由…表示的中间循环矩阵)来对符号节点进行校验。第二方程应该校验b、g、w;第三方程应该校验c、h、x,以及第四方程应该校验d、e、y。图5B示出了如何在存储器Mem中存储符号值,其中存储器中的行为循环矩阵的大小。在该示例中,每个连续行存储对应于符号节点值的元素。所谓的桶形移位器BS从存储器中读取行,并且其中适当地旋转行中的元素。在该示例中,元素a至d对应于第一循环矩阵,其为单位矩阵。无需旋转。下一组元素e至h对应于第二循环矩阵。该矩阵是向右旋转一个位置的单对角线的矩阵。通过执行相反的旋转R1(即,向左旋转一个位置,其等于向右旋转三个位置),将要由第一数据路径操作的元素也正好位于第一“列”中。类似地,最后一组元素w至z对应于向右旋转三个位置的具有单对角线的最后一个循环矩阵。通过将元素向左旋转三个位置(或向右旋转一个位置),将要由第一数据路径操作的最后一组元素此时也再次位于第一“列”中。因此,可以使用通过桶形移位器产生的第一列来加载第一数据路径DP-1。第二列自动地产生用于第二数据路径DP-2的元素,以此类推。已知桶形移位器本身可以用于旋转元素并向各数据路径提供期望的输出。在1992年2月由G.M.Tharakan与S.M.Kang发表于IEEE Journal of solid-state circuits的卷21No.2的“A New Design of a Fast Barrel Switch Network”中也示出了桶形移位器的示例。还可以使用除图5B中所示之外的其他排列。应该理解的是,相同的构思也适用于使用每行和每列具有相同数量的1元素的子矩阵来代替循环矩阵的使用。代替执行旋转,需要执行稍微更复杂的置换。执行该置换的单元可以被看作是置乱装置。下文将集中对循环矩阵进行描述,并将置乱装置称作桶形移位器。还应该理解的是,多对角线的循环矩阵可以被看作是每行和每列具有相同数量的多个非零元素的特殊形式的子矩阵。针对循环矩阵将详细地描述根据本发明的结构,但是该结构可以以相同的方式用于更一般的情况。
如图6所示,传统的LDPC解码器的结构核心由数据路径形成。如上所述,通过从来自存储那些值的第一存储器中的连续到达的λn i(m)′s中减去Λmn i-1来形成Km、λnm i′s。λnm′s被用于计算如图6中示为610的方程(3)。当必须针对所有的参与者来计算除自身之外的所有值中的最小值时,方程组仅有两个输出值:总最小值以及除1以外的(one-but)最小值。该最小值的位置(即,给出最小值的参与者的身份)也被存储。对这两个值的计算也被称为“运行向量计算”,并且该向量被表示为Λm。对各Λmn的计算是对该向量的解压缩。如方框630所示即为运行向量计算以及解压缩。这种压缩/解压缩本身以最小和算法最为人所知。与计算Λm同时,将λnm′s存储于缓冲器中,优选地存储于FIFO 620中,以备稍后使用。在下一个Km循环期间,对下一个奇偶校验方程重复该操作,同时针对当前的奇偶校验方程,利用上述解压缩来计算各Λmn i。将方框630中的Λmn i与来自FIFO 620的λnm相加,得到新的λn i(m)(方程7)。因此,数据路径产生一个奇偶方程的Kmλn′s,同时接收该Kmλn′s以用于下一方程。所述数据路径每个时钟周期可以处理一条校验节点与符号节点之间的连接。为了避免n1=n2时在写入λn2之前读取λn1,奇偶方程的顺序必须被静态地调度。当没有实现该静态调度时,必须插入空操作,这将导致较低的吞吐量。如上所述,大多数LDPC编码由循环矩阵结构构成,从而使得这些奇偶方程可以被同时计算。当编码的循环矩阵大小等于数据路径的数量并且在循环矩阵中最多存在一条对角线时,解码器可以计算多个奇偶校验方程而不产生存储器的冲突。
图7示出了用于最小和算法的图6中的方框630的常规细节。方框710示出了施加与输入相乘的校正因子α,如方程(3)所示。方框730示出了运行向量计算。方框740示出了解压缩。方框720示出了饱和函数,其将方框710的输出范围减小到预定范围,通常为8位。所述饱和处理可以以任意适当的方法实现,诸如限幅/舍去或缩放等。这些均为已知。
图8示出了包括D条并行数据路径DP-0至DP-D-1的传统的顶层结构,其中每条数据路径对应于图6中所示并在图7中详细说明的数据路径。在该结构中,第一存储器λ-men存储λn值,示为存储器“ΛMem 0”至“ΛMem D-1”的第二存储器存储未压缩的Λmn值。在该示例中,存储器“ΛMem 0”存储值Λ0n、ΛDn、Λ2Dn等;存储器“ΛMem1”存储值Λ1n、Λ1+Dn、Λ1+2Dn等。
所提出的结构的(存储)效率是通过使用发送到/来自数据路径的数据集总存在于存储器中的一个字中的特性来实现的。当使用[Dielissen,DATE]中所述的技术时,这些循环矩阵被分割为多个较小的子循环矩阵,为此,对角特性占主导。
对于大多数标准来说,LDPC解码器所需的最大部分的硅面积在第二存储器中被占据,所述第二存储器包括Λ存储器。由于存储于这些存储器中的值仅包含方程的最小值或除1以外的最小值,因此,这些值可以被如上所述进行压缩。可实现的压缩因子为
Figure G2008800233220D00141
其中b为存储值所需的位数,并且K为方程中参与者的数量。当K等于30时,该压缩因子约为10。图9示出了为了利用压缩的Λ存储而对数据路径进行的改变。图9是图6和图7的组合,其中此处Λ存储器以压缩形式存储Λmn值。这可以以如下方式在图9中看出:通过在解压缩方框740之前导出将要被存储于存储器640中的值。为了能够使用压缩的存储值,存储之后使用另一解压缩方框910。
但是,使用压缩的Λ存储需要注意以下几个方面:
-Λ存储器的总的存储容量取决于一个标准所需的所有编码。例如,DVB-S2具有12种规定速率,其中K的范围为4至30。需要被存储于存储器中的向量的数量根据每种速率而不同。当DVB-S2中所使用的速率为10时,这表示当假设b=5时,总的压缩因子为3.4。
-代替在Λ存储器的一个字中写入2*b+logs(K)位,可以使用K个循环来进行读和写,这以附加逻辑为代价,增大了存储器的面积利用率。
-当以其中可用两端口存储器的FPGA技术为目标且高度已经固定时,Λ’s的压缩不具有任何优势。
-当将要处理的“子层”的数量相当低时,压缩存储器的高度也可能很低,因此通过压缩几乎不能实现面积的优点。
图8中所示的结构示出了在前向路径中使用桶形移位器BS-1并且在向后的路径中使用桶形移位器BS-2。BS-1从地址产生器“Addr gen”接收旋转指令。这些指令(或者是其反向形式)还被存储于连接BS-1与BS-2的FIFO中,从而使得BS-2在适当数量的循环后可以对序列的相同元素执行与BS-1所实现的旋转相反的旋转。该结构还可以通过省略反向路径中的桶形移位器BS-2进行进一步优化。在这种结构中,前向路径中的桶形移位器BS-1必须对数据被回转写入第一存储器“λ-men”的事实进行补偿。本文没有单独示出单个桶形移位器的结构。图8中所示的I/O控制器“IO Contr”和地址产生器“Addr gen”可以被适当地编程以控制桶形移位器BS-1。本领域技术人员对此已知。
以上所给出的结构对于单对角线循环矩阵来说是有效的。该结构导出如下计算:
λ nm x = λ n i ( m x ) - Λ m x n i - 1
计算
λ n i ( m x + 1 ) = λ nm x + Λ i m x n
例如,当在相同循环矩阵中符号节点n连接至两个校验节点时(即,双对角线),则发生以下情况:
λ n i ( m 1 ) = L n + Λ m 1 n i - 1 + Λ m 2 n i - 1
λ nm 1 = λ n i ( m 1 ) - Λ m 1 n i - 1 = L n + Λ m 2 n i - 1
λ nm 2 = λ n i ( m 1 ) - Λ m 2 n i - 1 = L n + Λ m 1 n i - 1
计算
Figure G2008800233220D00168
λ n i ( m 2 ) = λ nm + Λ i m 1 n = L n + Λ i m 1 n + Λ m 2 n i - 1
λ n i ( m 3 ) = λ nm 2 + Λ i m 2 n = L n + Λ m 1 n i - 1 + Λ i m 2 n ≠ L n + Λ i m 1 n + Λ i m 2 n
换句话说,
Figure G2008800233220D001611
被之前的
Figure G2008800233220D001612
覆盖。
图10示出了根据本发明的LDPC解码器结构的基本实现。该LDPC解码器包括第一存储器1005,用于针对每个符号节点n存储LDPC码的相应符号的各符号值λn的表示。假设LDPC码的符号被从0至N-1连续编号,则符号节点n存储第n个符号。该LDPC解码器还包括第二存储器1015,用于存储各校验节点消息Λmn的表示。在该示例中,第二存储器1015被再分为如图8所示的多个存储器,优选地被再分为多个FIFO存储器。该LDPC解码器还包括第一计算装置1010,用于针对下一次迭代根据存储于第一存储器1005中的相应符号值的表示以及来前一迭代的校验节点消息Λmn来计算符号消息λnm。在实施例中,第一计算装置1010根据以上所给出的方程(7)来计算: λ nm i = λ n i ( m ) - Λ mn i - 1 . 对于每条数据路径0至D-1,对各个不同的符号节点执行该计算。D个计算并行执行。因此,处理第一组节点0至D-1,第二组节点为D至2D-1,以此类推。因此,第一计算装置1010被布置为并行执行D个减法。该LDPC解码器还包括桶形移位器1030,用于从第一计算装置1010获得以第一顺序排列的符号消息,并且根据循环矩阵的旋转来以不同顺序提供该符号消息。一般而言,所述桶形移位器1030的原理可以与上述参考图5B所述的相同,其中可以根据符号节点的顺序来接收所述符号消息,并且通过执行与单位矩阵旋转为相关对角矩阵反向的旋转来重新布置所述符号消息的顺序,并且最终沿列方向发送该符号消息。桶形移位器的任务是简化由循环矩阵定义的顺序的改变。
所述LDPC解码器还包括第二计算装置,用于根据LLR-BP(对数似然比置信传播)算法来计算校验节点消息Λmn,并且用于将计算所得的校验节点消息的表示存储于第二存储器1015中。该计算取决于相应校验节点m从桶形移位器1030接收到的符号消息λnm。第二计算装置所执行的计算中的至少一部分在桶形移位器1030之后的数据路径DP-0至DP-D-1中执行,因此处于旋转域中。在实施例中,使用最小和算法,第二计算装置根据方程(3)计算:
Λ i mn = ( { sign n ′ ∈ N ( m ) \ n XOR ( λ n ′ m i ) } ) * α * { | sign ( λ n ′ m i ) | } n ′ ∈ N ( m ) \ n MIN
所述LDPC解码器还包括第三计算装置1020,用于根据第一和第二计算装置的输出来更新第一存储器中的符号值的表示。在优选实施例中,第三计算装置1020根据方程(8)执行如下计算 λ n i ( m x + 1 ) = λ nm x + Λ i m x n .
与图8所示的已知结构的主要区别在于λn i(m)-Λi-1 mn的计算是在“线性域”中进行的,即在桶形移位器1030之前。同样在桶形移位器之前(即在线性域中)执行λnm在FIFO 1040中的存储以及加法λnmi mn以获得λn
在根据本发明的实施例中,将符号消息的表示以如上所述的预定顺序存储于第一存储器中。所述LDPC解码器还包括布置在第二计算装置和第三计算装置1020之间的另一桶形移位器1035,用于以与所述预定顺序对应的顺序提供校验节点消息。如上所述,反向路径中的桶形移位器1035对第一存储器中使用的原始顺序进行重建。
在如图11所示的另一个实施例中,LLR-BP算法基于最小和算法,并且LDPC编码器包括校正装置以及饱和装置,其中校正装置用于使符号消息值乘以校正因子α,饱和装置用于将值限制于预定范围。所述校正装置如图7中的方框710所示,饱和装置如方框720所示。应该理解的是,首先校正在饱和之前执行(校正也可以减小值的范围)。如图11所示,方框1110所示的校正装置于饱和装置的组合被布置在第一计算装置与桶形移位器之间。这导致其上可以实现LDPC编码器的集成电路的不同的面积成本:通过在桶形移位器1030之前乘以α并执行饱和处理,桶形移位器1030就可以具有1至3位的Λmn′s的位宽,其小于其他情况下的λn的宽度。应该注意的是,存储该符号需要一个附加的1位FIFO。图12中的方框1230示出了该1位FIFO。但是,当通过桶形移位器来传送异或结果(xor-total)并且在紧邻λ存储器1005之前的加法器中执行异或操作时,则可以优化去掉1位FIFO。
在图11所示的优选实施例中,由第二计算装置执行的数据路径非常简单,如图12所示。方框1210示出了运行向量计算,其原理与图7中的方框730所示的相同。方框1220示出了向量解压缩,其原理与图7中的方框740所示的相同。方框1230示出了用于存储符号的1位FIFO。
图10和图11所示的结构可以被修改为非常易于处理多对角线的冲突。在这种实施例中,至少一个循环矩阵是具有多条对角线的矩阵,其中每条对角线是通过将单位矩阵旋转数量各不相同的位置形成的。此时,第一计算装置1010被布置用于根据相关校验节点消息来计算对应于多对角线循环矩阵的符号消息λnm i,其中,每个相关校验节点消息对应于循环矩阵中的多条对角线中相应的一条对角线。因此,如果循环矩阵具有两条对角线,则第一计算装置分别发出两个λnm i’s;如果循环矩阵具有三条对角线,则第一计算装置分别发出三个λnm i’s,以此类推。优选地,第一计算装置被布置用于通过在每次迭代中将相关校验节点消息Λmn中相应的一个与计算结果结合来迭代地计算与单个符号节点n相关的符号消息λnm i。图13示出了该迭代布置。如在之前的结构中所述,FIFO 1040可以存储λnm i,并且通过在方框1020中将
Figure G2008800233220D00182
相加来计算新的λn i。在双对角线的情况下,方框1010两次减去校验节点消息
Figure G2008800233220D00183
接着,FIFO 1040存储
Figure G2008800233220D00185
通过在方框1020中分别加上新的
Figure G2008800233220D00186
Figure G2008800233220D00187
来计算新的λn i。例如,假设符号节点n连接至相同循环矩阵中的两个校验节点1和4(即,双对角线),则从第一存储器1005中读出的如下值:λn=Ln1n4n。此后,使用两个减法器在方框1010中减去第一Λ1n。输出Ln4n被馈送至桶形移位器1030,并且还在FIFO 1040中存储相同的值。在第二循环中,通过两个减法器都减去Λ4n。至桶形移位器的数据路径仍被馈送λn=Ln1n4n,因此,利用减法器减去Λ4n后,向桶形移位器提供Ln1n(当然,可选地在校正与饱和处理之后)。通过方框1010中的多路复用器的第二路径对该循环中的另一减法器进行馈送,并且馈送Ln4n。减去Λ4n,则导致存储于FIFO 1040中的Ln。应该注意的是,在这种情况下必须实现1位FIFO。
图8、图10、图11以及图13所示的结构使用FIFO来存储Λmn消息。如上所述,使用压缩的Λ存储可以节约面积。为了在根据本发明的结构中实现该目的,如图14所示,将符号与幅值分割开。在返回桶形移位器1035之后将符号抽出并且将其存储于缓冲器(优选为FIFO)1420中。对于幅值,与图9中一样,从数据路径抽出向量并将其存储于缓冲器(优选为FIFO)1410中。解压单元910类似于图9所示的解压单元。增加第三桶形移位器1430以执行与桶形移位器1035相同的功能。
应该理解的是,可以在硬件中实现本发明,也可以在软件中实现本发明,例如可以在数字信号处理器(DSP)或优化的VLIW处理器上实现本发明。对于软件实现,附图中所描述的方框可以被视作表示功能性软件单元。因此,本发明还延伸至计算机程序,尤其是用于实践本发明的载体上或载体中的计算机程序。所述程序可以为源代码、目标代码、源代码与目标代码中间的代码(诸如部分地被编译了的形式)的形式,或者为适用于在根据本发明的方法的实现中使用的任何其他代码的形式。所述载体可以是可以携带所述程序的任何实体或装置。例如,所述载体可以包括诸如ROM之类的存储媒介(例如,CD ROM或半导体ROM)或磁记录媒介(例如,软磁盘或硬盘)。进一步地,所述载体可以为可传输载体,诸如电信号或光信号,这些信号可以通过电缆或光缆或者可以通过无线或其他装置来传输。当在这种信号中实现所述程序时,所述载体可以由这种线缆或者其他装置或设备构成。可替换地,所述载体可以为其中嵌入有所述程序的集成电路,该集成电路用于执行相关方法或用于实现相关方法中的性能。
应该注意的是,上述实施例说明但不限制本发明,并且本领域技术人员在不脱离所附权利要求的范围的情况下可以设计许多替换实施例。在权利要求中,括号中的任意参考符号不应被理解为对权利要求的限制。词语“包括”及其结合的使用不排除权利要求中所述之外的元件或步骤的存在。元件之前的冠词“一”或“一个”不排除多个这种元件的存在。本发明可以通过包括若干不同元件的硬件来实现,也可以通过可适当编程的计算机实现。在列举了几个装置的装置权利要求中,这些装置中的几个可以由同一硬件实现。在相互不同的从属权利要求中所限定的具体方法不表示他们的组合不能用于获得优势。

Claims (8)

1.一种LDPC解码器,用于迭代地对加罗瓦域上的LDPC码进行解码,其中,所述LDPC码由预定的M×N的奇偶校验矩阵H表示,所述奇偶校验矩阵H由多个子矩阵构成,其中每个子矩阵为零矩阵或者为每行和每列均具有相同数量的非零元素的矩阵;所述LDPC解码器基于对数似然比置信传播算法,以下称其为LLR-BP算法,其表示将符号消息λnm从相应符号节点n(0<=n<N)传递至所连接的校验节点m(0<=m<M),以及将校验节点消息Λmn从相应校验节点m传递至所连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码器包括:
-第一存储器(1005),用于针对每个符号节点存储LDPC码的相应符号的各符号值的表示;
-第二存储器(1015),用于存储各所述校验节点消息Λmn的表示;
-第一计算装置(1010),用于根据存储于所述第一存储器的相应符号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息λmn
-置乱装置(1030),用于从所述第一计算装置(1010)接收以第一顺序排列的符号消息,并且根据相应子矩阵中非零元素的位置来以不同顺序提供所述符号消息;
-第二计算装置(DP-0,DP-1,DP-D-1),用于根据LLR-BP算法来计算校验节点消息,以及用于将计算所得的校验节点消息存储于第二存储器中;该计算依赖于由各相应校验节点从所述桶形移位器接收到的符号消息;以及
-第三计算装置(1020),用于根据所述第一计算装置和所述第二计算装置的输出来更新所述第一存储器中的符号值的表示。
2.如权利要求1所述的LDPC解码器,其中至少一个子矩阵是每行和每列均具有至少两个非零元素的矩阵,以下称其为多元矩阵;所述第一计算装置被布置用于根据相关校验节点消息来计算对应于多元矩阵的符号消息λnm i,其中,每个所述相关校验节点消息对应于多元矩阵中的非零元素中的相应一个。
3.如权利要求2所述的LDPC解码器,其中所述第一计算装置被布置为通过在每个迭代中将相关校验节点消息中相应的一个与计算所得的结果结合来迭代地计算与单个符号节点相关的符号消息。
4.如权利要求1所述的LDPC解码器,其中LLR-BP算法基于最小和算法,并且LDPC编码器包括:校正装置,用于将符号消息值乘以校正因子α;以及饱和装置,用于将所述符号消息值限制至预定范围;所述校正装置与所述饱和装置被布置在所述第一计算装置与所述置乱装置之间。
5.如权利要求1所述的LDPC解码器,其中以预定顺序将符号消息的表示存储于第一存储器中;所述LDPC解码器还包括布置在所述第二计算装置与所述第三计算装置之间的另一置乱装置,用于以对应于所述预定顺序的顺序来提供校验节点消息。
6.如权利要求1所述的LDPC解码器,其中LLR-BP算法基于最小和算法;所述第二计算装置包括压缩装置,用于对所述校验节点消息进行压缩并且以压缩的形式将所述校验节点消息存储于所述第二存储器中;并且所述第一计算装置包括解压缩装置,用于对从所述第二存储器中读出的所述校验节点消息进行解压缩。
7.如权利要求1所述的LDPC解码器,其中所述子矩阵是循环矩阵,其为零矩阵或者为具有至少一条对角线的对角矩阵,并且至少一个对角矩阵为通过将单位矩阵旋转至少一个位置形成的对角矩阵;并且所述置乱装置为桶形移位器,用于根据循环矩阵的旋转来改变符号消息的顺序。
8.一种迭代地对加罗瓦域上的LDPC码进行解码的方法,其中所述LDPC码由预定的M×N的奇偶校验矩阵H表示,所述奇偶校验矩阵H由多个子矩阵构成,其中每个子矩阵为零矩阵或者为每行和每列都具有相同数量的非零元素的矩阵;所述LDPC解码方法基于对数似然比置信传播算法,下文中称其为LLR-BP算法,其表示将符号消息λnm从相应符号节点n(0<=n<N)传递至连接的校验节点m(0<=m<N),以及将校验节点消息Λmn从相应校验节点m传递至所连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码方法包括:
-针对每个符号节点将所述LDPC码的相应符号的各符号值的表示存储于第一存储器中;
-将各校验节点消息Λmn的表示存储于第二存储器中;
-执行第一计算,包括根据存储于所述第一存储器的相应符号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息λnm
-通过接收以第一顺序排列的由第一计算产生的符号消息,以及根据相应子矩阵中的非零元素的位置以不同顺序提供所述符号消息来执行置乱操作;
-执行第二计算,包括根据LLR-BP算法来计算校验节点消息,并且将计算所得的校验节点消息存储于所述第二存储器中;该计算依赖于由相应校验节点从桶形移位器接收到的符号消息;以及
-根据所述第一计算和所述第二计算的输出来更新所述第一存储器中的符号值的表示。
CN2008800233220A 2007-07-04 2008-07-01 置乱式ldpc解码 Expired - Fee Related CN101689865B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07111728.7 2007-07-04
EP07111728 2007-07-04
PCT/IB2008/052635 WO2009004572A1 (en) 2007-07-04 2008-07-01 Shuffled ldpc decoding

Publications (2)

Publication Number Publication Date
CN101689865A true CN101689865A (zh) 2010-03-31
CN101689865B CN101689865B (zh) 2012-10-24

Family

ID=39816786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800233220A Expired - Fee Related CN101689865B (zh) 2007-07-04 2008-07-01 置乱式ldpc解码

Country Status (5)

Country Link
US (1) US8489962B2 (zh)
EP (1) EP2171857A1 (zh)
JP (1) JP5306342B2 (zh)
CN (1) CN101689865B (zh)
WO (1) WO2009004572A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997777A (zh) * 2015-09-18 2017-08-01 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器
CN108809327A (zh) * 2017-05-05 2018-11-13 上海数字电视国家工程研究中心有限公司 Ldpc译码方法
CN110719111A (zh) * 2013-08-27 2020-01-21 想象力科技有限公司 用于低密度奇偶校验码的改善的解码器
CN110768679A (zh) * 2019-10-30 2020-02-07 湖南国科微电子股份有限公司 64进制ldpc的码字校验方法及系统
US10615823B2 (en) 2007-05-01 2020-04-07 The Texas A&M University System Low density parity check decoder
CN113411087A (zh) * 2021-06-30 2021-09-17 展讯半导体(成都)有限公司 解码q元LDPC的方法、电路及包括其的接收机
CN117879620A (zh) * 2024-03-13 2024-04-12 荣耀终端有限公司 译码方法、可读存储介质、程序产品及电子设备

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196010B1 (en) * 2007-08-17 2012-06-05 Marvell International, Ltd. Generic encoder for low-density parity-check (LDPC) codes
FR2944660B1 (fr) * 2009-04-16 2011-09-09 St Microelectronics Sa Decodeur ldpc
KR20110124659A (ko) 2010-05-11 2011-11-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
JP5692780B2 (ja) * 2010-10-05 2015-04-01 日本電気株式会社 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
US8566667B2 (en) * 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US8880985B2 (en) * 2011-10-05 2014-11-04 Nec Laboratories America, Inc. High-speed long codeword QC-LDPC soft decision decoder
JP5631846B2 (ja) * 2011-11-01 2014-11-26 株式会社東芝 半導体メモリ装置および復号方法
US8762798B2 (en) 2011-11-16 2014-06-24 Stec, Inc. Dynamic LDPC code rate solution
US8775898B2 (en) * 2012-05-17 2014-07-08 Lsi Corporation Systems and methods for hardware flexible low density parity check conversion
US9213593B2 (en) * 2013-01-16 2015-12-15 Maxlinear, Inc. Efficient memory architecture for low density parity check decoding
US9037952B2 (en) * 2013-02-06 2015-05-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory architecture for layered low-density parity-check decoder
KR102019893B1 (ko) * 2013-07-22 2019-09-09 삼성전자주식회사 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
US9003257B1 (en) * 2013-09-19 2015-04-07 U-Blox Ag Low density parity check encoder and encoding method
EP3082267A4 (en) * 2013-12-09 2017-08-16 Mitsubishi Electric Corporation Error-correction decoding device
US9537508B1 (en) * 2014-01-09 2017-01-03 Marvell International Ltd. Systems and methods for decoding cascade LDPC codes
JP2015135621A (ja) 2014-01-17 2015-07-27 富士通株式会社 演算装置、演算方法および無線通信装置
CN103944587B (zh) * 2014-05-07 2017-01-04 四川大学 一种有序排列非零元素的多进制ldpc码校验矩阵构造方法
TWI551058B (zh) * 2014-05-09 2016-09-21 衡宇科技股份有限公司 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
KR102189440B1 (ko) 2014-08-25 2020-12-14 삼성전자주식회사 에러 정정 디코더를 포함하는 스토리지 장치 및 에러 정정 디코더의 동작 방법
US9973212B2 (en) * 2015-09-08 2018-05-15 Storart Technology Co. Ltd. Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
KR102589918B1 (ko) 2016-07-19 2023-10-18 삼성전자주식회사 저밀도 패리티 체크 디코더 및 그것을 포함하는 저장 장치
CN106533452B (zh) * 2016-11-14 2019-05-07 中国电子科技集团公司第五十四研究所 一种多进制ldpc编码方法及编码器
US10289348B2 (en) * 2016-12-30 2019-05-14 Western Digital Technologies, Inc. Tapered variable node memory
EP3419181A1 (en) * 2017-06-19 2018-12-26 Universite De Bretagne Sud Simplified check node processing in non-binary ldpc decoder
CN108736898B (zh) * 2018-05-31 2021-09-07 东南大学 一种适用于5g系统的ldpc码编解码器复用方法
TWI677878B (zh) 2018-10-12 2019-11-21 慧榮科技股份有限公司 編碼器及相關的編碼方法與快閃記憶體控制器
GB2595240B (en) * 2020-05-18 2022-11-30 Accelercomm Ltd Low density parity check decoder, electronic device, and method therefor
EP4208947A1 (en) * 2020-09-03 2023-07-12 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for improved belief propagation based decoding
TWI804347B (zh) * 2022-06-16 2023-06-01 慧榮科技股份有限公司 編碼器與快閃記憶體控制器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415079B2 (en) * 2000-09-12 2008-08-19 Broadcom Corporation Decoder design adaptable to decode coded signals using min* or max* processing
US7093179B2 (en) * 2001-03-22 2006-08-15 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
US7587659B2 (en) * 2002-05-31 2009-09-08 Broadcom Corporation Efficient front end memory arrangement to support parallel bit node and check node processing in LDPC (Low Density Parity Check) decoders
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
US7174495B2 (en) 2003-12-19 2007-02-06 Emmanuel Boutillon LDPC decoder, corresponding method, system and computer program
US7730377B2 (en) * 2004-07-22 2010-06-01 Texas Instruments Incorporated Layered decoding of low density parity check (LDPC) codes
EP1819056B1 (en) * 2004-12-02 2013-07-17 Mitsubishi Electric Corporation Decoding device and communication device
US7500172B2 (en) 2005-02-26 2009-03-03 Broadcom Corporation AMP (accelerated message passing) decoder adapted for LDPC (low density parity check) codes
WO2007075043A2 (en) * 2005-12-27 2007-07-05 Lg Electronics Inc. Methods and apparatuses for decoding or encoding using channel code or ldpc
FR2896359A1 (fr) * 2006-01-19 2007-07-20 France Telecom Procede d'encodage et de decodage rapides et dispositifs associes.
CN100546205C (zh) * 2006-04-29 2009-09-30 北京泰美世纪科技有限公司 构造低密度奇偶校验码的方法、译码方法及其传输系统
CN101212277A (zh) * 2006-12-29 2008-07-02 中兴通讯股份有限公司 支持多协议标准的ldpc码译码装置
ES2562031T3 (es) * 2007-10-30 2016-03-02 Sony Corporation Aparato y método de procesamiento de datos

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368168B2 (en) 2007-05-01 2022-06-21 The Texas A&M University System Low density parity check decoder
US10951235B2 (en) 2007-05-01 2021-03-16 The Texas A&M University System Low density parity check decoder
US11728828B2 (en) 2007-05-01 2023-08-15 The Texas A&M University System Low density parity check decoder
US10615823B2 (en) 2007-05-01 2020-04-07 The Texas A&M University System Low density parity check decoder
CN110719111B (zh) * 2013-08-27 2023-07-25 北欧半导体公司 用于低密度奇偶校验码的改善的解码器
CN110719111A (zh) * 2013-08-27 2020-01-21 想象力科技有限公司 用于低密度奇偶校验码的改善的解码器
CN106997777B (zh) * 2015-09-18 2021-01-05 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器
CN106997777A (zh) * 2015-09-18 2017-08-01 爱思开海力士有限公司 具有改进的硬解码吞吐量的vss ldpc解码器
CN108809327A (zh) * 2017-05-05 2018-11-13 上海数字电视国家工程研究中心有限公司 Ldpc译码方法
CN108809327B (zh) * 2017-05-05 2022-01-28 上海数字电视国家工程研究中心有限公司 Ldpc译码方法
CN110768679A (zh) * 2019-10-30 2020-02-07 湖南国科微电子股份有限公司 64进制ldpc的码字校验方法及系统
CN110768679B (zh) * 2019-10-30 2023-08-22 湖南国科微电子股份有限公司 64进制ldpc的码字校验方法及系统
CN113411087A (zh) * 2021-06-30 2021-09-17 展讯半导体(成都)有限公司 解码q元LDPC的方法、电路及包括其的接收机
CN117879620A (zh) * 2024-03-13 2024-04-12 荣耀终端有限公司 译码方法、可读存储介质、程序产品及电子设备

Also Published As

Publication number Publication date
CN101689865B (zh) 2012-10-24
JP2010532128A (ja) 2010-09-30
EP2171857A1 (en) 2010-04-07
US20100251059A1 (en) 2010-09-30
WO2009004572A1 (en) 2009-01-08
US8489962B2 (en) 2013-07-16
JP5306342B2 (ja) 2013-10-02

Similar Documents

Publication Publication Date Title
CN101689865B (zh) 置乱式ldpc解码
CN1993892B (zh) 用于编码和解码块低密度奇偶校验码的装置和方法
CN101079646B (zh) 用于在通信系统中接收信号的装置和方法
US8276055B1 (en) Low latency programmable encoder with outer systematic code and low-density parity-check code
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
US8392789B2 (en) Method and system for decoding low density parity check codes
CN101295988B (zh) 解码设备
US20060129904A1 (en) Method and apparatus for encoding and decoding data
US20070089017A1 (en) Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes with reduced memory requirements
US20060026486A1 (en) Memory efficient LDPC decoding methods and apparatus
CN104995844A (zh) 具有对于ldpc码可靠性输入的比特翻转解码
JP2011522502A (ja) ターボldpc復号
US7493548B2 (en) Method and apparatus for encoding and decoding data
CN107979445B (zh) 使用预先排序的输入的基于基本校验节点的校正子解码
KR20090040225A (ko) 복호장치, 복호방법 및 프로그램
US8312353B2 (en) Decoding device, decoding method, receiving device, and storage medium reproducing device
US9104589B1 (en) Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions
CN101442317A (zh) 解码装置和方法、发送/接收系统、接收装置和方法及程序
CN101154948A (zh) 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备
US20090113174A1 (en) Sign Operation Instructions and Circuitry
Fontaine et al. How Reed-Solomon codes can improve steganographic schemes
Marelli et al. BCH and LDPC error correction codes for NAND flash memories
CN1973440A (zh) Ldpc编码器、解码器、系统及方法
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
US10419026B2 (en) Method and apparatus for efficient data decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121024

Termination date: 20180701