CN101159436B - 解码设备及方法 - Google Patents

解码设备及方法 Download PDF

Info

Publication number
CN101159436B
CN101159436B CN2007101822893A CN200710182289A CN101159436B CN 101159436 B CN101159436 B CN 101159436B CN 2007101822893 A CN2007101822893 A CN 2007101822893A CN 200710182289 A CN200710182289 A CN 200710182289A CN 101159436 B CN101159436 B CN 101159436B
Authority
CN
China
Prior art keywords
submatrix
bit
ldpc
limit message
matrix
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
CN2007101822893A
Other languages
English (en)
Other versions
CN101159436A (zh
Inventor
豪·西恩·特
巴中·申
塔克·K·李
凯利·布赖恩·卡梅伦
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.)
Avago Technologies General IP Singapore Pte Ltd
Original Assignee
Zyray Wireless Inc
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 Zyray Wireless Inc filed Critical Zyray Wireless Inc
Publication of CN101159436A publication Critical patent/CN101159436A/zh
Application granted granted Critical
Publication of CN101159436B publication Critical patent/CN101159436B/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/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
    • 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/1162Array based LDPC codes, e.g. array 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/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/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/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/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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
    • H03M13/6505Memory efficient implementations
    • 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/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)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及基于重叠子矩阵的LDPC(低密度奇偶校验码)解码器。介绍了新的解码方法,对应于LDPC矩阵的子矩阵的被更新比特边消息被立即用于更新对应于此子矩阵的校验边消息,而不需存储比特边消息;同样,对应于LDPC矩阵的子矩阵的被更新校验边消息被立即用于更新对应于此子矩阵的比特边消息更新,而不需存储校验边消息。与更新整个LDPC矩阵的所有校验边消息、然后更新整个比特边矩阵的所有比特边消息、如此反复的系统进行比较,用本发明的方法,在一定的时间内可以执行2倍以上的迭代解码。当将此重叠方法和最小和处理结合使用时,可节约大量的存储空间。

Description

