CN113517895A - 用于准循环低密度奇偶校验码的垂直分层解码的方法及装置 - Google Patents

用于准循环低密度奇偶校验码的垂直分层解码的方法及装置 Download PDF

Info

Publication number
CN113517895A
CN113517895A CN202110385012.0A CN202110385012A CN113517895A CN 113517895 A CN113517895 A CN 113517895A CN 202110385012 A CN202110385012 A CN 202110385012A CN 113517895 A CN113517895 A CN 113517895A
Authority
CN
China
Prior art keywords
check node
magnitude
check
variable
magnitudes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110385012.0A
Other languages
English (en)
Inventor
B·J·雷伊瓦尔
D·德克莱尔
V·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.)
Codelucida Inc
Original Assignee
Codelucida 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
Priority claimed from US17/224,064 external-priority patent/US11496155B2/en
Application filed by Codelucida Inc filed Critical Codelucida Inc
Publication of CN113517895A publication Critical patent/CN113517895A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/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
    • 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/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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • 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/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/31Coding, 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 combining coding for error detection or correction and efficient use of the spectrum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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
    • 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/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

Landscapes

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

Abstract

本申请案涉及一种用于使用垂直分层迭代消息传递算法对准循环低密度奇偶校验码进行垂直分层解码的方法及装置。所述方法的所述算法通过使用利用预测性量值映射预测的一或多个额外量值来计算消息并更新校验节点状态而提高校验节点更新的效率。所述方法允许在所述校验节点更新中降低处理单元的计算复杂度以及存储需求。呈现所述装置的数个实施例,其使用一或多个预测性量值映射,目标是显著节省资源使用及功率消耗,同时最小化对错误校正性能损失的影响。

Description