解码设备及方法
技术领域
本发明涉及通信系统,更具体地说,涉及一种在通信系统中的LDPC(Low Density Partity Check低密度奇偶校验)编码信号的解码。
背景技术
数据通信系统已经不断地发展了许多年。最近引起较大兴趣的通信系统是采用迭代纠错码的系统。尤其关注的是用LDPC码的通信系统。采用迭代码的通信系统常常在一定的信噪比(SNR)条件下可比选择码达到更低的误码率(BER)。
本领域研究的连续和主要方向是在通信系统中持续降低需要的SNR来得到一定的BER。理想目标是尝试在通信信道中达到香农极限(Shannon’limit)。香农极限可以看作在具有特定SNR的通信信道中使用的数据率,能实现通信信道中的无差错传输。换句话说,香农极限是一定调制率和码率的信道容量的理论范围。
LDPC码已被证实在一些情况下可以提供接近香农极限的优良解码性能。例如,一些LDPC解码器已被证实以0.3dB的偏差接近理论香农极限。尽管此例是用长度为100万的不规则LDPC码得到的,但还是显示了LDPC码在通信系统中的应用前景。
一般说来,在使用LDPC码的通信系统中,在通信信道的一端有具编码能力的第一通信器件,并且在通信信道的另一端的有具解码能力的第二通信器件。在许多情况下,这些通信器件的一个或两个包括了编码器和解码器的能力(例如,在双向通信系统中)。
在现有技术的通信器件中,在设计能够解码LDPC编码信号的有效通信器件的过程中,一个最大的障碍是,在迭代解码过程中通常要较大的面积和存储器来存储和管理所有的更新比特边消息和校验边消息,所述消息在迭代解码处理的过程中被更新和使用(例如,当在校验引擎和比特引擎之间存储和来回传递校验边消息和比特边消息的时候)。当在LDPC码的上下文中处理相对较大的数据块时,处理这些校验边消息和比特边消息所需要的存储器需求和存储器管理可变得很难对付。
现有技术中对LDPC编码信号进行解码的方法注定是高存储密度的,现有技术中的典型方法是(1)更新所有的比特边消息,接下来(2)更新所有的校验边消息,然后(3)更新所有的比特边消息,等等,直到得到解或者达到固定数目的解码迭代次数。尤其是LDPC编码的信号采用了相对较大的块,现有技术的方法需要大量的存储器,时常地需要高密度的存储管理设计,这增加了根据现有技术的方法来解码LDPC编码信号的设备的大小和成本。
发明内容
本发明所涉及的设备及其操作方法在下面的附图简要说明、具体实施方式和权利要求书有更详细的描述。
根据本发明的一方面,提供一种解码器,用来对LDPC(Low DensityPartity Check低密度奇偶校验)编码信号执行基于重叠子矩阵的解码,所述解码器包括:
比特引擎;
校验引擎;并且其中:
在第一时间内,比特引擎用来更新对应于LDPC矩阵的第一子矩阵的比特边消息;
在第二时间内,校验引擎使用对应于第一子矩阵的被更新比特边消息、更新对应于LDPC矩阵的第一子矩阵的校验边消息;并且比特引擎可用来更新对应于LDPC矩阵的第二子矩阵的比特边消息。
在第三时间内:校验引擎可使用对应于第二子矩阵的被更新比特边消息、更新对应于第二子矩阵的校验边消息,并且比特引擎可用来更新对应于LDPC矩阵的第三子矩阵的比特边消息;并且
解码器可用对应于第一子矩阵、第二子矩阵和第三子矩阵中至少一个的最近更新的比特边消息,对LDPC编码信号中的信息比特做出最佳估计。
优选地,所述解码器进一步包括:
度量计算器,用来计算对应于已经被编码为LDPC编码信号中的多个比特的多个比特度量尺,其中:
比特引擎用于使用多个比特度量尺、初始化对应于第一子矩阵、第二子矩阵、第三子矩阵中至少一个的比特边消息。
优选地,当更新对应于LDPC矩阵的第一子矩阵的校验边消息时,校验引擎用最小和(min-sum)处理;
最小和处理包括从对应于第一子矩阵的被更新比特边消息中,选择第一最小值或第二最小值。
优选地,当更新对应于LDPC矩阵的第一子矩阵的校验边消息时,所述校验引擎使用最小*(最小-星号)处理。
优选地,第一子矩阵、第二子矩阵、第三子矩阵彼此对齐并位于LDPC矩阵中的同一行;并且第二子矩阵位于第一子矩阵和第三子矩阵之间。
优选地,比特引擎直接提供被更新的比特边消息给校验引擎,在更新校验边消息时使用。
优选地,在第四时间内,校验引擎可用对应于第三子矩阵的被更新比特边消息来校验对应于第三子矩阵的校验边消息,并且比特引擎可用对应于LDPC矩阵的第一子矩阵的被更新校验边消息,来更新对应于LDPC矩阵的第一子矩阵的比特边消息。
优选地,所述解码器进一步包括:
硬限幅器;和
校正子模块(syndrome module),用于判定对应于LDPC码的多个校验子中的每一个是否等于零,其中通过所述LDPC码生成LDPC编码信号,并且,其中:
如果多个校验子的每个校验子等于零,比特引擎就用来计算已经编码为LDPC编码信号的多个比特的软输出,并且,硬限幅器用来计算多个比特的多个估计值;并且
如果多个校验子的每一个不等于零,比特引擎和校验引擎继续执行至少一个更多的解码迭代。
优选地,当对应于LDPC矩阵的第一子矩阵的比特边消息被比特引擎更新后,对应于LDPC矩阵的第一子矩阵的校验边消息立即被校验引擎更新。
优选地:
所述比特引擎是多个比特引擎的第一比特引擎;
所述校验引擎是多个校验引擎的第一校验引擎;
在第一时间内:所述第一比特引擎可用来更新对应于LDPC矩阵的第一子矩阵的比特边消息;并且多个比特引擎的第二比特引擎可用来更新对应于LDPC矩阵的第四子矩阵的比特边消息;
在第二时间:第一校验引擎可用对应于第一子矩阵的被更新比特边消息来更新对应于第一子矩阵的校验边消息;并且第二校验引擎可用对应于第四子矩阵的被更新比特边消息来更新对应于第四子矩阵的校验边消息。
优选地,
所述解码器在通信设备中实现,所述通信设备可从通信信道接收LDPC编码信号,并且
所述通信设备可在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个中实现。
根据本发明的一方面,提供一种通信设备,用于从通信信道中接收LDPC编码信号,所述通信设备包括:
度量计算器,可计算对应于已经编码为LDPC编码信号中的多个比特的多个比特度量尺;
比特引擎,在第一时间,可利用多个比特度量尺,初始化对应于LDPC矩阵的第一子矩阵的比特边消息。
校验引擎;其中:
在第二时间:校验引擎可用对应于第一子矩阵的被初始化比特边消息来更新对应于LDPC矩阵的第一子矩阵的校验边消息;并且比特引擎可用多个比特度量尺,初始化对应于LDPC矩阵的第二子矩阵的比特边消息;
在第三时间,校验引擎可用对应于第二子矩阵的被初始化比特边消息来更新对应于第二子矩阵的校验边消息;
在第四时间,比特引擎可用对应于LDPC矩阵的第一子矩阵的被更新校验边消息,来更新对应于LDPC矩阵第一子矩阵的比特边消息;
在第五时间内,校验引擎可用对应于LDPC矩阵的第一子矩阵的被更新比特边消息来更新对应于LDPC矩阵的第一子矩阵的校验边消息;且比特引擎可用对应于LDPC矩阵的第二子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第二子矩阵的比特边消息;
优选地,所述第四时间是第三时间。
优选地:
比特引擎是多个比特引擎的第一比特引擎;
校验引擎是多个校验引擎的第一校验引擎;
多个比特引擎安排来为LDPC矩阵的多个子矩阵同时进行并行比特边更新处理;且
多个校验引擎安排来为LDPC矩阵的多个子矩阵同时进行并行校验边更新处理。
优选地,
所述比特引擎是m个比特引擎的第一比特引擎,其中m是整数;
所述校验引擎是n个比特引擎的第一校验引擎,其中n是整数;
m个比特引擎安排来为LDPC矩阵的第一多个子矩阵同时进行并行比特边更新处理;且
n个校验引擎安排来为LDPC矩阵的第一多个子矩阵同时进行并行校验边更新处理。
优选地,所述通信设备至少在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个中实现。
根据本发明的一方面,提供一种对LDPC编码信号执行基于重叠子矩阵的解码方法,所述方法包括:
计算对应于已经编码为LDPC编码信号的多个比特的多个比特度量尺;
在第一时间,初始化对应于LDPC矩阵的第一子矩阵的比特边消息;在第二时间:用对应于第一子矩阵的被初始化比特边消息,来更新对应于LDPC矩阵的第一子矩阵的校验边消息;并且初始化对应于LDPC矩阵的第二子矩阵的比特边消息;
在第三时间,用对应于第二子矩阵的被初始化比特边消息来更新对应于第二子矩阵的校验边消息;
在第四时间,用对应于LDPC矩阵的第一子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第一子矩阵的比特边消息;
在第五时间内,用对应于LDPC矩阵的第一子矩阵的被更新比特边消息来更新对应于LDPC矩阵的第一子矩阵的校验边消息;用对应于LDPC矩阵的第二子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第二子矩阵的比特边消息;
在第六时间,用对应于LDPC矩阵的第一子矩阵和LDPC矩阵的第二子矩阵中至少一个的被最近更新的比特边消息,对LDPC编码信号中的信息做出最佳估计。
优选地:用对应于LDPC矩阵的第一子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第一子矩阵的比特边消息,所述更新是用比特引擎执行的;并且所述比特引擎将对应于LDPC矩阵的第一子矩阵的被更新比特边消息直接提供校验引擎,校验引擎用对应于LDPC矩阵的第一子矩阵的被更新比特边消息,来执行对应于LDPC矩阵的第一子矩阵的校验边消息的更新。
优选地,所述方法进一步包括:
用第一比特引擎和第二比特引擎来初始化对应于LDPC矩阵第一子矩阵和LDPC矩阵第二子矩阵的比特边消息,第一比特引擎和第二比特引擎安排来同时为LDPC矩阵的第一子矩阵和LDPC矩阵的第二子矩阵执行并行比特边更新处理。
优选地,所述方法在通信设备中执行;并且所述通信设备至少在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个中实现。
根据本发明的一方面,提供一种解码器,用来对LDPC(Low DensityPartity Check低密度奇偶校验)编码信号执行基于重叠子矩阵的解码,所述解码器包括:
比特引擎;
校验引擎;并且其中:
在第一时间内,比特引擎用来更新对应于LDPC矩阵的第一子矩阵的比特边消息;
在第二时间内,校验引擎使用对应于第一子矩阵的被更新比特边消息、使用最小和处理来更新对应于LDPC矩阵的第一子矩阵的校验边消息;并且比特引擎可用来更新对应于LDPC矩阵的第二子矩阵的比特边消息。
在第三时间内:校验引擎可使用对应于第二子矩阵的被更新比特边消息、使用最小和处理来更新对应于第二子矩阵的校验边消息,并且比特引擎可用来更新对应于LDPC矩阵的第三子矩阵的比特边消息;并且
解码器可用对应于第一子矩阵、第二子矩阵、第三子矩阵中至少一个的最近更新的比特边消息,对LDPC编码信号的消息比特做出最佳估计。
优选地,所述解码器进一步包括:
度量计算器,用来计算对应于已经被编码为LDPC编码信号中的多个比特的多个比特度量尺,其中:
比特引擎用于使用多个比特度量尺、初始化对应于第一子矩阵、第二子矩阵、第三子矩阵中至少一个的比特边消息。
优选地,第一子矩阵、第二子矩阵、第三子矩阵彼此对齐并位于LDPC矩阵中的同一行;并且第二子矩阵位于第一子矩阵和第三子矩阵之间。
优选地,比特引擎直接提供被更新的比特边消息给校验引擎,在更新校验边消息时使用。
优选地,所述解码器进一步包括:
硬限幅器;和
校正子模块,用于判定对应于LDPC码的多个校验子中的每一个是否等于零,其中通过所述LDPC码生成LDPC编码信号。
优选地,当对应于LDPC矩阵的第一子矩阵的比特边消息被比特引擎更新后,对应于LDPC矩阵的第一子矩阵的校验边消息立即被校验引擎更新。
优选地:
所述比特引擎是多个比特引擎的第一比特引擎;
所述校验引擎是多个校验引擎的第一校验引擎;
在第一时间内:所述第一比特引擎可用来更新对应于LDPC矩阵的第一子矩阵的比特边消息;并且多个比特引擎的第二比特引擎可用来更新对应于LDPC矩阵的第四子矩阵的比特边消息;
在第二时间:第一校验引擎可用对应于第一子矩阵的被更新比特边消息来更新对应于第一子矩阵的校验边消息;并且第二校验引擎可用对应于第四子矩阵的被更新比特边消息来更新对应于第四子矩阵的校验边消息。
优选地,所述解码器在通信设备中实现,所述通信设备可从通信信道接收LDPC编码信号,并且所述通信设备可在卫星通信系统、无线通信系统、有线通信系统和光纤通信系统中的至少一个中实现。
从以下参照附图的具体实施方式中,更加容易理解本发明的其它优势和特征。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1和图2是通信系统的各种实施例的示意图;
图3是LDPC(Low Density Parity Check)码双向图的实施例的示意图;
图4是通信系统的另一实施例的示意图;
图5A、图5B、图6A、图6B、图7A、图7B、图8A和图8B是对LDPC编码信号进行基于重叠子矩阵的解码的实施例的示意图,此LDPC矩阵H有m行子矩阵和n列子矩阵;
图9、图10、图11、图12、图13、图14、图15、图16和图17是对LDPC编码信号进行基于重叠子矩阵的解码的实施例的示意图,此LDPC矩阵H有(1)72×72大小的CSI(Cyclic Sifted Identity,循环移位识别)子矩阵;(2)6、2、1的比特度和60、61的校验度,以及(3)总数为26280个的边数;
图18是对LDPC编码信号进行基于重叠子矩阵的解码的选择性实施例的示意图,此LDPC矩阵H有(1)72×72大小的CSI(Cyclic Sifted Identity,循环移位识别)子矩阵;(2)6、2、1的比特度和60、61的校验度和(3)总数为26280个的边数;
图19是用最小和方法处理的LDPC解码器的实施例的示意图;
图20是可在LDPC解码中使用的比特节点处理的实施例的示意图;
图21是可在LDPC解码中用的校验节点处理的实施例的示意图
图22是用并行排列的比特引擎和并行排列的校验引擎的LDPC解码器的实施例的示意图;
图23是LDPC矩阵H的实施例的示意图,说明解码处理如何应用于其1部分、许多或所有的子矩阵;
图24是LDPC矩阵H的实施例的示意图,H矩阵设计来用基于重叠子矩阵的解码器进行有效的解码处理;
图25是用来进行LDPC矩阵H的行和列变换、以将其变成类似图24的形式的装置的实施例的示意图;
图26是对LDPC编码信号进行基于重叠子矩阵的解码的方法的实施例的示意图。
具体实施方式
许多通信系统包括使用LDPC(Low Density Parity Check,低密度奇偶校验)码。典型地,之前的方法是在此假定下操作的:所有校验边消息(有时称为校验节点处理)的更新和所有比特边消息(有时称为比特节点处理)的更新交替地执行(例如,所有的校验边消息被更新,然后所有的比特边消息被更新)。
在此,提出一种新的方法,当执行LDPC编码信号的迭代解码处理时,校验边消息和比特边消息分别在校验引擎和比特引擎之间直接通过,因此此方法事实上不需要存储器。采用合适的基于子矩阵的处理方法,一个或多个子矩阵的校验边消息可在远远早于整个LDPC矩阵H的比特边消息的更新之前就开始。总的说来,这是重叠的方法,一旦子矩阵的比特边消息被更新后,紧接着它们就可用来为子矩阵更新校验边消息。在另外的实施例中,只有一部分子矩阵更新比特边消息,之后更新那部分子矩阵的校验边消息。
如果需要,LDPC码(例如,LDPC矩阵H的结构)的结构可以被执行,使LDPC码的结构适合于更有效地实现基于重叠子矩阵的LDPC解码器。也就是说,LDPC矩阵H可被设计,这样它就可以更直接地从基于重叠子矩阵的LDPC解码器的结构和处理流程中得到益处。其后,一旦LDPC码结构被达到,然后LDPC矩阵H就可经历所需要的任意次数的行和列的置换,来将其中的子矩阵随机化。例如,LDPC矩阵H的置换,可包括在CSI(Cyclic Sifted Identity,循环移位识别)子矩阵的上下文中执行循环移位,也包括在LDPC矩阵H中的非零的元素进行随机分布。
可使用更新校验边消息的任何方法,包括Gallager函数,Gallager函数用tanh(x)和tanh-1(x)函数、最小处理、最小和处理、最小*(最小-星号)处理、最小**(最小-双星号)处理和许多其他处理类型。还需要注意的是,可对校验边消息和比特边消息执行任意期望的比例缩放,来适应LDPC矩阵H,其子矩阵可有大于1的权重。
使用此基于重叠子矩阵的LDPC解码的新方法:其中在比特边消息的更新完成之前,就开始更新校验边消息,用来存储校验边消息和比特边消息、并将它们在一个或多个校验引擎和一个或多个比特引擎之间传送的所需的存储器可以大大减少,解码迭代的次数也可在给定的时间内以因子2(例如,×2)增加。由于不需所有的存储器存取和能够更快地得到收敛解(例如,由于解码迭代的数量的2×的增益得到的两倍的解码速度),这也可以节约大量的能量和功率。这种能量和功率的节约在许多移动和/或无线通信设备类型的应用中是关键的,因为在这类设备中能量是有限的(例如,当能量是从电池类的能源得到的时候)。
另外,由于LDPC码的性质,当解码LDPC编码信号时,任意数量的需要的并行处理和结构可用来进一步增加数据吞吐量。例如,在并行结构中,可用多个校验引擎和多比特引擎并行处理多个子矩阵。
如果想实施另外的实施例,在比特节点处理时,在更新了比特边消息的每一列之后,解码处理可操作来更新边消息(例如,在最小和方法中用min1和min2),而不是在最后一列被更新后之后仅仅更新校验边消息。用此解码方法,解可以很快地收敛因此减少所需要的解码迭代的次数。图1和图2分别示意了通信系统100、200的各种实施例的示意图。
图1和图2分别是通信系统的各种实施例的示意图。
参考图1,通信系统100的实施是通信信道199,将在通信信道199的一端的通信设备110(包括有编码器114的发送器112和有解码器118的接收器116)和在通信信道199另一端的通信设备120(包括具有编码器128的发送器和有解码器124的接收器122)。在一些实施例中,通信设备110或120可能仅包括发送器或接收器。通信信道199可用几种不同的媒介来实现(例如,卫星通信系统130用圆盘式卫星电视天线132和134,无线通信信道140用塔142和144和/或本地天线152和154,有线通信系统150和/或光纤通信信道160用电-光(E/O)接口162和光-电(O/E)接口164))。此外,超过一种媒介可实现并互相配合因此形成通信信道199。
为了减少通信系统中不希望的发送错误,常常要用纠错和信道编码方法。一般地,这些纠错和信道编码的方法包括在发送器用编码器和在接收器处用解码器。
参考图2中的通信系统200,在通信信道299的的发送端,消息比特201被提供给发送器297,发送器297能够用编码器和符号映射器220(可分别视为不同的功能模块222和224)将这些消息比特201编码,因此产生离散值调制符号序列203,提供给发送驱动器230,发送驱动器230利用DAC(数模转换器)232来产生连续时间发射信号204,并利用发送滤波器234来产生与通信信道299相称的经滤波的连续时间发送信号205。在通信信道299的接收端,连续时间接收信号206被提供给AFE(模拟前端)260,AFE 260包括接收滤波器262(产生经过滤波的连续时间接收信号207)和ADC(模数转换器)264(产生离散时间接收信号208)。度量计算器270计算符号度量尺209,符号度量尺209被解码器280用来产生离散值调制符号和其中被编码的信息比特的最佳估计值。
上述实施例的解码器可以在实施时包括本发明的各方面和/或实施例。另外,下述的几幅附图描述了其它和特定的实施例(有些得到更详细的描述),可用于支持可根据本发明的某些方面和/或实施例来实施的设备、系统、功能和/或方法。根据本发明的某方面和/或实施例来处理的一种特殊的信号类别是LDPC编码信号。在更详细地描述之前,先对LDPC码做一般性的描述。
图3是LDPC(Low Density Parity Check)码双向图300的实施例的示意图。在本领域中,LDPC码双向图有时也可称为坦纳图(Tanner graph)。LDPC码可视为有二进制奇偶校验矩阵的码,这样矩阵的几乎所有元素都为零值(例如,二进制校验矩阵是稀疏矩阵)。例如,H=(hi,j)M×N可视为是块长度为N的LDPC码的奇偶校验矩阵。
在奇偶校验矩阵的第i列的1的数目可用dv(i)表示,奇偶校验矩阵的第j列的1的数目可用dc(j)代表。如果对于所有的i,dv(i)=dv并且对于所有的j,dc(j)=dc,那么LDPC码就称为(dv,dc)规则LDPC码,否则LDPC码就称为不规则LDPC码。
LDPC码是R.Gallager在以下引用的[1]和M.Luby等在以下引用的[2]中提出的。
[1]Low-Density Parity-Check Codes,R.Gallager著,剑桥,MA:MT出版社,1963年。
[2]“Practical Loss-Resilient Codes”,M.G.Luby,M.Mitzenmacher,M.A.Shokrollahi,D.A.Spielman以及V.Stemann著,Proc.29Symp.Theoryof Computing,1997年,150-159页。
规则LDPC码可用奇偶校验矩阵来表示为双向图300,其左侧节点代表码比特变量(或又称为“可变节点”(或“比特节点”)310在比特解码方法中解码LDPC编码信号),并且右侧节点代表校验方程(或又称为“校验节点”320)。用H定义的LDPC码的双向图300可用N可变节点(例如,N比特节点)和M校验节点来定义。每个N可变节点310刚好有dv(i)个边(例如用标号330所示的边)将比特节点vi 312连接到一个或多个校验节点(在M个校验节点内)。特别展示了边330,将比特节点vi 312连接到校验节点cj 322。dv边的数目(如dv 314所示)可称为可变节点i的度。类似地,M校验节点320的每个校验节点刚好有dc(j)个边(如dc324所示)将此节点连接到一个或多个可变节点(即比特节点)310。dc边的数目可称为校验节点j的度。
在可变节点vi(或比特节点bi)312和校验节点cj322的边330可被e=(i,j)定义,然而,在另一方面,对于特定的边e=(i,j),边的节点也可表示为e=(v(e),c(e))(或e=(b(e),c(e)))。
给定可变节点vi(或比特节点bi),就可定义从节点vi(或比特节点bi)发射的边集Ev(i)={e|v(e)=i}(或Eb(i)={e|v(e)=i});这些边称为比特边,对应于这些比特边的消息称为比特边消息。
给定校验节点ci,就可定义从节点ci辐射出来的边集Ec(j)={e|c(e)=j};这些边称为校验边,对应于这些校验边的消息称为校验边消息。同理,导出的结果可以是|Ev(i)|=dv(或|Eb(i)|=db)并且|Ec(j)|=dc
一般说来,任何被双向图表示的码都可用图码来表征。要注意的是,非规则LDPC码也可用双向图来描述。然而,在非规则的LDPC码中的每个节点集的度可根据某种分布来选择。因此,对于非规则LDPC的不同的两种可变节点vi1和vi2来说,|Ev(i1)|可能不等于|Ev(i2)|。这一关系对于两个校验节点也可成立。非规则LDPC码在上文中引用的M.Luby等在[2]中首次提出。
一般地,用LDPC码的图,LDPC码的参数可以用分布度来定义,如M.Luby等在上文引用的文献[2]以及下列文献[3]中描述:
[3]“The capacity of low-density parity-check code undermessage-passing decoding”,T.J.Richardson和R.L.Urbanke著,IEEETrans.Inform.Theory,47卷,2号,2001年2月,599-618页。
分布可如下面所描述:
让λi代表从度为i的可变节点发射的边的部分,并让ρi代表从度为i的校验节点发射的边的部分。那么,度分布对(λ,ρ)可如下式表示:
Figure G2007101822893D00141
并且
Figure G2007101822893D00142
其中Mv和Mc分别代表可变节点和校验节点的最大的度。
虽然在此描述的实施例用规则LDPC码例子,应该注意到本发明的某些方面和/或实施例也可适用于规则LDPC码和非规则LDPC码。
图4是通信系统400的另一个实施例的示意图。通信系统400包括通信设备410。通信设备410包括解码器420,用来对LDPC编码信号进行基于重叠子矩阵的解码。
通信设备410从与另一个设备490相连的通信信道490接收信号,设备490也可以是另外的通信设备491、存储媒介(例如在硬盘驱动(HDD)应用中)或任何其他设备。一般地,通信设备410可以实现来从任何其他提供LDPC编码信号的设备接收信号。
从通信信道499接收到的信号是经LDPC编码的信号,它可包括各种调制类型,如BPSK、QPSK、8PSK、16QAM、32QAM、64QAM甚至其他调制类型。在经过合适的预处理后(例如,解调、升频或降频转换、数字采样、滤波或任何其他合适类型的预处理,包括在通信设备410的模拟前端(AFE)执行的预处理),所接收信号的数字形式,如标号431所示,可包括信号的同相和积分成分(像在基带信号中),并被解码器420接收。
所接收的信号431提供给度量计算器421。度量计算器421可以计算符号度量尺(例如,在使用高阶(order)的调制信号的情况下),并且然后根据它计算比特度量尺或LLR(对数(log)可能性比率),如标号432所示。例如,当使用更高阶的调制信号,由于星座图和所使用的映射,为每个所接收的符号计算符号度量尺。然后,这些符号度量尺可分解为符号的单个比特的比特度量尺。
这些比特度量尺或LLR 432然后就传送到比特引擎422,首先被用来进行初始化,如标号422a表示。在初始化422a时,比特度量尺或LLR 432本身被用于在比特引擎422内初始化比特边消息。之后,被初始化的比特边消息434通过多路器(MUX)或桶形移位器(BS)429传递到校验引擎423来执行校验边消息的更新(例如,校验节点处理),并且被更新的校验边消息435通过MUX或BS 429到比特引擎422来继续迭代解码处理。当LDPC矩阵H有随机序列改变后的格式时,为了合适地重新排列比特边消息或者校验边消息,可使用MUX。可选地,如果LDPC矩阵H有CSI(Cyclic Sifted Identity,循环移位识别)矩阵,就可在标号429所示的模块中使用BS。在解码处理的过程中,用比特引擎422和校验引擎435将比特边消息434和校验边消息435成功地并且可选地更新。
在每个或选择的解码迭代中,比特引擎422用最近更新过的校验边消息435和比特度量尺或LLR 432本身产生软输出433,并且软输出433被传送到硬限幅器424,产生硬输出/最佳估计438来决定是否LDPC码的所有校验子等于零,如同校验子模块425判定的那样。硬输出436被提供给校验子模块425来产生此决定。如果LDPC码的所有校验子等于零(也就是,有效的码词已经收敛),那么硬输出/最佳估计438可以从解码器420输出。可选地,如果所有的LDPC码不等于零,可用比特引擎422和校验引擎423来执行附加的解码迭代。可选地,可以仅执行固定次数的解码迭代,然后可以从解码器420输出使用该解码迭代次数所生成的硬输出/最佳估计438,而不需校验校验子。
可执行更新以产生校验边消息435的各种方法,包括使用tanh(x)和tanh-1(x)的Gallager函数、最小化处理、最小和处理、最小*(最小星号)处理、最小**(最小双星号)处理和许多其他处理类型。
一个执行LDPC的方法在下列参考文献[4]中有描述:
[4]“Improved Min-Sun Decoding of LDPC Codes Using 2-DimensionalNormalization”,Juntan Zhang,Marc Fossorier,Daqing Gu和Jinjun Zhang著,IEEE Globle Telecommunications Conference(GLOBECOM),第3卷,1187-1192页,2005年11月。
标准LLR(log可能性比率)BP(Belief Propagaion,相信转播)LDPC解码方法的执行如参考文献[4]中所述:
“II标准BP
假设规则二进制(N,K)(dv,dc)LDPC码C用来在AWGN(additive whiteGaussian noise,附加高斯白噪声)信道零平均和功率谱密度N0/2的基础上控制差错。假定具有单位能量的BPSK信号,根据qN=1-2wn,n=1,2,…,N,将码词w=(w1,w2…,wN)映射到发送序列q=(q1,q2…,qN)。如果w=[wn]是C中的码词,并且q=[qn]是相应的发送序列,那么接收到的序列就是q+g=y=[yn],yn=qn+gn,其中1≤n≤N,gn是有0均值且方差为N0/2的统计独立的高斯随机变量。让H=[Hmn]是定义LDPC码的奇偶校验矩阵。我们记参与校验m的比特集为N(m)={n∶Hmn=1},且比特n参与的校验集为M(m)={m∶Hmn=1}。我们也记N(m)\n为排除了比特n的N(m)\n集,且M(m)\n为排除校验m的M(m)集。我们定义与第i次迭代相关的以下符号:
Uch,n:从信道输出yn得到的比特n的对数可能性比率(LLR)。在BP解码时,我们初始设定
Figure G2007101822893D00161
Umn (i):从校验节点m到比特节点n的比特n的LLR。
Vmn (i):从比特节点n到校验节点m的比特n的LLR。
Vn (i):每次迭代时计算得到的比特n的后验LLR。
标准的LLR BP算法如下[3]个步骤执行:
初始化,设定i=1,迭代的最大次数为Imax。对于每个m,n,设定
步骤1:
M(n),处理:
U - ( i ) = 2 tanh - 1 Π tanh ‾ V mn * ( i - 1 ) (1)
V mn ( i ) = U ch , n + Σ m * ∈ M ( m ) \ n U m * n ( i )
处理:
V n ( i ) = U ch , n + Σ m ∈ M ( m ) U mn ( i ) (2)
步骤2:硬判决和停止标准检测:
(i)产生
Figure G2007101822893D00166
Figure G2007101822893D00167
如果
Figure G2007101822893D00168
Figure G2007101822893D00169
如果
Figure G2007101822893D001610
(ii)如果
Figure G2007101822893D001611
或者达到了最大的迭代次数Imax,停止解码迭代然后转到步骤3。否则设定i:=i+1,转到步骤1。
步骤3:输出作为被解码的码词”(参考[4],Zhang等,1187-1188页)
应该注意到参考文献[4]所描述的步骤1的水平步骤,也可称为用各种方法执行的校验码处理,包括最小*(最小星号)处理,最小**(最小双星号)处理或任何其他合适的方法。根据校验码处理,注意到最小**处理是以上的式(1)的tanh和tanh-1计算的真实数学代表。一些有关最小*和最小**处理的细节在下面提供。
对于x和y的实际值,我们可以如下定义最小*的计算。最小*计算包括找到实际上的最小值和自然对数为底的(loge=ln)纠正因子,此后称其为ln。
Min*(x,y)=-ln(e-x+e-y)                                    (式m1)
一般地,我们定义min*(x1,...,xN)=min*(min*(x1,...,XN-1),xN),用归纳法,可以证明下式:
min * ( x 1 , . . . , x N ) = - ln ( e - x 1 + e - x 2 + . . . + e - x N )
min * ( x , y ) = x - ln ( 1 + e x - y ) , x ≤ y y - ln ( 1 + e x - y ) , x > y = min ( x , y ) - ln ( 1 + e - | x - y | ) (式m2)
当处理输入A和B时,最小**处理操作,如下两式所示:
min * * ( A , B ) = ln ( 1 + e ( A + B ) e A + e B ) (式m3)
min**(A,B)=min(A,B)-ln(1+e-|A-B|)+ln(1+e-(A+B))            (式m4)
对于这些最小*和最小**处理操作,也有类似的最大*和最大**处理操作。
特别地观察公式1,对于每个连接到特定校验节点的校验边消息,此校验节点处理包括产生除了正在进行校验节点处理的特定边消息的所有输入(例如,对应于连接到特定校验节点的边的边消息)的乘积。
在上述参考文献[4]中描述的步骤1的“垂直步骤”也可叫做比特节点处理。观察式(2),对于连接到特定比特节点的比特边消息,此比特节点处理部分地包括产生除了正在进行比特节点处理的特定边消息的所有输入(例如,对应于特定比特节点的边的边消息)的和。
另外,上面描述中所用的变量也可如下所称:
Uch,n:也可称为比特度量尺或LLR。
Umn (i):也可称为校验边消息。
Vmn (i):也可称为比特边消息。
Vn (i):也可称为软输出。
上述的在参考文献[4]中的初始化可视为将比特度量尺值(例如,Uch,n)设定为所有比特边消息的初始值(例如,
Figure G2007101822893D00181
)。
在上述参考文献[4]的步骤2中描述的硬判决和停止标准检测步骤也可称为校验子计算,它可以在校验子模块中进行。
除了BP解码方法,还有其他的方法可以对LDPC编码信号进行解码。另外的方法,MS(最小和)解码方法在参考文献[4]中也有描述。
“III.MS解码
标准BP解码中的校验节点处理可能需要大量的计算资源并且可能引起硬件实现困难和大的解码延迟。可以用简单的最小化操作在校验节点处逼近计算来简化BP解码,这就是MS解码中的[6]、[7]。
A.MS算法
在MS解码时,比特节点的操作与标准的BP相同。利用tanh()函数的奇函数性质MS将(1)改成
U mn ( i ) = Π n * ∈ N ( m ) \ n sgn ( V mn * ( i - 1 ) ) · min n * ∈ N ( m ) \ n | V mn * ( i - 1 ) | - - - ( 3 )
来简化校验节点的更新规则。
MS算法比BP解码要简单得多,因为在校验和比特节点处理时仅仅需要比较和相加。在(3)中的符号乘积可以用所有的硬判决{Vmn′ (t-1):n′∈N...(m)\n}的模2加来计算。最小幅度可以用比较的方法找到。”(参考文献[4],Zhang等,第1188页)。
图5A、图5B、图6A、图6B、图7A、图7B、图8A和图8B是对LDPC编码信号进行基于重叠子矩阵的解码的LDPC的实施例的示意图,此LDPC矩阵H有m行子矩阵和n列子矩阵。
LDPC矩阵H,包括多个排列成m行的子矩阵和n列的子矩阵。如果需要的话,每个子矩阵都可有同样的大小,例如每个子矩阵都是x×x大小的子矩阵,因此,LDPC矩阵H的总行数是m×x,LDPC矩阵H的总列数是n×x(例如,LDPC块的大小包括n×x个消息比特)。
参见图5A,LDPC矩阵H的第一列被执行初始化501,可看出,在LDPC矩阵H的每个子矩阵的第一列的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。那些子矩阵的校验边消息都被初始化为零。在这个和另外的实施例中,校验边消息也可被初始化成除零外的值而不脱离本发明的范围和精神。
参见图5B,LDPC矩阵H的第二列子矩阵被执行初始化502,可看出,在LDPC矩阵H的第二列的每个子矩阵的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。同样地,LDPC矩阵H的第一列的子矩阵的校验节点,可用在图5A中刚初始化的比特边消息来处理。
可看出,在子矩阵的比特边消息刚好可利用后,对那子矩阵的校验节点的处理就可开始。在开始整个LDPC矩阵H的节点处理之前,不需要等到整个LDPC矩阵H的所有边消息都可利用。由于对LDPC编码信号进行基于重叠子矩阵的处理,解码速度可以得到很大提高。另外,由于这一新的方法,刚更新的比特边消息被直接用于校验节点处理,实际上不需要消息通过的存储器存储。当用最小和处理方法来更新校验边消息时,相对于与每个校验节点有关的所有的校验边消息,下面描述了只需要少量的存储器来存储3个值(例如,min1、min2和指数值)。
参见图6A,LDPC矩阵H的子矩阵的最后一列被执行初始化601,可看出,在LDPC矩阵H的最后一列的每个子矩阵的比特边消息用相应的那一列的子矩阵的所接收信号计算出的比特度量尺来初始化。同样,现在用先前为那些子矩阵初始化了的比特边消息来处理在LDPC矩阵H的最后一列的左边的子矩阵的校验节点。
参见图6B,如标号602所示,用刚刚在图6A中更新的比特边消息来执行在LDPC矩阵H的子矩阵的最后一列中的子矩阵的校验节点的处理。此时,整个LDPC矩阵H的所有比特边消息已经被校验引擎处理。因此,校验边消息可以被更新用于在下一次迭代使用。
现在,一旦LDPC矩阵H的子矩阵的每一行的子矩阵的边消息已经用比特边消息来更新,当在校验边消息的更新时(也就是,在校验节点处理中)使用最小和处理,就可执行一些优化。当使用最小和处理时,只有多个输入的真正的最小值(min1)和第二最小值(min2)才需要被跟踪,也需要用指数值来指示这些输入值中哪些是真正的最小值(或第二最小值)。当以后选择合适的输出校验边消息如min1或min2时,在校验边消息更新的过程中,这个指数会被使用。这可以节约大量的存储器,因为相对于与每个校验节点有关的校验边消息,只需要存储3个值(例如,min1、min2和指数值)。
在每个LDPC矩阵的子矩阵的每个边消息初始化执行完之后,并且那些子矩阵的校验边消息的更新可利用后,例如当在第一次和接下来的解码迭代中,min1和min2可用来执行接下来的校验边消息的的更新。
参考图7A,其中,LDPC矩阵H的子矩阵的第一列的第一次解码迭代701被执行,可见在LDPC矩阵H的第一列的子矩阵的比特边消息可用校验边消息min1或min2来更新。当为任何比特节点更新比特边消息时,可选择min1或min2中的一个。当前一次迭代的比特边消息(或在第一次迭代的情况下的初始化比特边消息)是所有连接到校验节点中所有比特边消息的最小值,接下来为用于更新比特边消息的特定校验边消息选择min2。否则,就为用于更新比特边消息的特定校验边消息选择min1。
参考图7B,其中,LDPC矩阵H的子矩阵的第二列的第一次解码迭代702被执行,可见在LDPC矩阵H的第二列的每个子矩阵的比特边消息用校验边消息min1或min2来更新。与上面描述的类似,当为任何比特节点更新比特边消息时,可选择min1或min2中的一个。前一次迭代的比特边消息(或在第一次迭代的情况下的初始化比特边消息)是所有连接到校验节点的比特边消息中的最小值时,就为用于更新比特边消息的特定校验边消息选择min2。否则,就为用于更新比特边消息的特定校验边消息选择min1。同时,在LDPC矩阵H的第二列的子矩阵的比特边消息更新时,用在图7A中刚刚更新了的比特边消息来处理在LDPC矩阵H的第一列的每个子矩阵的校验节点。
再次地可看到,在子矩阵的比特边消息刚刚可利用之后,子矩阵的校验节点的处理就可进行。在开始整个LDPC矩阵的所有节点的处理前,不需要等到整个LDPC矩阵H的所有比特边消息可利用。因为对LDPC编码信号进行基于重叠子矩阵的处理,可大大增加解码速度。
参考图8A,其中LDPC矩阵H的子矩阵的最后一列的第一次解码迭代801被执行,可见在LDPC矩阵H的最后一列的子矩阵的比特边消息可用校验边消息min1或min2来更新。在执行LDPC矩阵H的最后一列的子矩阵的比特边的更新时,在LDPC矩阵H的第二到最后一列的每个子矩阵的校验节点用刚刚为那些子矩阵更新的比特边消息来处理。
参考图8B,如标号802所示,LDPC矩阵H的子矩阵的最后一列的子矩阵的校验节点的处理用刚刚在图8A中执行的更新的比特边消息来执行。
此时,整个LDPC矩阵H的所有比特边消息已经被校验引擎处理过。因此,校验边消息可以被更新,从而在下次的解码迭代中使用(例如,min1和min2现在已经根据校验边消息的更新来更新了)。
可见,LDPC矩阵H的子矩阵的合适处理允许基于重叠子矩阵的处理来对LDPC编码信号的快速解码,这是由于以下的事实:对于LDPC矩阵H的每个子矩阵,一旦为那个子矩阵的比特边消息被更新后(或在初始化时被初始化),此子矩阵的校验节点的处理又可开始。
图9、图10、图11、图12、图13、图14、图15、图16和图17是对的LDPC编码信号执行基于重叠子矩阵的解码的实施例的示意图,此LDPC矩阵H有(1)72×72大小的CSI(Cyclic Sifted Identity,循环移位识别)子矩阵;(2)6、2、1的比特度和60、61的校验度和(3)总数为26280个的边数。这几幅图展示了将基于重叠子矩阵的的LDPC解码器应用到具有特定LDPC矩阵H结构的LDPC码。LDPC矩阵H的每个子矩阵用X描述,是全零值的子矩阵(也就是,所有的元素是零值的)。用Sa,b表示的每个子矩阵(其中a和b是整数)是非零的子矩阵,每个用I表示的子矩阵也是非零子矩阵(例如,单位矩阵)。
在其中描述的许多实施例中,某些子矩阵用I表示(例如,标识矩阵)。然而,在不脱离本发明的范围和精神下,每个单位子矩阵可作为改变行列序列的单位子矩阵选择性地实现。换句话说,当用“I”子矩阵时,可用改变序列了的单位子矩阵(例如,Sa,b(其中a和b是整数))来代替插入。
参考图9,在图中,执行LDPC矩阵H的子矩阵的第一列的初始化。可见在LDPC矩阵H的第一列中的6个子矩阵的比特边消息用相应的为那一列的所接收信号计算出的比特度量尺初始化。此6个子矩阵的校验边消息也都初始化为零。在这个和另外的实施例中,校验边消息也可被初始化成除零外的值而不脱离本发明的范围和精神。
这些展示出的第一列的子矩阵是I、S2,1、S3,1、S4,1、S5,1和S6,1。比特引擎的输入是72个6-消息输入(例如,每个子矩阵是72×72大小的子矩阵)。对于每个子矩阵,有72个比特引擎;72个比特中的每个比特引擎都有1比特度量尺输入和6个校验边消息输入。
可选地,实施例可用72个比特引擎,用6个消息输入到每个比特引擎。在这样的可选实施例中,每个比特引擎可以按序处理从LDPC矩阵H的列的6个子矩阵中的每一个输入的6个消息。在此实施例中,可见有72比特引擎(每个子矩阵的每列有一比特引擎)并且需要用65个周期来执行比特节点处理(因为有整个LDPC矩阵H的65个子矩阵的列)。
也应注意到各种实施例可采用各种度的并行处理、串行处理、和/或它们的某种组合。
参见图10,LDPC矩阵H的子矩阵的第二列被执行初始化1000,可看出,在LDPC矩阵H的第二列的6个子矩阵的每一个的比特边消息用相应的那一列的接收到的信号计算出的比特度量尺来初始化。在LDPC矩阵H的第一列的子矩阵的校验节点现在也用之前刚刚在图9中被初始化的比特边消息来处理。
在第一列的校验消息被更新的6个子矩阵被示为I、S2,1、S3,1、S4,1、S5,1和S6,1。并且在第二列的校验消息被更新的6个子矩阵被示为I、S2,2、S3,2、S4,2、S5,2和S6,2。输入到比特引擎中的仍然是72个6-消息输入(例如,每个子矩阵都是72×72大小的子矩阵)并且输入到校验矩阵的是1-消息输入的72×6。如果需要,可像前述的另外的实施例那样用最小和处理。
继续从下一列到右边的列处理,又从下一列到右边的列,等等,因此每一列的比特边消息都被初始化,并且基于初始化后的边消息来处理每行的校验节点。
参见图11,LDPC矩阵H的子矩阵的第三列被执行初始化1100,可看出,在LDPC矩阵H的第三列的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。在LDPC矩阵H的第二列的子矩阵的校验节点现在也用刚刚在图10中被初始化的比特边消息来处理。
参见图12,LDPC矩阵H的子矩阵的第59列被执行初始化1200,可看出,在LDPC矩阵H的第59列的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。同样,在LDPC矩阵H的第58列的子矩阵的校验节点现在也用刚刚被初始化的LDPC矩阵H的第58列的比特边消息来处理。
这初始化的处理一直要持续到LDPC矩阵H的子矩阵的最后一列被处理。
参见图13,LDPC矩阵H的子矩阵的最后一列/第65列被执行初始化1300,可看出,在LDPC矩阵H的最后一列/第65列的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。同样,LDPC矩阵H的倒数第二列/第64列的子矩阵的校验节点现在也用刚刚被初始化的LDPC矩阵H的倒数第二列/第64列的比特边消息来处理。
参见图14和标号1400,一旦LDPC矩阵H的子矩阵的最后一列/第65列的所有子矩阵的比特边消息已经被初始化,然后这些子矩阵的校验节点就被处理。
此时,整个LDPC矩阵H的所有比特边消息已经被校验引擎处理了。因此,校验边消息可以更新来用于下次解码迭代。
在所有的LDPC矩阵H的子矩阵的所有比特边消息被初始化后,并且所有的校验节点都用初始化的比特边消息来处理后,第一次解码迭代就可开始。
如在此和在其他的实施例中所示的那样,当执行最小和处理,相对于与每个校验节点有关的所有校验边消息,只需要存储3个值(也就是,min1、min2和指数值)。对于用相对较大的LDPC码块的LDPC码,这就可以节约大量的存储单元。
参见图15,执行LDPC矩阵H的子矩阵的第一列的第一次解码迭代1500,可看出,LDPC矩阵H的第一列的6个子矩阵中的每一个的比特校验消息,用那些子矩阵最近更新的校验边消息(例如,min1或min2)和那列的所接收的信号计算出的比特度量尺来更新。
参见图16,执行LDPC矩阵H的子矩阵的第二列的第一次解码迭代1600,可看出,LDPC矩阵H的第二列的6个子矩阵中的每一个的比特校验消息,用那些子矩阵最近更新的校验边消息(例如,min1或min2)和那列的所接收的信号计算出的比特度量尺更新。并且,LDPC矩阵H的第一列的子矩阵的校验节点,现在用刚刚在图15中被更新的比特边消息来处理。
参见图17,执行LDPC矩阵H的子矩阵的第三列的第一次解码迭代1700,可看出,LDPC矩阵H的第三列的6个子矩阵中的每一个的比特校验消息,用那些子矩阵最近更新的校验边消息(例如,min1或min2)和那列的所接收的信号计算出的比特度量尺更新。并且,LDPC矩阵H的第二列的子矩阵的校验节点,现在用刚刚在图16中被更新的比特边消息来处理。
这一处理相应地要持续到遍历了LDPC码矩阵H的子矩阵的所有列。
图18是对LDPC编码信号进行基于重叠子矩阵解码的可选实施例的示意图,此LDPC矩阵H有(1)72×72大小的CSI(Cyclic Sifted Identity,循环移位识别)子矩阵;(2)6、2、1的比特度和60、61的校验度和(3)总数为26280个的边数。
参见图18,LDPC矩阵H的子矩阵的第一列被执行初始化1800,可看出,在LDPC矩阵H的第一列的6个子矩阵的比特边消息用相应的那一列的所接收信号计算出的比特度量尺来初始化。这6个子矩阵的校验边消息都被初始化为零。在这个和另外的实施例中,校验边消息也可被初始化成除零外的值而不脱离本发明的范围和精神。
第一列的子矩阵是I、S2,1、S3,1、S4,1、S5,1和S6,1。比特引擎的输入是65个6消息输入(例如,每个子矩阵是72×72大小的子矩阵)
在这可选实施例中,整个LDPC矩阵H的每个子矩阵有一个比特引擎。也就是说,使用了65个比特引擎(每个子矩阵列使用一个)。在本实施例中,可看出有65个比特引擎,(整个LDPC矩阵H每个子矩阵列有一比特引擎)并且需要用72个周期来执行比特节点处理(因为整个LDPC矩阵H的每个子矩阵列有72列)。
在第一个周期中,处理每个子矩阵的第一个相应的列(如阴影部分所示)。特别参考此图,65个比特引擎中的第一个比特引擎处理LDPC矩阵H的第一子矩阵列的一列,同时65个比特引擎中的第二个比特引擎处理LDPC矩阵H的第二子矩阵列的一列,如此等等,因此同时处理LDPC矩阵H的每个子矩阵列的一列。因为在每个子矩阵中有72列,65个比特引擎需要72个周期来执行整个LDPC矩阵H的比特节点处理。
虽然每个子矩阵的的最左边的列用阴影表示,应该注意当执行比特节点处理时,可以在每个相应的子矩阵列中按任何期望的次序对单个的列执行处理。
另外,应该注意到在不脱离本发明的范围和精神情况下,可采用其他各种实施例。例如,任意数目的“n”比特引擎可以可选地提供给整个LDPC矩阵H中的每个子矩阵列(相对于在图18中每个子矩阵的列只需1比特引擎)。
如果n=2,可用130个比特引擎,因此可有2比特引擎提供给LDPC矩阵H的每个子矩阵列。130个比特引擎中的第一和第二比特引擎可分别处理LDPC矩阵H的第一子矩阵列的两列,同时130个比特引擎中的第三和第四比特引擎可分别处理LDPC矩阵H的第二子矩阵列的两列,如此等等,因此LDPC矩阵H的每个子矩阵列的两列可同时处理。因为在每个子矩阵中有72列,130个比特引擎需要36个周期来执行整个LDPC矩阵H的比特节点处理。明显地,另外的实施例也可在不脱离本发明的范围和精神情况下实现。
如果n=3,可用195个比特引擎,因此可有3比特引擎提供给LDPC矩阵H的每个子矩阵列。195个比特引擎中的第一、第二和第三比特引擎可分别处理LDPC矩阵H的第一子矩阵列的三列,同时195个比特引擎中的第四、第五和第六比特引擎可分别处理LDPC矩阵H的第二子矩阵列的三列,如此等等,因此LDPC矩阵H的每个子矩阵列的三列可同时处理。因为在每个子矩阵中有72列,195个比特引擎需要24个周期来执行整个LDPC矩阵H的比特节点处理。明显地,另外的实施例也可在不脱离本发明的范围和精神情况下实现。
上述的一些实施例(例如,参考图18所描述的)描述了每个子矩阵列中的多个单独的列被同时处理。然而,也应该注意到,多个子矩阵列也可同时处理。例如,如果每个子矩阵列是72列宽(例如,每个子矩阵是72×72的子矩阵),就可同时处理144列(例如,2个子矩阵列)。在此例中,如果整个LDPC矩阵是由子矩阵列和子矩阵行组成的,每个子矩阵列是LDPC矩阵H宽的72列,并且每个子矩阵行是LDPC矩阵H宽的72行,这样,任何整数目的子矩阵可以同时处理。一般而言,任意数量的列(例如,n×(子矩阵的列数#))可同时被处理。在这个例子中,每个子矩阵列72是是LDPC矩阵H宽的72列,可同时处理任意数量的列(nx72)。如果两个子矩阵列同时被处理,就可用144个比特引擎,每个引擎有6个消息输入。就有72×6个校验引擎,每个校验引擎可接收2个消息输入。
也注意到以上提供的例子虽然是对应于比特节点处理,明显地,相应度的并行处理、按序处理和/或其组合可同样地用到校验节点处理和比特节点处理。例如,多个校验节点的每个校验引擎可有数量增加的输入(例如,2倍的输入,或“n”倍的输入,如在图9开始描述的那样)。当执行比特节点处理和校验节点处理时,设计者在串行处理和/或并行处理的数量上提供了很广程度的灵活性。
图19是使用最小和处理的LDPC解码器1900的实施例的示意图。LDPC解码器1900接收信号,据此计算比特度量尺或LLR,如标号1901所示。
那些比特度量尺或LLR 1901然后传送到LLR存储器1911和LLR存储器1912的往复式安排中。当比特度量尺或LLR 1901被写入LLR存储器1912中,另外的比特度量尺或LLR被从LLR存储器1912中读出,反之相同。
比特度量尺或LLR 1901从LLR存储器1911和LLR存储器1912输出后,被提供给多个比特引擎1920在第一次执行初始化时使,然后在使用多个比特引擎1920更新比特边消息时使用。当初始化时,比特度量尺或LLR1901本身用于在多个比特引擎1920中初始化比特边消息。此后,初始化的比特边消息被传到多个桶型移位器(图中标号为1930)中,然后到多个校验引擎1940中来执行校验边消息的更新(例如,校验节点处理)。BS 1930可用来将比特边消息适当地排列,来便于在多个校验引擎1940中用来更新校验边消息。在一个例子中,当用来解码LDPC编码信号的LDPC矩阵H的子矩阵是CSI子矩阵时,BS 1930就可操作来将比特边消息合适地排列起来。然而,在可选实施例中,如果LDPC矩阵H的用来解码LDPC编码信号的子矩阵不是CSI格式,合适的多路器放在BS 1930的地方用来适当地排列比特边消息。
校验边消息在多个校验引擎1940内被更新后,被传到多个桶型移位器中(图中所示为1950)然后传回到多个比特引擎1920来执行比特边消息的更新(例如,比特节点处理)。BS 1950可用来将校验边消息适当地排列,便于在多个比特引擎1920中用来更新比特边消息。在一个例子中,当用来解码LDPC编码信号的LDPC矩阵H的子矩阵是CSI子矩阵时,BS 1950就可操作来将校验边消息合适地排列起来。
多个比特引擎1920和多个校验引擎1950,与多个BS 1930和多个BS 1950一起继续迭代解码处理。在迭代解码过程中,用多个比特引擎1920和多个校验引擎1940来接连交替地更新比特边消息和校验边消息。
在每个或选择的解码迭代时,多个比特引擎1920用最近更新了的校验边缘消息以及比特度量尺或LLR 1901本身来产生软输出,并且此软输出可以经受硬限幅,并被传递到输出缓冲器1970(例如,硬限幅可以在输出缓冲器1970中执行),输出缓冲器1970可输出硬输出/最佳估计/解码数据1999。
软输出也可经受硬限制并且被传送到校验子模块1960,校验子模块1960可以决定LDPC码的所有校验子是通过还是不通过(例如,是否所有的校验子等于零或不等于零)。如果LDPC码的所有校验子通过(如标号1903所示),硬输出/最佳估计/解码数据1999可以从输出缓冲器1970输出。可选地,如果一个或多于一个的LDPC码不通过(如标号1902所示),可进行另外的解码迭代。可选地,可简单地执行固定数目的解码迭代,并且用此固定数目的解码迭代得到的硬输出/最佳估计/解码数据1999可以从输出缓冲器输出而不需校验校验子。
或许在图19的实施例中最引人注意的是不需要消息通过存储器来存储在多个比特引擎1920和多个校验引擎1940之间通过的所有校验边消息或所有比特边消息。
在本实施例中,比特度量尺或LLR 1901中的每一个都可有6比特大小。每个LLR存储器1911和LLR存储器1912可以存储65×72×6比特的数据,并且72比特度量尺或LLR 1901可从LLR存储器1911和1912中输出(也就是,从那里输出72×6比特)。多个比特引擎1920包括72比特引擎,每个可处理6输入。多个BS 1930和多个BS 1950中的每一个可以实现来处理72比特的6×6输入,多个校验引擎1940包括每个可处理1-输入的72×6校验引擎。从多个校验引擎1940提供给多个比特引擎1920的校验边消息可以72×6×6比特(72×6边)的形式。
从多个比特引擎1920提供给校验子模块1960和输出缓冲器1970的解码输出可以是72比特的形式。
图20和图21描述了一些执行更新比特边消息(例如,比特节点处理)和更新校验边消息(例如,校验节点处理)可能的实施例。
图20展示了可在LDPC解码中使用的比特节点处理2000的实施例。寄存器(在图中以REG来表示)被实现来接收比特度量尺或LLR 2001和m校验边消息2002。基于比特节点处理2000是否仅执行正常解码迭代的初始化,多路复用器(MUX)用来在m校验边消息2002和多个零2021(或另外的预先设定好的值)之间作选择。MUX的输出被加到从顶部寄存器输出的比特度量尺或LLR2001,并且,此和值提供给寄存器。MUX的输出传送到被竖直排列的省略号(也就是,。。。)隔开的其它REG中的每一个。为了更新每个比特边消息,从顶部寄存器的输出中减去MUX的输出,然后传送到相应的饱和和比例缩放模块。
例如,为了更新比特边消息1 2041,从在垂直排列的省略号顶部的寄存器输出的值中减去MUX的输出,并且结果提供给饱和和比例模块2030,然后到其后的寄存器。
可执行类似的连接和处理,从而,为特定的比特节点更新比特边消息,对应于连接到此特定比特节点的除了要更新的比特边消息之外的所有比特边消息被使用。根据此图的功能性可以达到此功能。
图21展示了可在LDPC解码中使用的校验节点处理2100的实施例。此校验节点处理2100使用了最小和处理。一个或多个比特边消息2101被提供给寄存器,此寄存器的输出被提供给模块2110,它可将2的余数转成符号-幅度格式,然后数的符号-幅度,如标号2111所示,从模块2110输出。比较模块2120设定并输出比特边消息2101中真正的最小值(用标号2121表示的min1)和第二最小值(用标号2122表示的min2)。在处理了所有输入的比特边消息后,所有输入的真正的最小值(用标号2131表示的min1_all)和第二最小值(用标号2132表示的min2_all)被输出到MUX。根据哪个校验边消息被更新,所有的输入的真正最小值(用标号2131表示的min1_all)和第二最小值(用标号2132表示的min2_all)提供给模块2140,模块2140可将将符号-幅度格式的数转换为2的余数并在此执行任何合适的比例缩放。
此外,输入边比特消息2101也被提供给与两个寄存器结合操作的XOR(异或模块)来为所有的输入比特边消息2101提供符号比特(以sign_all 2151表示)。输入比特边消息2101也提供给FIFO(先输入/先输出)模块。FIFIO的输出和sign_all 2151然后就被提供给输出符号比特2152的另外的XOR模块。这个符号比特2152提供给模块2140。
模块2140可将符号-幅度格式的数字转换成2的余数并执行合适的比例放大,模块2140从MUX接收输入和符号比特2152来产生更新了的校验边消息2102。
也注意到除了在上面所述的比特节点处理2000和校验节点处理2100之外,可以在不超出本发明的范围和精神下使用各种广泛的设计来执行比特节点处理和校验节点处理。
图22展示了用并行排列的比特引擎和并行排列的校验引擎的LDPC解码器2200的实施例。接收到的信号2231提供给度量计算器2221,度量计算器2221可以计算符号度量尺(例如,在使用了更高阶的调制信号的情况下)然后计算比特度量尺或从那里计算LLR(对数概率比率),如标号2232所示。例如,当使用了更高阶的调制信号时,考虑所使用的星座形状和映射,为每个接收到的符号来计算符号度量尺。然后,这些符号度量尺可以为单个符号比特分解成比特度量尺。
这些比特度量尺或LLR2232可以传送到并行排列的校验引擎和比特引擎,如标号2220所示。多个比特引擎2222a、2222b-2222c首先用矩阵或LLR2232来执行初始化,如标号2222a所示。在初始化2222a时,比特度量尺或LLR2232本身用来初始化在多个比特引擎2222a、2222b-2222c中的比特边消息。此后,这些初始化的消息通过多路复用器(MUX)或BS(Barrel Shifter,桶形移位器)2229传送到多个校验引擎2223a、2223b-2223c来执行校验边消息的更新(例如,校验节点处理),并且被更新的校验边消息通过MUX或BS2229传送回多个比特比特引擎2222a、2222b-2222c来继续迭代解码处理。
如在上述的另一个实施例中,当LDPC矩阵H有随机排列格式时,为了重新排列比特边消息或校验边消息,就可用MUX。可选地,如果LDPC矩阵H有CSI(循环移位标识)格式的矩阵,就可在如标号2229所示的模块中使用BS。
一般说来,比特校验消息2234和校验边消息2235是在迭代解码时用多个比特引擎2222a、2222b-2222c和多个校验引擎2223a、2222b-2222c按序交替地更新。
在每个或选定的解码迭代时,多个比特引擎2222a、2222b-2222c用最近更新的校验边消息和比特度量尺或LLR 2221本身产生软输出2223,并且此软输出2233传送到硬限幅器2224,产生硬输出/最佳估计2238来判定LDPC码的所有校验子是否等于零,如校验子模块2225所判定。硬输出2236被提供给校验子模块2225来进行此判定。如果LDPC码的所有校验子等于零,就从解码器2220输出硬输出/最佳估计值2238。选择性的,如果LDPC码的所有校验子不等于零,就可用多个比特引擎2222a、2222b-2222c和多个校验引擎2223a、2223b-2223c进行另外的解码迭代。可选地,可以执行固定次数的解码迭代,然后,使用该次数的解码迭代而生成的硬输出/最佳估计2238可从解码器2220输出而不需校验校验子。
例如在另外的实施例中,有各种方法来执行更新产生校验边消息,包括使用tanh(x)和tanh-1(x)的Gallager函数、最小处理、最小和处理、最小*(最小-星号)处理、最小**(最小双星号)处理和其他许多处理类型。
图23是LDPC矩阵H 2300的实施例的示意图,说明解码处理如何应用于其1部分、许多或所有的子矩阵。在上述的许多实施例中,特定矩阵的所有的比特消息和校验边消息分别被更新。然而,在可选实施例中,仅有一个或多个子矩阵的部分被处理。例如,一个或多个子矩阵的第一部分可以被比特边消息(例如,如标号2301所示)更新,然后,一个或多个子矩阵的第一部分可以被对应于此第一部分的校验边消息更新(例如,标号2302所示)。再次地,如在另外的实施例中,包括一个以上比特引擎和一个以上校验引擎的并行结构可用来执行多个子矩阵的多个部分的同时处理。
图24是LDPC矩阵H 2400的实施例的示意图,H矩阵的矩阵结构被设计用来由基于重叠子矩阵的LDPC解码器进行有效的解码处理。如在另外的实施例中,LDPC矩阵H的以“X”表示的每个子矩阵,是全零的子矩阵(也就是,其中的所有元素等于零)。另外的每个矩阵是非零的子矩阵,并且那些非零值子矩阵用NZ子矩阵表示。在本实施例中,非零子矩阵域(在LDPC矩阵H的左上角)包括多个非零子矩阵和多个其他非零子矩阵,所述多个其他非零子矩阵沿LDPC矩阵H的对角,从右下角部分的底部右角延伸。
在本实施例中,每个非零子矩阵可以是方形矩阵(例如,x×x的子矩阵,其中,x是整数)。这一特定的LDPC矩阵H的结构很适合于基于重叠子矩阵的LDPC解码。如果需要,一旦构成了LDPC矩阵H的结构,可执行合适的所期望的行和列的序列改变,来排列LDPC矩阵H以适合广泛的各种应用,包括随机分布的子矩阵、CSI类型的子矩阵、和/或LDPC矩阵H的任何其他结构类型。
图25是用来进行LDPC矩阵H的行和列序列改变、来将其变成类似图24的形式的装置2500的实施例的示意图。装置2500包括处理模块2520和存储器2510。存储器2510与处理模块相连,且存储器2510可存储使处理模块2520可执行各种功能的操作指令。处理模块2520可以用其中所述的任何合适方法来执行合适的处理来产生与至少一个LDPC码对应的至少一个LDPC矩阵。在一个实施例中,处理模块2520可执行行和列的序列改变,来将第一LDPC矩阵H 2502转换成第二LDPC矩阵H 2504。第一LDPC矩阵H 2502包括随机分布的包括所有零值元素的子矩阵。
一个包括这种格式的LDPC矩阵H的例子,根据DVB-S2来使用。例如,LDPC编码的信号继续用在许多较新的应用领域中。其中一个这样的应用领域是数字视频广播。数字视频广播工程(DVB)是超过35个国家的超过260个广播公司、制造商、网络运营者、软件开发商、制订规章的实体所组成的工业引领的联盟,旨在设计全球数字电视和数据服务的全球标准。关于DVB的公共消息可在下列因特网地址得到:
“http://www.dvb.org/”
DVB-S2(也就是,DVB-卫星版2)标准已经被数字视频广播工程(DVB)的成员开发出了。
处理模块2520可用共享的处理设备、单个处理设备或多个处理设备来实施。这样的处理设备可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路和/或任何基于操作指令处理(模拟和/或数字)信号的器件。存储器2510可以是单独的存储器件或多个存储器件。如此的存储器件可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、和/或任何存储数字消息的器件。应注意当处理模块1120通过状态机、模拟电路、数字电路、和/或逻辑电路来实现其一个或多个功能时,存储相应的操作指令的存储器嵌入到包括状态机、模拟电路、数字电路、和/或逻辑电路的电路当中。
当LDPC矩阵H有包括多个随机分布的包括全零元素的子矩阵,这就需要大量的存储器来存储LDPC矩阵H。例如,DVB-S2的LDPC矩阵H,包括60行,但LDPC矩阵H的度只有10(10),因此,LDPC矩阵中只有10行包括非零值。尽管如此,如果DVB-S2的整个LDPC矩阵H需要被存储的话,就比如果LDPC矩阵H的一些被优化、因此LDPC矩阵H不需明确地存储的情况下需要更多的存储器。例如,如果第一LDPC矩阵H 2502(包括随机分布的包括所有零值的元素的子矩阵)转换成第二LDPC矩阵H 2504(是如根据图24的实施的非零子矩阵的非零子矩阵的更多对角组),然后就可更多地节约存储器,因为只需存储左上角的非零位置。所有的全零值的子矩阵可用更有效的方法来存储,如标记法或一些另外的存储器优化法(因为那些所有全零的子矩阵没有包含消息)。
如果在一些实施中,LDPC码的奇偶校验矩阵可从装置2500提供给可用此LDPC码来执行纠错码的通信系统。此LDPC码的奇偶校验矩阵也可从装置2500提供给各种各样的通信系统。采用这样的方式,提供了完整的方法,通过这种方法,LDPC码的奇偶校验矩阵在硬件中构成,并提供给一个或多个在通信系统中实现以使用LDPC码的通信设备。
图26是对LDPC编码信号进行基于重叠子矩阵的解码的方法的实施例的示意图。方法2600从计算对应于多个已经编码成LDPC编码信号的多个比特度量尺开始,如模块2610所示。然后,方法2600在第一时间对对应LDPC矩阵的第一子矩阵的比特边消息进行初始化,如模块2620所示。
在第二时间,模块2631和2632的操作可同时发生。如在模块2631中所示,方法2600用对应于第一子矩阵的被初始化的比特边消息,更新对应于LDPC矩阵的第一子矩阵的校验边消息。同样,方法2600初始化对应于LDPC矩阵的第二子矩阵的比特边消息。
在第三时间,方法2600用对应于第二子矩阵的被初始化的比特边消息更新对应于第二子矩阵的校验边消息,如模块2640所示。
在第四时间,方法2600用对应于LDPC矩阵的第一子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第一子矩阵的比特边消息,如模块2650所示。
在第五时间,模块2661和2662的操作可同时发生。如模块2661所示,方法2600使用对应于LDPC矩阵的第一子矩阵的被更新比特边消息,来更新对应于LDPC矩阵的第一子矩阵的校验边消息。同样地,如模块2662所示,方法2600用对应于LDPC矩阵的第二子矩阵的被更新校验边消息来更新对应于LDPC矩阵的第二子矩阵的比特边消息。
下列表格用来展示(1)现有技术传统的最小和LDPC解码(也就是说,这不是在此描述的用最小和处理来更新校验边消息的新的基于重叠子矩阵的LDPC解码器)和(2)新的基于重叠子矩阵的LDPC解码器的比较。
  LDPC解码器类型   单元类型   时钟   时间边缘   面积(mm<sup>2</sup>)   功率   未编码数据吞吐量
 现有技术的传统最小和LDPC解码器   低/标准Vt   400/200MHz   20%   3.5   0.69W   2.08Gbps
 基于重叠子矩阵的LDPC解码器:6输入的72比特引擎(6比特)   标准Vt   250MHz   20%   1.71   0.33W   2.02Gbps
可见,未编码数据吞吐量和这些LDPC解码器(即2.08Gbps和2.02Gbps)是可比较的。然而,基于重叠子矩阵的LDPC解码器需要的功率是现有技术中传统的最小和LDPC解码器所需功率的一半(即,0.33W vs.0.69W)。同样地,由于大大地减少了基于重叠子矩阵的LDPC解码器的存储器需求,这两个解码器类型的面积很不相同,并且基于重叠子矩阵的LDPC解码器只需要现有技术的传统的最小和LDPC解码器所需的一半面积(即,1.71平方毫米vs.3.5平方毫米)。
以上借助于说明指定的功能和关系的方法步骤对本发明进行了描述。为了描述的方便,这些功能组成模块和方法步骤的界限和顺序在此处被专门定义。然而,只要给定的功能和关系能够适当地实现,界限和顺序的变化是允许的。任何上述变化的界限或顺序应被视为在权利要求保护的范围内。
以上还借助于说明某些重要功能的功能模块对本发明进行了描述。为了描述的方便,这些功能组成模块的界限在此处被专门定义。当这些重要的功能被适当地实现时,变化其界限是允许的。类似地,流程图模块也在此处被专门定义来说明某些重要的功能,为广泛应用,流程图模块的界限和顺序可以被另外定义,只要仍能实现这些重要功能。上述功能模块、流程图功能模块的界限及顺序的变化仍应被视为在权利要求保护范围内。
本领域技术人员也知悉此处所述的功能模块,和其它的说明性模块、模组和组件,可以如示例或由分立元件、特殊功能的集成电路、带有适当软件的处理器及类似的装置组合而成。
此外,虽然描述细节的目的是清楚和明白上述实施例,本发明并不限于这些实施例。任何本领域技术人员知悉的、对这些特征和实施例进行各种改变或等效替换而得的技术方案,都属于本发明的保护范围。

Claims (10)

1.一种解码器,其特征在于,用来对低密度奇偶校验编码信号执行基于重叠子矩阵的解码,所述解码器包括:
比特引擎;
校验引擎;并且其中:
在第一时间内,比特引擎用来更新对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息;
在第二时间内,校验引擎使用对应于第一子矩阵的被更新比特边消息、更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;并且比特引擎可用来更新对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息;
在第三时间内,校验引擎使用对应于第二子矩阵的被更新比特边消息、更新对应于第二子矩阵的校验边消息,并且比特引擎可用来更新对应于低密度奇偶校验矩阵的第三子矩阵的比特边消息;并且
解码器用对应于第一子矩阵、第二子矩阵和第三子矩阵中至少一个的最近更新的比特边消息,对低密度奇偶校验编码信号中的信息比特做出最佳估计。
2.根据权利要求1所述的解码器,其特征在于,进一步包括:
度量计算器,用来计算对应于已经被编码为低密度奇偶校验编码信号中的多个比特的多个比特度量尺,其中:
比特引擎用于使用多个比特度量尺、初始化对应于第一子矩阵、第二子矩阵、第三子矩阵中至少一个的比特边消息。
3.根据权利要求1所述的解码器,其特征在于,当更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息时,校验引擎用最小和处理;
最小和处理包括从对应于第一子矩阵的被更新比特边消息中,选择第一最小值或第二最小值。
4.根据权利要求1所述的解码器,其特征在于,当更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息时,所述校验引擎使用最小*处理,其中,所述最小*处理是以下面公式来计算的:
min * ( x 1 , . . . , x N ) = - ln ( e - x 1 + e - x 2 + . . . + e - x N ) .
5.一种通信设备,其特征在于,用于从通信信道中接收低密度奇偶校验编码信号,所述通信设备包括:
度量计算器,计算对应于已经编码为低密度奇偶校验编码信号中的多个比特的多个比特度量尺;
比特引擎,在第一时间,可利用多个比特度量尺,初始化对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息;
校验引擎;其中:
在第二时间,校验引擎用对应于第一子矩阵的被初始化比特边消息,来更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;并且比特引擎用多个比特度量尺,初始化对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息;
在第三时间,校验引擎用对应于第二子矩阵的被初始化比特边消息来更新对应于第二子矩阵的校验边消息;
在第四时间,比特引擎用对应于低密度奇偶校验矩阵的第一子矩阵的被更新校验边消息,来更新对应于低密度奇偶校验矩阵第一子矩阵的比特边消息;
在第五时间内,校验引擎用对应于低密度奇偶校验矩阵的第一子矩阵的被更新比特边消息来更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;且比特引擎用对应于低密度奇偶校验矩阵的第二子矩阵的被更新校验边消息来更新对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息;
6.根据权利要求5所述的通信设备,其特征在于,所述第四时间是第三时间。
7.根据权利要求5所述的通信设备,其特征在于,
比特引擎是多个比特引擎的第一比特引擎;
校验引擎是多个校验引擎的第一校验引擎;
多个比特引擎安排来为低密度奇偶校验矩阵的多个子矩阵同时进行并行比特边更新处理;且
多个校验引擎安排来为低密度奇偶校验矩阵的多个子矩阵同时进行并行校验边更新处理。
8.一种对低密度奇偶校验编码信号执行基于重叠子矩阵的解码方法,其特征在于,所述方法包括:
计算对应于已经编码为低密度奇偶校验编码信号的多个比特的多个比特度量尺;
在第一时间,初始化对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息;
在第二时间:用对应于第一子矩阵的被初始化比特边消息,来更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;并且初始化对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息;
在第三时间,用对应于第二子矩阵的被初始化比特边消息来更新对应于第二子矩阵的校验边消息;
在第四时间,用对应于低密度奇偶校验矩阵的第一子矩阵的被更新校验边消息来更新对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息;
在第五时间内,用对应于低密度奇偶校验矩阵的第一子矩阵的被更新比特边消息来更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;用对应于低密度奇偶校验矩阵的第二子矩阵的被更新校验边消息来更新对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息;
在第六时间,用对应于低密度奇偶校验矩阵的第一子矩阵和低密度奇偶校验矩阵的第二子矩阵中至少一个的被最近更新的比特边消息,对低密度奇偶校验编码信号中的信息做出最佳估计。
9.根据权利要求8所述的方法,其特征在于,用对应于低密度奇偶校验矩阵的第一子矩阵的被更新校验边消息来更新对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息,所述更新是用比特引擎执行的;并且所述比特引擎将对应于低密度奇偶校验矩阵的第一子矩阵的被更新比特边消息直接提供校验引擎,校验引擎用对应于低密度奇偶校验矩阵的第一子矩阵的被更新比特边消息,来执行对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息的更新。
10.一种解码器,其特征在于,用来对低密度奇偶校验编码信号执行基于重叠子矩阵的解码,所述解码器包括:
比特引擎;
校验引擎;并且其中:
在第一时间内,比特引擎用来更新对应于低密度奇偶校验矩阵的第一子矩阵的比特边消息;
在第二时间内,校验引擎使用对应于第一子矩阵的被更新比特边消息、使用最小和处理来更新对应于低密度奇偶校验矩阵的第一子矩阵的校验边消息;并且比特引擎可用来更新对应于低密度奇偶校验矩阵的第二子矩阵的比特边消息。
在第三时间内,校验引擎可使用对应于第二子矩阵的被更新比特边消息、使用最小和处理来更新对应于第二子矩阵的校验边消息,并且比特引擎可用来更新对应于低密度奇偶校验矩阵的第三子矩阵的比特边消息;并且解码器可用对应于第一子矩阵、第二子矩阵、第三子矩阵中至少一个的最近更新的比特边消息,对低密度奇偶校验编码信号的消息做出最佳估计。
CN2007101822893A 2006-10-02 2007-10-08 解码设备及方法 Active CN101159436B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US84883406P 2006-10-02 2006-10-02
US60/848,834 2006-10-02
US11/709,078 US7644339B2 (en) 2006-10-02 2007-02-21 Overlapping sub-matrix based LDPC (low density parity check) decoder
US11/709,078 2007-02-21

Publications (2)

Publication Number Publication Date
CN101159436A CN101159436A (zh) 2008-04-09
CN101159436B true CN101159436B (zh) 2010-04-21

Family

ID=39012268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101822893A Active CN101159436B (zh) 2006-10-02 2007-10-08 解码设备及方法

Country Status (6)

Country Link
US (3) US7644339B2 (zh)
EP (1) EP1909394A3 (zh)
KR (1) KR100915368B1 (zh)
CN (1) CN101159436B (zh)
HK (1) HK1121595A1 (zh)
TW (1) TWI371168B (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245217A1 (en) * 2006-03-28 2007-10-18 Stmicroelectronics S.R.L. Low-density parity check decoding
KR100864838B1 (ko) * 2006-12-05 2008-10-23 한국전자통신연구원 저밀도 패리티 검사 부호의 검사노드를 갱신하는 방법 및장치
KR100938068B1 (ko) * 2007-01-30 2010-01-21 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
TW200838160A (en) * 2007-03-09 2008-09-16 Univ Nat Chiao Tung Cyclic comparison method of low density parity check decoder
KR101227514B1 (ko) * 2007-03-15 2013-01-31 엘지전자 주식회사 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
US8359522B2 (en) * 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8010881B2 (en) * 2007-07-02 2011-08-30 Broadcom Corporation Multi-code LDPC (low density parity check) decoder
JP4596027B2 (ja) * 2008-03-25 2010-12-08 ブラザー工業株式会社 通信システム
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
WO2009156935A1 (en) * 2008-06-23 2009-12-30 Ramot At Tel Aviv University Ltd. Using damping factors to overcome ldpc trapping sets
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US20100037121A1 (en) * 2008-08-05 2010-02-11 The Hong Kong University Of Science And Technology Low power layered decoding for low density parity check decoders
EP2223431A1 (en) * 2008-08-15 2010-09-01 Lsi Corporation Ram list-decoding of near codewords
US8145986B2 (en) * 2008-09-22 2012-03-27 Broadcom Corporation Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
US8161345B2 (en) 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
US9356623B2 (en) 2008-11-26 2016-05-31 Avago Technologies General Ip (Singapore) Pte. Ltd. LDPC decoder variable node units having fewer adder stages
US8335979B2 (en) * 2008-12-08 2012-12-18 Samsung Electronics Co., Ltd. Contention-free parallel processing multimode LDPC decoder
US8347167B2 (en) * 2008-12-19 2013-01-01 Lsi Corporation Circuits for implementing parity computation in a parallel architecture LDPC decoder
CN101903890B (zh) 2009-03-05 2015-05-20 Lsi公司 用于迭代解码器的改进的turbo均衡方法
JP2010212934A (ja) * 2009-03-10 2010-09-24 Toshiba Corp 半導体装置
JP5440836B2 (ja) * 2009-03-24 2014-03-12 ソニー株式会社 受信装置及び方法、プログラム、並びに受信システム
KR101321487B1 (ko) 2009-04-21 2013-10-23 에이저 시스템즈 엘엘시 기입 검증을 사용한 코드들의 에러-플로어 완화
US8578256B2 (en) * 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder
KR100953936B1 (ko) * 2009-04-28 2010-04-22 엘아이지넥스원 주식회사 Ldpc 복호화를 위한 복호화 방법 및 장치
US8677209B2 (en) * 2009-11-19 2014-03-18 Lsi Corporation Subwords coding using different encoding/decoding matrices
US8352847B2 (en) * 2009-12-02 2013-01-08 Lsi Corporation Matrix vector multiplication for error-correction encoding and the like
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8621289B2 (en) 2010-07-14 2013-12-31 Lsi Corporation Local and global interleaving/de-interleaving on values in an information word
JP5310701B2 (ja) * 2010-10-29 2013-10-09 株式会社Jvcケンウッド 復号装置および復号方法
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
US20130139022A1 (en) * 2011-11-28 2013-05-30 Lsi Corporation Variable Sector Size LDPC Decoder
US20130139023A1 (en) * 2011-11-28 2013-05-30 Lsi Corporation Variable Sector Size Interleaver
US9037938B2 (en) * 2012-10-30 2015-05-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Hardware architecture and implementation of low power layered multi-level LDPC decoder
RU2012146685A (ru) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн База данных наборов-ловушек для декодера на основе разреженного контроля четности
KR102068030B1 (ko) * 2012-12-11 2020-01-20 삼성전자 주식회사 메모리 컨트롤러 및 그 동작방법
WO2015041480A1 (en) * 2013-09-18 2015-03-26 Samsung Electronics Co., Ltd. Transmitter and signal processing method thereof
KR102202385B1 (ko) * 2013-09-18 2021-01-13 삼성전자주식회사 송신 장치 및 그의 신호 처리 방법
TWI536749B (zh) * 2013-12-09 2016-06-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置與記憶體控制電路單元
CN105680877B (zh) * 2014-11-19 2019-06-28 香港理工大学 一种cc-qc-ldpc码的构建方法及译码装置
CN104579362B (zh) * 2014-12-30 2017-10-24 北京遥测技术研究所 一种空间通信系统中部分并行结构ldpc码译码系统及其方法
CN106209114B (zh) * 2015-04-29 2019-11-12 深圳忆联信息系统有限公司 译码方法及装置
KR101666188B1 (ko) * 2015-08-27 2016-10-13 고려대학교 산학협력단 중첩을 이용한 dvb-s2 기반 저밀도 패리티 검사(ldpc) 부호의 복호기 설계기법
US10367526B2 (en) * 2015-11-23 2019-07-30 Avago Technologies International Sales Pte. Limited Irregular low density parity check processing system with non-uniform scaling
CN108347298B (zh) * 2017-01-24 2021-01-15 华为技术有限公司 一种编码的方法和通信装置
US10963337B2 (en) * 2018-01-08 2021-03-30 SK Hynix Inc. Memory system with super chip-kill recovery and method of operating such memory system
KR102092634B1 (ko) * 2018-10-12 2020-04-23 고려대학교 산학협력단 Ldpc 부호 복호기 및 복호 방법
KR20200114151A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 오류 정정 디코더
CN112583420B (zh) * 2019-09-30 2024-01-09 上海华为技术有限公司 一种数据处理方法和译码器
KR102525414B1 (ko) * 2020-07-29 2023-04-25 한국전자통신연구원 LDPC(low-density parity-check) 부호의 복호화 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123315A1 (en) * 2004-11-08 2006-06-08 Kabushiki Kaisha Toshiba Decoder and method for decoding low-density parity-check code
CN1805292A (zh) * 2005-01-10 2006-07-19 美国博通公司 构建对应基于grs不规则ldpc码的奇偶校验矩阵的方法
CN1825770A (zh) * 2005-02-26 2006-08-30 美国博通公司 解码ldpc编码信号的加速消息传递解码器和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) * 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) * 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
FR2799592B1 (fr) * 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7246304B2 (en) * 2001-09-01 2007-07-17 Dsp Group Inc Decoding architecture for low density parity check codes
US7350130B2 (en) * 2002-08-15 2008-03-25 Broadcom Corporation Decoding LDPC (low density parity check) code with new operators based on min* operator
US7216283B2 (en) * 2003-06-13 2007-05-08 Broadcom Corporation Iterative metric updating when decoding LDPC (low density parity check) coded signals and LDPC coded modulation signals
US7296208B2 (en) * 2003-07-03 2007-11-13 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
US7406648B2 (en) * 2003-12-24 2008-07-29 Electronics And Telecommunications Research Institute Methods for coding and decoding LDPC codes, and method for forming LDPC parity check matrix
US7243287B2 (en) * 2004-05-03 2007-07-10 Broadcom Corporation Decoding LDPC (Low Density Parity Check) code and graphs using multiplication (or addition in log-domain) on both sides of bipartite graph
JP4282558B2 (ja) 2004-06-30 2009-06-24 株式会社東芝 低密度パリティチェック符号復号器及び方法
US7127659B2 (en) * 2004-08-02 2006-10-24 Qualcomm Incorporated Memory efficient LDPC decoding methods and apparatus
CN101395804B (zh) * 2004-09-17 2011-09-07 Lg电子株式会社 使用ldpc码编码和解码的方法
US20060085720A1 (en) 2004-10-04 2006-04-20 Hau Thien Tran Message passing memory and barrel shifter arrangement in LDPC (Low Density Parity Check) decoder supporting multiple LDPC codes
WO2006059688A1 (ja) 2004-12-02 2006-06-08 Mitsubishi Denki Kabushiki Kaisha 復号装置及び通信装置
KR100846869B1 (ko) * 2004-12-16 2008-07-16 한국전자통신연구원 저 복잡도 ldpc복호 장치 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123315A1 (en) * 2004-11-08 2006-06-08 Kabushiki Kaisha Toshiba Decoder and method for decoding low-density parity-check code
CN1805292A (zh) * 2005-01-10 2006-07-19 美国博通公司 构建对应基于grs不规则ldpc码的奇偶校验矩阵的方法
CN1825770A (zh) * 2005-02-26 2006-08-30 美国博通公司 解码ldpc编码信号的加速消息传递解码器和方法

Also Published As

Publication number Publication date
EP1909394A3 (en) 2009-09-30
US20100138721A1 (en) 2010-06-03
EP1909394A2 (en) 2008-04-09
CN101159436A (zh) 2008-04-09
TW200835168A (en) 2008-08-16
KR20080031136A (ko) 2008-04-08
US20120284583A1 (en) 2012-11-08
US7644339B2 (en) 2010-01-05
US8327221B2 (en) 2012-12-04
HK1121595A1 (en) 2009-04-24
US8230298B2 (en) 2012-07-24
TWI371168B (en) 2012-08-21
KR100915368B1 (ko) 2009-09-03
US20080082868A1 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
CN101159436B (zh) 解码设备及方法
US11824558B2 (en) Method and apparatus for encoding and decoding of low density parity check codes
CN101340194B (zh) 解码ldpc编码信号的解码器
US8516347B1 (en) Non-binary LDPC extrinsic calculation unit (LECU) for iterative decoding
US20080104474A1 (en) Low Density Parity Check (Ldpc) Decoder
US10848183B2 (en) Method and apparatus for encoding and decoding low density parity check codes
US10727870B2 (en) Method and apparatus for encoding and decoding low density parity check codes
EP1696574A1 (en) AMP (Accelerated Message Passing) decoder adapted for LDPC (Low Density Parity Check) codes
US9362952B2 (en) Apparatuses and methods for encoding and decoding of parity check codes
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
EP2991231A1 (en) Multilevel encoding and multistage decoding
CN101364809B (zh) 解码器
US9154261B2 (en) Low density parity check (LDPC) coding in communication systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1121595

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1121595

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180514

Address after: Singapore Singapore

Patentee after: Avago Technologies Fiber IP Singapore Pte. Ltd.

Address before: Alton Park Road, Irvine, California, 16215, 92618-7013

Patentee before: Zyray Wireless Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190828

Address after: Singapore Singapore

Patentee after: Annwa high tech Limited by Share Ltd

Address before: Singapore Singapore

Patentee before: Avago Technologies Fiber IP Singapore Pte. Ltd.