用于准循环低密度奇偶校验码的垂直分层解码的方法及装置
技术领域
本发明一般来说涉及用于信息传输、存储及处理系统(例如有线及无线通信系统、光学通信系统、计算机存储器、大容量数据存储系统等)的错误校正译码。更特定来说,本发明涉及用于低密度奇偶校验(LDPC)码的垂直分层迭代解码器的低复杂度实施方案的简化及优化,且更具体来说涉及由块循环置换矩阵组成的LDPC码,称作准循环LDPC(QC-LDPC)码。
背景技术
错误校正码通过确保数据的完整性而在通信、计算机及存储系统中起重要作用。过去数十年已见证译码理论研究的激增,其导致基于LDPC码的高效译码方案的发展。迭代消息传递解码算法以及经适当设计的LDPC码已展示出在无限码字长度的限制下接近信息-理论信道容量。LDPC码在例如无线网络、卫星通信、深空通信及电力线通信等若干个应用中被标准化。
针对具有长度N及尺寸K的(N,K)LDPC码,大小为M×N=(N-K)×N的奇偶校验矩阵(PCM)H(假设H是满秩)由很少数目个非零项(即,很少数目个1)组成。以dv(n)(1≤n≤N)标示第n列的度数,即,第n列中1的数目。类似地,以dc(m)(1≤m≤M)标示第m行的度数,即,第m行中1的数目。此外,定义行及列的最大度数:
Figure BDA0003014414630000011
当H的列及行中1的数目恒定时,将LDPC码称为规则的,否则将LDPC码称为不规则的。针对规则LDPC码,γ=dv=dv(n)(1≤n≤N)且p=dc=dc(m)(1≤m≤M)。(dv,dc)规则LDPC码代表特别有趣的LDPC码类型。针对此类型,如果PCM H是满秩,那么码率是R=K/N=1-dv/dc。除非对于论证的清晰性有必要,否则将在行及列的度数标示中删除索引n或m。然而,显然,本发明的所有实施例适用于规则及不规则LDPC码两者。
如果长度为N的二进制列向量(标示为x=[x1,x2,…,xN]T)是码字,那么其满足Hx=0,其中在二进制字段GF(2)中执行乘法及加法运算,且0是长度为M的全零列向量。对于向量及矩阵两者,xT标示x的转置。矩阵中的元素可由Hm,n或H(m,n)不同地标示。类似地,向量中的元素由xn或x(n)标示。向量及矩阵的水平串联及垂直串联分别标示为[A,B]及[A;B]。
本发明涉及QC-LDPC类别。在QC-LDPC码中,PCM H由大小为L×L的正方形块或子矩阵组成,如方程式(2)中所描述,其中每一块Hi,j是(i)全零L×L块或(ii)循环置换矩阵(CPM)。
Figure BDA0003014414630000021
CPM定义为循环群组的原始元素的幂。原始元素例如由方程式(3)中针对L=8的情形展示的L×L矩阵α定义。因此,CPMαk(其中k∈{0,…,L-1})具有向左移位k个位置的单位矩阵的形式。换种方式说,αk的第一列的非零值的行索引是k+1。k的值称为CPM值。CPM的主要特征是其在每一行/列中仅具有单个非零元素且可由其第一行/列以及用以产生其余行/列的过程一起定义。此过程的简单性转化为在QC-LDPC编码器或解码器中实现码字位的子集与奇偶校验方程式的子集之间的物理连接所需的低复杂度。
Figure BDA0003014414630000022
QC-LDPC码的PCM可方便地由具有Mb行及Nb列的基本矩阵(或原型矩阵)B表示,所述矩阵含有指示每一块Hi,j的原始元素的幂的整数值。因此,基本矩阵的尺寸通过以下方式与PCM的尺寸相关:M=Mb L,N=Nb L,且K=Kb L(假设H是满秩)。方程式(4)中展示Mb×Nb=4×5且L=8的矩阵H及B的实例。
Figure BDA0003014414630000031
其中I=α0是单位矩阵,且按惯例α-∞=0是全零L×L矩阵。
奇偶校验矩阵H还可由二分特纳图(bipartite Tanner graph)G表示,所述图由基数为N的变量节点集(VN)V={v1,v2,…,vN}及基数为M的校验节点集(CN)C={c1,c2,…,cM}组成。变量节点表示LDPC码的码字位且校验节点表示其奇偶校验方程式。如果奇偶校验矩阵中的矩阵元素等于Hm,n=1,那么在节点cm与vn之间存在边缘的情况下,变量节点与校验节点通过边缘连接。校验节点cm的度数(标示为dc(m))是其连接到的变量节点的数目,且变量节点vn的度数(标示为dv(n))是其连接到的校验节点的数目。如果LDPC码的特纳图具有恒定变量节点度数
Figure BDA0003014414630000034
及恒定校验节点度数
Figure BDA0003014414630000033
那么将LDPC码称为规则的。否则,将LDPC码称为不规则的。进一步由N(cm)标示连接到cm的变量节点集且由N(vn)标示连接到vn的校验节点集。
对LDPC码的特纳图进行运算的迭代解码器沿着连接VN与CN的边缘在两种节点之间交换消息。边缘支持两个方向上的消息:变量到校验消息(标示为
Figure BDA0003014414630000035
)及校验到变量消息(标示为
Figure BDA0003014414630000036
)。
本发明还涉及分层解码的概念,所述分层解码的概念用于在维持低复杂度的同时提高解码器收敛速度。分层LDPC解码方案通过减少达到成功解码所需的解码迭代次数而有效地改进收敛。分层解码器产生从校验节点的子集到变量节点的子集的消息,且接着产生从变量节点的子集到校验节点的子集的消息。
现在定义QC-LDPC码中的层的概念。针对QC-LDPC码,行层通常由PCM的L个连续行组成,所述行由一组L×L循环置换矩阵定义。举例来说,方程式(2)中的第i块行定义了第i行层。类似地,列层由PCM的L个连续列组成。举例来说,方程式(2)中的第j块列定义第j列层。更一般来说,行层可由CPM的多个块行组成,且列层可由多个块列组成。为了易于表示,在本发明中,假设行层仅由一个块行组成,且列层仅由一个块列组成。所属领域技术人员可容易地将本发明中的说明一般化到其它层组织。
迭代解码器通常由VN更新(VNU)规则、CN更新(CNU)规则以及消息计算的调度定义。调度定义了在LDPC码的整个特纳图中执行VNU及CNU运算的次序。迭代消息传递LDPC解码器有三个主要调度类型:(i)泛洪调度,(ii)水平分层(HL)调度,(iii)垂直分层(VL)调度。HL及VL调度通常联合QC-LDPC码一起使用。在HL解码中,消息更新是逐行层进行的,而在VL解码中,消息计算是逐列层进行的。
本发明适用于任何二进制输入对称信道,且可容易地一般化到具有非二进制输入的信道。令x为长度为N的QC-LDPC码的码字。所述码字通过具有输出y的有噪声的无存储器信道发送,所述值属于q进制字母表
Figure BDA0003014414630000041
信道精度nq是表示q进制字母表所需的位数,即,
Figure BDA0003014414630000042
解码器的输入(标示为信道值)可通过对噪声信道的量化测量(即y的值)或通过这些测量的任何变换来定义。举例来说且在不失一般性的情况下,可将信道值定义为对数似然比(LLR),其是从条件信道概率计算的,等于LLR(y)=prob(y|x=0)/prob(y|x=1)。
本发明的实施例进一步涉及称为有限字母表迭代解码器(FAID)的一类迭代消息传递解码器。在这些解码器中,消息μc,v及μv,c属于有限字母表
Figure BDA0003014414630000043
所述字母表
Figure BDA0003014414630000044
由标示为s的有限(通常为少的)数目个层级组成。s个层级可使用精度的ns位表示,使得
Figure BDA0003014414630000045
对于其中
Figure BDA00030144146300000414
具有奇数基数的特定说明性情形,消息字母表标示为
Figure BDA0003014414630000046
Figure BDA0003014414630000047
其中对于任何k>l,ak≥al。注意,消息字母表与信道字母表可具有不同的基数,s≠q。
使用预定义函数Φv
Figure BDA0003014414630000048
实施FAID中的度数为dv的变量节点v的变量节点更新,所述函数在此说明中称为VN更新函数。其将特定边缘上的传出消息计算为信道值y与节点处的dv-1个传入消息的函数,不计所述特定边缘上的传入消息。举例来说,为了计算输出消息
Figure BDA0003014414630000049
使用:
Figure BDA00030144146300000410
可优化VN更新函数以改进解码器的错误校正能力。可通过对称性从具有信道值y=-Y的VN更新函数导出信道值y=+Y的VN更新函数:
Figure BDA00030144146300000411
在FAID中使用的校验节点更新函数Φc类似于用于在目前最新技术中通常使用的最小和解码器中的函数。如果
Figure BDA00030144146300000412
表示到度数为dc的节点c的传入消息,那么Φc由以下公式给出:
Figure BDA00030144146300000413
取决于所使用的调度类型,可以各种方式实施CNU。随后将呈现有关用于VL解码的CNU实施方案的细节。
最后,为了计算VN v的码字位的硬决策估计值,使用以下公式计算后验概率(APP):
Figure BDA0003014414630000051
第n码字位的硬决策估计值,标示为
Figure BDA0003014414630000052
等于:
Figure BDA0003014414630000053
如果硬决策估计值具有等于零的校正子,即,
Figure BDA0003014414630000054
那么解码器已成功收敛到有效码字。
现在描述QC-LDPC码的VL解码的一般原理,重点是存储器组织及CNU处理。对于连接到dc VN的每一CN cm,存在到CNU的dc个传入变量到校验消息,标示为
Figure BDA0003014414630000055
可以正负号量值表示法写入所述消息
Figure BDA0003014414630000056
其中signm,n是消息的正负号,且magm,n是其量值。进一步定义indexm,n作为含有连接到校验节点cm的第n VN的块列的索引。替代地,indexm,n可表示将vn连接到cm的dc个边缘当中的边缘的索引。用于indexm,n的两个惯例均旨在定义所处理的消息
Figure BDA0003014414630000059
的位置。
使校验节点状态(CNS)关联到每一CN cm,定义为如下
Figure BDA0003014414630000057
其中
Figure BDA0003014414630000058
是对应于校验节点cm的校正子位,且M AG(dc)称为量值状态,由dc对组成。量值状态中的一对(magk,indexk)将称为量值对。在量值状态中,将量值按升序排序:
mag1≤mag2<…<magk≤…≤magdc
且indexk的值指示与其中消息等于magk的块列对应的块列索引。为了易于呈现,进一步假设,每一CN在奇偶校验矩阵的每一块列中具有最多一个VN相邻者,即,indexk≠indexl,k≠l。此条件对于VL解码不是强制性的,且当CN在块列中具有多于一个相邻者时,可以容易地扩展算法。
在算法1中提出一般VL迭代解码器。所述算法采取信道值作为输入,并产生硬决策估计值
Figure BDA0003014414630000061
在初始化步骤之后,解码器最多运行Itmax次迭代,且每一迭代以任意次序按顺序处理块列。在每一块列处理期间,消息的计算及CNS的更新被组织成三个步骤:(i)利用CNU步骤A的校验到变量消息产生,(ii)利用VNU步骤的变量到校验消息计算,及最后(iii)利用CNU步骤B的CNS更新。取决于算法的特定实施方案及变量节点更新Φv的类型,初始化步骤及VNU步骤可改变。举例来说,如果在VL解码器中使用FAID算法,那么利用直接信道输出y执行初始化,而如果在VL解码器中使用最小和算法,那么利用LLR执行初始化。
为了计算硬决策估计值
Figure BDA0003014414630000062
需要使用在CNU步骤A期间产生的消息
Figure BDA0003014414630000064
依据(8)计算APP,且使用方程式(9)做出决策。如果硬决策估计值验证零校正子条件(10),那么其形成有效码字。可在Itmax迭代结束时计算APP值,或替代地可在解码过程期间、在每一迭代结束时或在每一块列处理结束时计算APP值。在于解码期间计算APP值的情形中,校正子H
Figure BDA0003014414630000065
的值可用作较早停止准则。无论何时当校正子等于0时,由于解码器已经收敛到有效码字,因此可以使其停止。
算法1中提出的一般VL解码器具有非常大的计算及存储复杂度,且降低复杂度的经典解决方案是将量值状态M AG(dc)截断为仅很少数目ω个最小量值。经截断CNS使用经截断量值状态,且定义为:
Figure BDA0003014414630000066
减少CNS中的量值数目会使VL解码器变得次优,从而影响错误校正强度及解码速度两者。文献中通常指出,保持ω=3个量值足以确保足够小的错误校正性能损失,而又不会显著影响平均迭代次数。
Figure BDA0003014414630000063
Figure BDA0003014414630000071
在算法1中的CNU步骤A及CNU步骤B中使用经截断CNS,以降低解码复杂度。在CNU步骤A中,仅将CNS中的两个最小量值用于处理。因此,只要ω≥2,量值状态的截断就不会改变CNU步骤A。CNU步骤B受CNS的截断影响。在算法2中描述在ω≥2的情形中使用经截断CNS时的简化VL解码器。有数个方式来高效地实施算法2中的CNU步骤B,以优化计算复杂度并使对错误校正性能的影响最小化。
本发明涉及VL解码器中的CNU步骤A及CNU步骤B的低复杂度实施方案的简化及优化,同时在CNS中使用最小数目个量值状态。
Figure BDA0003014414630000072
Figure BDA0003014414630000081
发明内容
本发明涉及使用迭代消息传递算法对QC-LDPC码进行解码。更具体来说,本发明涉及遵循垂直分层(VL)调度方案的解码器。
本发明涉及一种以非常低的实施方案复杂度为目标来实施VL LDPC解码器的方法及装置。这通过简化在迭代处理期间校验节点更新的方程式且通过减少存储有关在变量节点与校验节点之间交换的消息的相关信息所需的存储器量来实现。
本发明的算法在LDPC码的特纳图中的VN与CN之间交换消息,从而利用变量节点更新(VNU)处理及校验节点更新(CNU)处理来更新消息。消息的最小量值及相关联索引存储在校验节点存储器(CNM)内的校验节点状态(CNS)中。CNU以两个步骤实施:CNU产生器步骤及CNU更新器步骤。
本发明的方法简化CNU产生器及CNU更新器处理步骤,同时减小CNM的大小,目标是最小化VL解码器实施方案的资源使用,且降低其计算复杂度。
本发明的方法实施CNU的最接近近似,其将使用具有ω+1个量值的CNS同时仅使用可从具有ω个量值的CNS获得的值。使用预测性量值映射(PMM)函数从CNS中可用的ω个量值中产生额外量值。
本发明的装置对CNU产生器及CNU更新器单元实施修改以使用PMM函数产生额外量值。经修改单元(标示为PMM-CNU产生器及PMM-CNU更新器)将PMM额外量值集成到CNU方程式中。当解码算法使用PMM额外量值时,将其标示为PMM-VL解码器。
在本发明的优选实施例中,CNS被限制为仅由最小量值及其对应的索引组成的最小配置,且PMM函数经设计以预测第二最小量值的值。CNU产生器及CNU更新器经设计以利用所预测第二最小量值来进行其处理。
在本发明的另一优选实施例中,CNS含有两个最小量值及其对应的索引,且PMM函数经设计以预测第三最小量值的值。CNU产生器及CNU更新器经设计以利用所预测第三最小量值来进行其处理。
另外,在一些实施例中,本发明的方法使用多个PMM函数以便改进解码性能。基于块列索引的值或基于迭代次数,可在解码过程期间的任何时间在不同PMM函数之间进行切换。替代地,可在满足某种约束时在不同PMM函数进行切换。此约束可涉及例如将未满足的校正子位的数目计数且将此数目与阈值进行比较。
在详细说明中将看到,高效地实现了上述目标,并且由于可在执行所提出的方法时做出一些改变而不背离本发明的精神及范围,因此意图说明中包含并在附图中展示的所有事物应解释为说明性而非限制性意义。
附图说明
为了更完整地理解本发明,请参考以下说明及附图,其中:
图1展示PMM-VL解码器的顶级架构,其展示所提出的PMM-CNU模块。作为本发明的一部分,使用预测性量值映射的两个单元是PMM-CNU产生器及PMM-CNU更新器;
图2展示在仅具有ω=1量值对的校验节点状态的情形中PMM-CNU产生器单元的架构的优选实施例;
图3展示在具有ω个量值对的校验节点状态的一般情形中PMM-CNU更新器单元的架构的优选实施例;
图4展示用于基于迭代次数及/或块列索引的动态PMM切换的将在PMM-CNU产生器及PMM-CNU更新器中使用的多PMM单元的架构的优选实施例;
图5展示用于基于校正子权重的动态PMM切换的多PMM-VL解码器的顶级架构,其展示所提出的多PMM-CNU模块;及
图6展示用于基于校正子权重的动态PMM切换的将在PMM-CNU产生器及PMM-CNU更新器中使用的多PMM单元的架构的优选实施例。
具体实施方式
本发明的方法涉及对QC-LDPC码进行运算的迭代消息传递LDPC解码器,QC-LDPC码的奇偶校验矩阵由大小为L×L的循环置换矩阵(CPM)组成。奇偶校验矩阵经配置以具有Nb块列及Mb块行。第j块列含有dv(j)个CPM,且第i块行含有dc(i)个CPM。在其余的说明中,将在这些标示中删除索引i及j。无论如何,本发明的所有实施例适用于规则及不规则LDPC码两者。
本发明的消息传递解码器遵循VL调度,在VNU模块与CNU模块之间交换消息。从VNU模块传递到CNU模块的消息命名为变量到校验消息,标示为
Figure BDA0003014414630000101
且从CNU模块传递到VNU模块的消息命名为校验到变量消息,标示为
Figure BDA0003014414630000102
消息
Figure BDA0003014414630000104
Figure BDA0003014414630000105
关联到LDPC码的特纳图中连接VN vn与CN cm的边缘。在本发明的优选实施例中,使用固定(通常为少的)数目个精度位(标示为ns)表示消息。消息属于有限字母表
Figure BDA0003014414630000103
如背景中所描述。
在本发明的方法的各种优选实施例中,VL解码器在解码迭代期间以任意次序处理QC-LDPC码的Nb个块列。在不损失一般性的情况下假设,从索引j=1到索引j=Nb按顺序处理块列。在解码迭代期间,当前块列将被标示为经处理块列。此外,每一块列由L个变量节点组成。当解码器运算经处理块列内的VN vn的VNU时,vn将被标示为经处理VN。最后,当解码器运算连接到经处理VN的校验节点cm的CNU时,cm将被标示为经处理CN。
在所述方法的其它优选实施例中,VL解码器执行多个块列的处理,所述块列中的每一者由L个变量节点组成。尽管出于论述的目的,在假设处理单个经处理块列的情况下描述所述方法,但所属领域的技术人员可容易地将所述方法一般化到多个经处理块列。
如背景中所描述,VL解码器需要使用存储于CNM中的数个最小量值(标示为magk)及其对应的块列索引(标示为iudexk)。
在本发明中,提出简化CNU处理(CNU步骤A及CNU步骤B)且减小CNM的大小,目标是减少VL解码器实施方案的资源使用且最小化其计算复杂度。所提出的方法实施CNU的最接近近似,其将使用具有M AG(ω+1)的CNS,但仅使用具有M AG(ω)的CNS中可用的值。
为了描述所述方法,首先假设CNS由ω个量值对组成:
Figure BDA00030144146300001110
为解码器中的CNU模块配备将CNS的ω个量值映射成额外量值的函数χω
Figure BDA0003014414630000111
将遍及说明将此函数称为预测性量值映射(PMM)。PMM可为从
Figure BDA0003014414630000117
Figure BDA0003014414630000118
的任何线性或非线性映射函数。
尽管以非常一般的方式进行描述,但所提出的方法特别关注ω的小值。在本发明的优选实施例中,针对以下情形定义PMM:
·
Figure BDA0003014414630000112
在此最小配置中,CNM针对每一校验节点存储仅由三个值组成的CNS:(i)校正子位sm的值,(ii)传入的变量到校验消息的最小量值mag1,及(iii)对应于最小量值的边缘索引index1。在此优选实施例中,旨在使解码性能接近于使用CNS(2)(cm)的解码器,但仅使用来自CNS(1)(cm)的值。此实施例的示范性、非限制性PMM函数由以下公式给出:
Figure BDA0003014414630000113
其中s是消息字母表中的最大量值。
·
Figure BDA0003014414630000114
在此第二优选实施例,所考虑的CNS是CNS(2)(cm)={sm;(mag1,index1),(mag2,index2)},且
Figure BDA0003014414630000119
的值是从两个最小量值预测,以便接近具有CNS(3)(cm)的解码器的性能。注意,在此第二优选实施例,存在大量PMM函数。χ2可为仅mag1、仅mag2或mag1及mag2两者的函数。
通过为经排序列表的量值状态的定义,必须使
Figure BDA0003014414630000115
在本发明的优选实施例中,将进一步假设
Figure BDA0003014414630000116
在本发明中提出的VL解码器在CNU处理中使用PMM额外量值,且称为PMM-VL解码器。针对PMM-VL解码器,将在算法2中呈现的CNU的两个步骤替换为具有用于校验到变量消息产生的PMM-CNU步骤A且具有用于CNS更新的PMM-CNU步骤B的PMM-CNU。PMM-VL解码器的主要步骤描述于算法3中。
Figure BDA0003014414630000121
在图1中描绘在本发明中提出的PMM-VL解码器的顶级架构的装置。此架构且尤其是PMM-CNU模块,主要是围绕校验节点存储器(CNM)103设计的,所述校验节点存储器存储LDPC码中所有校验节点的校验节点状态CNS(cm)。每一CNS(cm)由校正子位sm、对应校验节点及含有ω对(magk,iudexk)的量值状态M AG(ω)组成。正负号存储器106存储变量到校验消息
Figure BDA0003014414630000122
的正负号signm,n。因此,将VN连接到CN的每一边缘有一个正负号。
可参考表3中的PMM-VL解码器的高级说明来使解码步骤与在图1中呈现的架构单元相关。
为了易于论述,现在在假设单个经处理块列的处理的情况下描述模块的功能。然而,模块的说明也适用于处理多个经处理块列的较一般情形。
初始化器单元102采取信道值101或信道值的任何变换作为输入,且使用其来初始化CNM 103中的CNS。其计算所有CN的初始校正子位及量值状态的初始值,其等仅取决于信道值的量值或信道值的变换的量值。替代地,初始量值状态可由初始化器单元设定为固定预定值。在执行初始化之后,CNM含有CNS的初始值。初始化器单元还计算变量到校验消息正负号的初始值,其存储于正负号存储器106中。
PMM-CNU模块由两个处理单元组成:PMM-CNU产生器105,其实施PMM-CNU步骤A的消息产生;及PMM-CNU更新器104,其实施PMM-CNU步骤B的CNS更新。在初始化之后,PMM-CNU模块与VNU模块迭代地交换消息,所述消息流动通过桶式移位器单元107及108。桶式移位器根据QC-LDPC码的循环置换矩阵将消息地址重新排序。
针对度数为dv的经处理块列,解码器针对块列中的每一经处理VN vn如下进行。针对连接到vn的每一经处理CN,PMM-CNU产生器105从CNM读取CNS且从正负号存储器106读取消息正负号,计算PMM额外量值,且产生将用作到VNU模块的输入的校验到变量消息
Figure BDA0003014414630000131
针对每一经处理VN,需要产生dv个校验到变量消息。在处理经处理块列中的所有VN之后,接着由桶式移位器单元108根据经处理块列的dv个CPM将消息循环地移位。
针对经处理块列中的每一经处理VN,VNU模块109接收dv个校验到变量消息及对应于经处理VN的信道值。VNU模块根据方程式(5)使用变量节点更新函数Φv计算dv个变量到校验消息
Figure BDA0003014414630000132
一旦已处理了经处理块列中的所有VN,便由桶式移位器单元107将消息循环地移位且发送到PMM-CNU更新器104。
针对每一经处理CN,PMM-CNU更新器采取来自107的对应变量到校验消息、其来自103的相关联CNS及来自106的对应正负号作为输入。注意,来自正负号存储器的正负号signm,n是对应变量到校验消息
Figure BDA0003014414630000134
的正负号,但来自先前解码迭代。接着,PMM-CNU更新器计算PMM额外量值,更新经处理CN的写入CNM 103中的新CNS,且提取消息
Figure BDA0003014414630000135
的写入正负号存储器106中的新正负号。
重复先前描述的消息及CNS的计算及更新直到遍历整个奇偶校验矩阵,然后构成一个解码迭代,且然后解码过程从第一块列再次重新开始以开始下一解码迭代。
VNU模块还计算经处理块列中的所有VN的在(8)之后的APP且计算硬决策估计值
Figure BDA0003014414630000133
将硬决策估计值发送到验证单元110以检查解码器是否已收敛到码字。验证单元利用从VNU模块接收的
Figure BDA0003014414630000136
的最新值计算LDPC码的校正子,且遵循方程式(10),无论何时校正子为零时停止解码,这意味着硬决策估计值
Figure BDA0003014414630000137
111形成有效码字。APP的计算及校正子的验证两者可在解码过程期间的任何时间、在块列的处理结束时执行。
CNU产生器使用CNM及正负号存储器计算到VNU模块的传入消息。使用PMM函数的CNU产生器称为PMM-CNU产生器且实施算法3的PMM-CNU步骤A。
依据算法1中的说明,可看到CNU产生器仅需要来自M AG(ω)的以下值:(mag1,iudex1,mag2)。因此,此模块不需要太多修改来合并使用PMM函数。当在PMM-CNU产生器中使用具有ω≥2的M AG(ω)时,不需要改变算法。当在PMM-CNU产生器中使用具有ω=1的M AG(ω)时,则依据PMM函数χ1计算
Figure BDA0003014414630000144
且将其用于PMM-CNU步骤A中,如表1中所描述。
Figure BDA0003014414630000141
在图2中,展示在ω=1的情形中实施PMM-CNU产生器的装置的架构,PMM-CNU产生器计算到VNU模块的传入校验到变量消息。
针对连接到经处理块列index*=j 203中的经处理VN vn的dv个经处理CN cm中的每一者,从CNM读取对应CNS 201,且从正负号存储器读取对应正负号202。由于ω=1,因此CNS仅由校正子位sm及单一对M AG(1)=(mag1,index1)组成。在单元204中在校正子位与消息正负号signm,n之间执行XOR运算以计算临时外赋正负号
Figure BDA0003014414630000149
PMM单元205使用函数χ1从M AG(1)计算
Figure BDA0003014414630000146
的经预测值。消息产生单元206实施表1的步骤PMM-CNU步骤A-(c)。在单元206的输出处,获得用作到VNU的输入的校验到变量消息
Figure BDA0003014414630000142
在ω≥2的情形中,绕过PMM单元205且消息产生单元206仅采取CNS值、临时外赋正负号
Figure BDA0003014414630000147
及经处理块列索引作为输入。
在CNU产生器的输出处且针对经处理块列中的每一经处理VN,将dv个校验到变量消息发送到VNU模块以计算将用作到CNU更新器的输入的变量到校验消息
Figure BDA0003014414630000143
在本发明的优选实施例中,将VNU更新函数定义为低精度函数Φυ,其对应于背景中所描述的FAID算法。VNU更新函数Φυ的许多实施例在本发明的范围内,其中Φυ可定义为闭式函数、查找表、任意映射、一组方程式或任何其它适用的有限精度更新函数。消息是以ns位的精度表示,且VNU更新函数将称为ns位FAID更新函数,其可无差别地适用于硬输出信道或任何nq位软输入信道。
在本发明的其它优选实施例中,VNU模块可使用多个VNU更新函数
Figure BDA0003014414630000148
来计算变量到校验消息,以便改进解码器的错误校正性能。举例来说,不同VNU更新函数可用于不同块列处理。
针对由dv个循环行列式组成的经处理块列中的每一经处理VN vn,CNU更新器计算连接到vn的dv个经处理CN的CNS的新值。使用PMM函数的CNU更新器称为PMM-CNU更新器且实施算法3的PMM-CNU步骤B。
表2中所描述的PMM-CNU更新器不同于步骤(f)及(i)中的经典VL解码器的CNU更新器。依据存储于CNS的M AG(ω)中的量值,PMM函数χω计算额外量值
Figure BDA0003014414630000151
其与当前块列索引一起形成额外量值对:
Figure BDA0003014414630000152
除新量值对(mag*,index*)之外,在步骤(i)中在截断之前的经排序列表中还考虑PMM额外对。
Figure BDA0003014414630000153
在图3中,展示用于ω个量值状态的一般情形的实施PMM-CNU更新器的装置的架构,PMM-CNU更新器更新存储于CNM中的CNS。
针对给定经处理块列index*=j 304中的经处理VN vn且针对连接到vn的每一经处理CN cm,PMM-CNU更新器采取已由VNU模块产生的新变量到校验消息
Figure BDA0003014414630000157
301、来自先前迭代的对应正负号signm,n 303及cm 302的旧CNS作为输入。CNS由校正子位sm及量值状态M AG(ω)中的ω对(magk,indexk)组成。
提取新变量到校验消息301的正负号及量值,即,
Figure BDA0003014414630000154
Figure BDA0003014414630000155
Figure BDA0003014414630000156
值sign*对应于待存储于正负号存储器101中的新正负号
Figure BDA0003014414630000158
310。经更新校正子位
Figure BDA0003014414630000159
是使用3输入XOR单元306获得,3输入XOR单元306执行旧校正子位sm与旧正负号signm,n及与新输入消息的正负号sign*的XOR运算。
PMM单元307使用PMM函数χω从M AG(ω)中的量值计算
Figure BDA0003014414630000166
的值。
针对每一经处理CN,量值状态更新器单元308计算经更新量值状态M AGnew(ω)。其接收输入消息的量值mag*、旧量值状态M AG(ω)、PMM额外量值
Figure BDA0003014414630000167
及经处理块列的索引index*=j作为输入。
量值状态更新器如下进行。首先,所述单元检查当前索引index*是否存在于旧量值状态M AG(ω)中,且移除对应对(magk,indexk)。如果index*未出现在M AG(ω)中,那么不移除对。然后,将当前块列索引关联到PMM额外量值以形成PMM对
Figure BDA0003014414630000161
将PMM对及新产生的对(mag*index*)插入经排序列表中以计算新量值状态,M AGnew(Ω)。在此处理阶段处,量值状态的大小是Ω=ω+1或Ω=ω+2,这取决于是否已从旧量值状态移除对(magk,iudexk)。将经排序量值状态M AGnew(Ω)截断到最小ω个量值,以便形成经更新量值状态M AGnew(ω)。
最后,将经更新校正子位及经更新量值状态组合到新校验节点状态309中,新校验节点状态309被发送且写入到CNM。
针对ω=1的优选实施例,量值状态更新器308根据以下规则计算新量值状态:
如果
Figure BDA0003014414630000162
如果
Figure BDA0003014414630000163
如果
Figure BDA0003014414630000164
如果
Figure BDA0003014414630000165
针对ω=2的优选实施例,量值状态更新器308根据以下规则计算新量值状态:
如果
Figure BDA0003014414630000171
Figure BDA0003014414630000172
如果
Figure BDA0003014414630000173
Figure BDA0003014414630000174
如果
Figure BDA0003014414630000175
Figure BDA0003014414630000176
如果
Figure BDA0003014414630000177
Figure BDA0003014414630000178
如果
Figure BDA0003014414630000179
Figure BDA00030144146300001710
如果
Figure BDA00030144146300001711
Figure BDA00030144146300001712
如果
Figure BDA00030144146300001713
Figure BDA00030144146300001714
如果
Figure BDA00030144146300001715
Figure BDA00030144146300001716
如果
Figure BDA00030144146300001717
Figure BDA00030144146300001718
作为本发明的一部分,PMM-VL解码器还可使用多个PMM函数以便改进错误校正性能。出于论述的目的,假设针对大小为ω的量值状态,在集
Figure BDA00030144146300001719
中存在可用于使用的d个PMM函数。
所提出的方法基于使用
Figure BDA00030144146300001720
的PMM-VL解码器及使用
Figure BDA00030144146300001721
的PMM-VL解码器(其中k≠k′)可具有不同迭代解码动态且因此产生不同解码结果的事实。举例来说,一些PMM函数可能更有效地校正LDPC码的错误率性能的所谓的瀑布区域中的错误,而其它PMM函数可能在LDPC码的错误率性能的错误底值区域中更高效。
提出使用由多个不同PMM函数带来的多样的解码器动态来改进PPM-VL解码器的总体错误校正性能。此解码器将称为多PMM-VL解码器。在解码期间不同PMM函数之间有数个切换方式。作为实例,呈现所述方法的在多PMM-VL解码器中的解码期间在不同PMM函数之间切换的三个优选实施例。然而,在多PMM-VL解码器中组合多个PMM函数的结果的任何其它策略均归属于本发明的范围内。
静态切换:将静态切换称为当多PMM-VL解码器按顺序使用不同PMM函数且每当解码器切换到新PMM函数时利用信道值重新初始化解码时的情形。
在此优选实施例中,多PMM-VL使用
Figure BDA0003014414630000183
开始PMM-VL的解码达最多
Figure BDA0003014414630000184
次迭代。如果解码器未收敛到有效码字,那么以相同输入但使用下一PMM函数
Figure BDA0003014414630000185
重新开始PMM-VL的解码达最多
Figure BDA0003014414630000186
次迭代。当重新启动解码器时,信道值101被用作输入,经过初始化器单元102,因此以解码开始时的相同值初始化CNM 103及正负号存储器106。重复此所过程直到解码成功或已耗尽所有d个PMM函数。
基于块列索引及/或迭代次数的动态切换:将动态切换称为当多PMM-VL解码器可在解码期间且在每一块列处理时根据某种约束或解码器参数的特定值动态地选择d个可用函数当中的特定PMM函数时的情形。在动态切换中,解码器不通过新初始化而重新开始,且仅在修改PMM函数的情况下继续进行解码。
在此第二优选实施例中,多PMM-VL基于迭代次数及/或块列的索引在不同PMM函数之间切换。在此实施例中,需要选择迭代次数及块列索引的D个预定值的列表。迭代次数标示为{It(1)…,It(D)},其中It(k)≤It(k+1),且块列索引标示为{iudex(1),…,index(D)}。每一对值(It(k),index(k))与特定PMM函数PMM(k)相关联。在图4中描述实施多PMM选择单元的装置的架构。此图中所描述的多PMM单元替代PMM-CNU产生器中的PMM单元205及PMM-CNU更新器中的PMM单元307。在此多PMM单元中,M AG(ω)中的量值被输入401中且用于使用可用PMM函数中的一者产生PMM额外量值406。在解码期间,当It*=It(k)且index*=index(k)时,然后多路复用器405选择PMMk 404来产生PMM额外量值。
在一般情形中,允许PMM函数的数目d不同于切换的数目D。举例来说,如果D>d,那么可在解码过程期间多次选择相同PMM函数。
基于校正子权重的动态切换。在此第三优选实施例中,多PMM-VL基于校正子权重的值在不同PMM函数之间切换,所述值等于存储于CNS中的所有校正子位的和,即,
Figure BDA0003014414630000181
Figure BDA0003014414630000182
在图5中展示多PMM-VL解码器的此实施例的架构。所述解码器配备有校正子权重计算单元512,校正子权重计算单元512使用由验证单元510产生的校正子位作为输入。将校正子权重的值发送到多PMM-CNU模块504及505。
PMM-CNU产生器中的PMM单元205及PMM-CNU更新器中的PMM单元307由图6中所描述的多PMM单元替代。作为实例,描述d=2个PMM函数的非限制性情形,且到大量PMM函数的一般化可容易地进行。解码以第一PMM函数603开始,且在每一块列处理处监测602中的校正子权重Sw。通过在单元606中将校正子权重与固定预定阈值δ进行比较而做出在两个PMM函数603与604之间切换的决策。当满足约束Sw≥δ时,选择PMM1,且当满足约束Sw<δ时,则选择PMM2。到d>2个PMM函数的一般化需要使用d-1个预定阈值{δ(d),…,δ(d-1)}。
多PMM-VL解码器的其它可能实施例包含(i)使用迭代及块列索引连同校正子权重的组合来做出切换到不同PMM函数的决策,或(ii)使用不同于Sw的度量来在不同PMM函数之间切换,包含组合校正子位与存储于CNS中的量值的值的度量。
在多PMM-VL解码器的其它优选实施例中,还考虑使用多个VNU更新函数
Figure BDA0003014414630000191
其可在不损失一般性的情况下定义为有限精度FAID更新函数。在这些实施例中,集
Figure BDA0003014414630000193
中的每一PMM函数关联到VNU更新函数以形成函数对
Figure BDA0003014414630000192
无论何时多PMM-VL解码器根据先前所描述的切换策略中的一者切换到不同PMM函数时,在多PMM-CNU模块中使用新PMM函数而在VNU模块509中使用相关联新VNU更新函数。

Claims (16)

1.一种用于准循环低密度奇偶校验LDPC码的垂直分层解码的方法,所述方法包括:
接收属于信道输出字母表的信道值作为输入;
使用所述信道值来初始化块列内的变量节点与校验节点之间的消息且从一或多个块列的群组到一或多个块列的另一群组以任意次序并按顺序迭代地处理所述消息;
在所述初始化期间通过计算校正子位及与所述校验节点相关联的校验节点状态的量值而初始化所述校验节点状态;
在所述初始化期间计算变量到校验消息的相应正负号;
将所述校验节点状态存储于校验节点存储器中,其中关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的校正子位以及包含所述相关联校验节点的所述变量到校验消息的一或多个最小量值连同相同数目个相应块列索引的值集;
迭代地处理所述一或多个块列的群组,其中所述迭代处理包含:
利用包括所述校验节点状态及所述变量到校验消息的所述正负号作为输入的输入计算新校验到变量消息,其中针对每一校验节点,使用校验节点更新-产生器CNU产生器步骤执行所述计算,所述步骤使用所述相关联校验节点状态的所述量值及通过使用一或多个预测性量值映射从所述相关联校验节点状态的所述量值产生的一或多个额外量值;
使用一或多个变量节点更新函数利用包括所述信道值及校验到变量消息的输入计算新变量到校验消息;及
利用包括所述变量到校验消息的输入将所述校验节点状态更新为新值,其中针对每一校验节点状态,使用校验节点更新-更新器CNU更新器步骤执行所述更新,所述步骤使用所述相关联校验节点状态的所述量值及通过使用一或多个预测性量值映射从所述相关联校验节点状态的所述量值产生的一或多个额外量值;
从硬决策估计值计算所述校正子位且检查所述硬决策估计值是否构成码字;及
根据构成码字的所述硬决策估计值输出所述码字。
2.根据权利要求1所述的方法,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;且
在每一校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述两个量值及通过使用预测性量值映射从所述相关联校验节点状态的所述两个量值产生的第三量值来更新所述相关联校验节点状态。
3.根据权利要求1所述的方法,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
在每一校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述单个量值及通过使用预测性量值映射从所述相关联校验节点状态的所述单个量值产生的第二量值来更新所述相关联校验节点状态;且
在每一校验节点处的所述CNU产生器步骤期间,使用所述相关联校验节点状态的所述单个量值及通过使用预测性量值映射从所述相关联校验节点状态的所述量值产生的第二量值来计算所述新校验到变量消息。
4.根据权利要求1所述的方法,其中:
从一个块列到另一块列以任意次序按顺序执行所述迭代处理;
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;
在每一校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述两个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述两个量值产生的多个量值的第三量值来更新所述相关联校验节点状态;且
所述第三量值是基于正处理的所述块列的所述索引而从多个量值选择以供在所述CNU更新器步骤中使用。
5.根据权利要求1所述的方法,其进一步包括在一或多个块列的每一群组的所述迭代处理期间计算校正子权重,且其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;
在每一校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述两个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述两个量值产生的多个量值的第三量值来更新所述相关联校验节点状态;且
所述第三量值是基于所述校正子权重的值而从多个量值选择以供在所述CNU更新器步骤中使用。
6.根据权利要求1所述的方法,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述两个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述两个量值产生的多个量值的第三量值来更新所述相关联校验节点状态;且
在一或多个块列的群组的所述处理期间从多个量值选择第三量值以供在校验节点处的所述CNU更新器步骤中使用,且在一或多个块列的另一群组的所述处理期间从所述多个量值选择不同的第三量值以供在所述CNU更新器步骤中使用。
7.根据权利要求1所述的方法,其中:
从一个块列到另一块列以任意次序按顺序执行所述迭代处理;
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来更新所述相关联校验节点状态;
所述第二量值是基于正处理的所述块列的所述索引而从多个量值选择以供在所述CNU更新器步骤中使用;
在校验节点处的所述CNU产生器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来计算所述新校验到变量消息;且
所述第二量值是基于正处理的所述块列的所述索引而从多个量值选择以供在所述CNU产生器步骤中使用。
8.根据权利要求1所述的方法,其进一步包括在一或多个块列的每一群组的所述迭代处理期间计算校正子权重,且其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来更新所述相关联校验节点状态;
所述第二量值是基于所述校正子权重而从多个量值选择以供在所述CNU更新器步骤中使用;
在校验节点处的所述CNU产生器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来计算所述新校验到变量消息;且
所述第二量值是基于所述校正子权重的值而从多个量值选择以供在所述CNU产生器步骤中使用。
9.根据权利要求1所述的方法,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来更新所述相关联校验节点状态;
在一或多个块列的群组的所述处理期间从多个量值选择第二量值以供在校验节点处的所述CNU更新器步骤中使用,且在一或多个块列的另一群组的所述处理期间从所述多个量值选择不同的第二量值以供在所述CNU更新器步骤中使用;
在校验节点处的所述CNU产生器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来计算所述新校验到变量消息;且
在一或多个块列的群组的所述处理期间从多个量值选择第二量值以供在校验节点处的所述CNU产生器步骤中使用,且在一或多个块列的另一群组的所述处理期间从所述多个量值选择不同的第二量值以供在所述CNU产生器步骤中使用。
10.根据权利要求1所述的方法,其进一步包括在一或多个块列的每一群组的所述迭代处理期间计算校正子权重,且其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述两个量值及选自通过使用两个不同预测性量值映射从所述相关联校验节点状态的所述两个量值产生的两个值的第三量值来更新所述相关联校验节点状态;且
当所述校正子权重大于预定阈值时选择所述两个值中的第一值作为所述第三量值以供在所述CNU更新器步骤中使用,且当所述校正子权重小于或等于所述预定阈值时选择所述两个值中的第二值作为所述第三量值以供在所述CNU更新器步骤中使用。
11.根据权利要求1所述的方法,其进一步包括在一或多个块列的每一群组的所述迭代处理期间计算校正子权重,且其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
在校验节点处的所述CNU更新器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用两个不同预测性量值映射从所述相关联校验节点状态的所述单个量值产生的两个值的第二量值来更新所述相关联校验节点状态;
当所述校正子权重大于预定阈值时选择所述两个值中的第一值作为所述第二量值以供在所述CNU更新器步骤中使用,且当所述校正子权重小于或等于所述预定阈值时选择所述两个值中的第二值作为所述第二量值以供在所述CNU更新器步骤中使用;
在校验节点处的所述CNU产生器步骤期间,使用所述相关联校验节点状态的所述单个量值及选自通过使用两个不同预测性量值映射从所述相关联校验节点状态的所述单个量值产生的两个值的第二量值来计算所述新校验到变量消息;且
当所述校正子权重大于预定阈值时选择所述两个值中的第一值作为所述第二量值以供在所述CNU产生器步骤中使用,且当所述校正子权重小于或等于所述预定阈值时选择所述两个值中的第二值作为所述第二量值以供在所述CNU产生器步骤中使用。
12.根据权利要求1所述的方法,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的最小量值连同其相应块列索引的集;
从多个预测性量值映射选择预测性量值映射来从每一校验节点状态的所述量值产生一或多个量值以用于在所述CNU产生器步骤期间计算所述新校验到变量消息;
从多个变量节点更新函数选择变量节点更新函数来使用所述信道值及每一变量节点的所述校验到变量消息作为输入计算所述相关联变量节点处的所述新变量到校验消息;且
所述变量节点更新函数是基于在每一校验节点处的所述CNU产生器步骤期间使用的所述预测性量值映射而选择。
13.一种用于准循环低密度奇偶校验LDPC码的垂直分层解码的装置,所述装置包括:
校验节点存储器,其含有关联到校验节点的校验节点状态,其中关联到校验节点的每一校验节点状态包括从所述相关联校验节点的变量到校验消息的正负号计算的校正子位以及包含所述相关联校验节点的所述变量到校验消息的一或多个最小量值连同相同数目个相应块列索引的值集;
预测性量值映射校验节点更新-产生器PMM-CNU产生器处理单元,其使用所述相关联校验节点状态的所述量值及通过使用一或多个预测性量值映射从所述相关联校验节点状态的所述量值产生的一或多个额外量值来计算每一校验节点处的新校验到变量消息;及
预测性量值映射校验节点更新-更新器PMM-CNU更新器处理单元,其通过使用每一校验节点的所述校验节点状态的所述量值及通过使用一或多个预测性量值映射从所述相关联校验节点状态的所述量值产生的一或多个额外量值来更新所述相关联校验节点状态。
14.根据权利要求13所述的装置,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的两个最小量值连同其两个相应块列索引的集;且
所述PMM-CNU更新器处理单元通过使用每一校验节点的所述校验节点状态的所述两个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述两个量值产生的多个量值的第三量值来更新所述相关联校验节点状态。
15.根据权利要求13所述的装置,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的单个最小量值连同其相应块列索引;
所述PMM-CNU产生器处理单元通过使用所述相关联校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来计算每一校验节点处的所述新校验到变量消息;且
所述PMM-CNU更新器处理单元通过使用每一校验节点的所述校验节点状态的所述单个量值及选自通过使用多个预测性量值映射从所述相关联校验节点状态的所述单个量值产生的多个量值的第二量值来更新所述相关联校验节点状态。
16.根据权利要求13所述的装置,其进一步包括使用多个变量节点更新函数的变量节点更新模块,其中:
关联到校验节点的每一校验节点状态包括从所述相关联校验节点的所述变量到校验消息的所述正负号计算的所述校正子位以及所述相关联校验节点的所述变量到校验消息的最小量值连同其相应块列索引的集;
所述CNU产生器处理单元从多个预测性量值映射选择预测性量值映射来从每一校验节点状态的所述量值产生一或多个量值以用于计算每一校验节点处的所述新校验到变量消息;
所述变量节点更新模块从多个变量节点更新函数选择变量节点更新函数来使用信道值及每一变量节点的校验到变量消息作为输入计算所述相关联变量节点处的新变量到校验消息;且
所述变量节点更新模块基于所述CNU产生器处理单元在每一校验节点处使用的所述预测性量值映射而选择所述变量节点更新函数。
CN202110385012.0A 2020-04-09 2021-04-09 用于准循环低密度奇偶校验码的垂直分层解码的方法及装置 Pending CN113517895A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063007841P 2020-04-09 2020-04-09
US63/007,841 2020-04-09
US17/224,064 2021-04-06
US17/224,064 US11496155B2 (en) 2020-04-09 2021-04-06 Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes using predictive magnitude maps

Publications (1)

Publication Number Publication Date
CN113517895A true CN113517895A (zh) 2021-10-19

Family

ID=75441726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110385012.0A Pending CN113517895A (zh) 2020-04-09 2021-04-09 用于准循环低密度奇偶校验码的垂直分层解码的方法及装置

Country Status (3)

Country Link
EP (1) EP3893399A1 (zh)
CN (1) CN113517895A (zh)
TW (1) TW202203238A (zh)

Also Published As

Publication number Publication date
TW202203238A (zh) 2022-01-16
EP3893399A1 (en) 2021-10-13

Similar Documents

Publication Publication Date Title
US20200220557A1 (en) Vertical Layered Finite Alphabet Iterative Decoding
US11323134B2 (en) Encoding method and device and decoding method and device for structured LDPC
US7395494B2 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US7373581B2 (en) Device, program, and method for decoding LDPC codes
US8347170B2 (en) Method and apparatus for performing decoding using LDPC code
US7343548B2 (en) Method and apparatus for encoding and decoding data
KR101227264B1 (ko) Ldpc 코드용 디코더
WO2015123979A1 (zh) 结构化ldpc的编码方法、译码方法、编码装置和译码装置
US11258460B2 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
US20130275827A1 (en) Multi-Section Non-Binary LDPC Decoder
CN106936444B (zh) 一种集合译码方法和集合译码器
CN107632903B (zh) 低密度奇偶校验解码器、包括其的存储设备和方法
US11496155B2 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes using predictive magnitude maps
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
US9037938B2 (en) Hardware architecture and implementation of low power layered multi-level LDPC decoder
CN113517895A (zh) 用于准循环低密度奇偶校验码的垂直分层解码的方法及装置
Blad et al. FPGA implementation of rate-compatible QC-LDPC code decoder
Ren et al. An NB-LDPC decoder algorithm combined using channel information for storage application
Zhou et al. Efficient symbol reliability based decoding for QCNB-LDPC codes
Balasubramanian ITERATIVE DECODING OF SPATIALLY-COUPLED PRODUCT CODES USING GUESSING RANDOM ADDITIVE NOISE DECODING ALGORITHMS
KR20230029168A (ko) 비이진 저밀도 패리티 검사 코드 디코더, 그것의 동작방법 및 메모리 시스템
Zhu et al. Memory efficient LDPC code design for high throughput software defined radio (SDR) systems

Legal Events

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