CN105680877B - 一种cc-qc-ldpc码的构建方法及译码装置 - Google Patents

一种cc-qc-ldpc码的构建方法及译码装置 Download PDF

Info

Publication number
CN105680877B
CN105680877B CN201410662824.5A CN201410662824A CN105680877B CN 105680877 B CN105680877 B CN 105680877B CN 201410662824 A CN201410662824 A CN 201410662824A CN 105680877 B CN105680877 B CN 105680877B
Authority
CN
China
Prior art keywords
node
check
variable node
subcode
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.)
Expired - Fee Related
Application number
CN201410662824.5A
Other languages
English (en)
Other versions
CN105680877A (zh
Inventor
吕青
范剑峰
岑超荣
谭伟文
刘重明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hong Kong Polytechnic University HKPU
Original Assignee
Hong Kong Polytechnic University HKPU
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 Hong Kong Polytechnic University HKPU filed Critical Hong Kong Polytechnic University HKPU
Priority to CN201410662824.5A priority Critical patent/CN105680877B/zh
Priority to US14/826,161 priority patent/US9825650B2/en
Publication of CN105680877A publication Critical patent/CN105680877A/zh
Application granted granted Critical
Publication of CN105680877B publication Critical patent/CN105680877B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/1154Low-density parity-check convolutional codes [LDPC-CC]
    • 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/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种CC‑QC‑LDPC码的构建方法及译码装置,存储器包含4个分组12、13、14、15,分别存储指定的信息,子译码器11每次迭代包括与子码校验矩阵中子矩阵行数J相同数量的译码状态,每个译码状态更新一个层,每一层的z个校验节点被分为G个阶段处理,每个译码状态包括G个译码阶段,每个译码阶段内有z/G个校验节点并行处理并且有z/G个校验节点和相关联的变量节点被更新。实施本发明的有益效果是,LDPC码的长度得到了有效而又高效的扩展,译码准确度有了大幅度提高,降低了存储的需求量,译码装置的复杂度与误码率相近的其他编码相比较低并且有较高的吞吐率,整体性能优越。

Description

一种CC-QC-LDPC码的构建方法及译码装置
技术领域
本发明涉及通讯领域中关于前向差分纠错技术领域,更具体地说,涉及一种CC-QC-LDPC码的构建方法及译码装置。
背景技术
低密度奇偶校验(LDPC)码是一种线性分组码,由于这类编码具有接近信道容量的特性,其在无线通信、卫星通信等通信领域得到了广泛应用。
准循环低密度奇偶校验码(QC-LDPC)是LDPC码中一个结构性较强的子类,其特点是译码器结构简单而同时译码效果并不低于任意结构的LDPC码,因而在LDPC译码装置的设计中被广泛使用。
LDPC码通常有两种表示方式。第一种表示是一个只含有元素“0”和“1”的稀疏矩阵H,称为校验矩阵;第二种表示是一个由节点与连线构成的二分图,称为Tanner图。图1和图2分别示出了同一个QC-LDPC码的以上两种表示方式。H中的每一行与每一列分别对应于Tanner图中的每一个校验节点和每一个变量节点。H中的“1”表示码字中变量的约束关系,在Tanner图中表现为对应的变量节点与校验节点被一条线相连接。
在实际应用中,LDPC码的长度会受到解码电路复杂度的限制,从而使得其误码率(BER)相比于具有同等解码器复杂度的卷积码而言有一定的差距。另一方面,卷积码在应用中同样具有缺点,如解码电路对存储器需求较大等。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述在实际应用中,LDPC码的长度会受到解码电路复杂度的限制,从而使得其误码率相比于具有同等解码器复杂度的卷积码而言有一定的差距以及卷积码在应用解码电路对存储器需求较大,提供一种CC-QC-LDPC码构建方法及译码装置。
本发明解决其技术问题,所采用的技术方案是:构造一种CC-QC-LDPC码方法,包含以下步骤:
将每一个子码的校验矩阵水平的划分为左边矩阵、中间矩阵以及右边矩阵,所述校验矩阵的每一个子矩阵都被完整划分到所述左边矩阵、中间矩阵或者右边矩阵中的一个。连接所有的子码并进行循环混叠形成总码字,在混叠部分相邻的子码共同占有一定数量的码位,前一个子码的右边矩阵与后一个子码的左边矩阵在总码字中占有相同的列,最后一个子码的右边矩阵与第一个子码的左边矩阵在总码字中占有相同的列。
为了解决上述技术问题,本发明还提供了一种CC-QC-LDPC码译码装置,用于循环耦合准循环低密度奇偶校验编码的译码,包括:用于对子码进行译码工作的子译码器以及用于控制所述子译码器进行译码工作的全局控制器,所述子译码器包含层译码器和存储器,所述子码由J×L个大小为z×z的子矩阵构成,子矩阵为对单位矩阵进行列循环移位得到的循环矩阵其特征在于:
层译码器包括变量节点处理器和校验节点处理器,用于更新所对应子码的所有层的外部信息。
存储器用于存储关于每个变量节点的信道信息以及在译码过程中各个变量节点与各个校验节点之间传递的外部信息。
全局控制器包括路由控制器和地址控制器,所述存储器和所述层译码器之间以及所述存储器以及所述地址控制器之间通过数据选择器MUX连接,所有的MUX以及存储器的地址都要在所述路由控制器控制下工作。
存储器包含4个存储器组,第一存储器组用于存储相邻子码连接处由两个子码共占的变量节点传递给校验节点的外部信息,并由两个不同的子码译码器进行读和写。第二存储器组用于存储相邻子码连接处由校验节点传递给两个子码共占的变量节点的外部信息,并由两个不同的子码译码器进行读和写。第三存储器组用于存储所属子码内部校验节点与变量节点之间传递的外部信息,并仅由该子码对应的子码译码器进行读和写。第四存储器组用于存储所属子码内部变量节点的信道信息,由所属子码的译码器读取并在对一个码字完成译码后,由所述译码系统的输入端装载新的信道信息。
子码译码器的一次译码过程包括预设次数的译码迭代,每次译码迭代包括与子码校验矩阵中子矩阵行数J相同数量的译码状态,每个译码状态更新一个层,每一层的z个校验节点被分为G个阶段处理,每个译码状态包括G个译码阶段,每个译码阶段内有z/G个校验节点并行处理并且有z/G个校验节点和相关联的变量节点被更新,所述的层是指所述子矩阵中的处于同一行的z个校验节点。
各个存储器组被划分为z/G个分组,每个分组包含深度为G的存储器单元,所述各个分组分别用于存储所述z/G个校验节点和相关联的变量节点被更新时产生的数据,所述深度为G的存储器单元分别用于存储所述G个译码阶段更新时产生的数据。
在本发明所述的译码装置中,每个所述的译码阶段包括四个时钟,每个时钟分别完成数据读取、校验节点更新、变量节点更新和数据写入。G个外部信息组将以流水线技术的方式处理,当读取的数据为第J+1层的第1组数据时开始新的译码状态。
在本发明所述的译码装置中,所有的子译码器同时工作,对循环耦合准循环低密度奇偶校验编码的所有子码并行处理。
在本发明所述的译码装置中,第一存储器组对变量节点传递给校验节点的外部信息的存储采用两个存储器套组交替使用的方式,交替的存储有关一个子码奇数层和偶数层校验节点的外部信息。
在本发明所述的译码装置中,第三存储器组动态地交替存储变量节点传递给校验节点和同一个校验节点传递给同一个变量节点的外部信息。
在本发明所述的译码装置中,校验节点处理器由一系列并行的校验节点处理单元组成,每一个处理单元为一个并行路由的查找表LUT阵列。
在本发明所述的译码装置中,变量节点处理器由一系列并行的变量节点处理单元组成,每一个处理单元为一组加法器阵列。
在本发明所述的译码装置中,所述校验节点处理器按公式αmn进行更新校验节点单元传递给变量节点单元的信息,
所述变量节点处理器按公式下述βmn更新变量节点传递给校验节点的信息,按公式βn更新后验概率信息;
αmn表示由校验节点m传递到变量节点n的外部信息,βmn表示由变量节点n传递到校验节点m的外部信息,λn表示变量节点n的信道信息,M(n)表示与变量节点n相连接的所有校验节点的集合,M(n)\m表示M(n)中除去校验节点m,N(m)表示与校验节点m相连接的所有变量节点的集合,N(m)\n表示N(m)中除去变量节点n,βn表示变量节点n的后验概率信息。
在所述子译码器的一次译码过程最后一次迭代中,变量节点处理器根据当时更新的后验概率信息对所对应的码位进行判决:当βn≥0时,判决值为0,否则判决值为1,在使用补码表示时,判决结果可以通过输出βn的符号位得到。
实施本发明的一种CC-QC-LDPC码的构建方法及译码装置,具有以下有益效果:通过采用循环耦合的方式,LDPC码的长度得到了有效而又高效的扩展,译码准确度有了大幅度提高,通过将存储器划分为4个分组并分别存储不同的信息,降低了存储的需求量,译码装置的复杂度与误码率相近的其他编码相比较低并且有较高的吞吐率,整体性能优越,为LDPC分组码代替卷积码而应用于高质量通信技术提供了一种可能性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为一个QC-LDPC码校验矩阵H的例子;
图2为图1中校验矩阵对应的Tanner图;
图3为本发明CC-QC-LDPC构建方法实施例一循环耦合码构建过程的Tanner图的结构示意图;
图4为本发明CC-QC-LDPC译码装置实施例二的结构示意图;
图5为本发明CC-QC-LDPC译码装置施例二的子译码器并行结构示意图;
图6为本发明CC-QC-LDPC译码装置实施例二的译码流程图;
图7为本发明CC-QC-LDPC译码装置实施例三中深度为14的校验节点处理单元结构示意图;
图8为本发明CC-QC-LDPC译码装置实施例三各RAM组所存储的信息与校验矩阵的关系示意图;
图9为本发明CC-QC-LDPC译码装置实施例三中RAM组14的工作方式示意图;
图10为本发明CC-QC-LDPC译码装置实施例三中校验矩阵及存储器分配方案的示意图;
图11A为图10中CC-QC-LDPC码的译码流程第一个状态第一阶段示意图;
图11B为图10中CC-QC-LDPC码的译码流程第一个状态第二、三阶段示意图;
图11C为图10中CC-QC-LDPC码的译码流程第二个状态第一、二阶段示意图;
图11D为图10中CC-QC-LDPC码的译码流程第二个状态第三阶段示意图;
图12为图10所示CC-QC-LDPC码的译码装置路由电路示意图;
图13为本发明译码装置的误码率仿真曲线。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
实施例一:
在本发明的循环耦合准循环低密度奇偶校验(CC-QC-LDPC)码构建方法第一实施例中,准循环低密度奇偶校验(QC-LDPC)码是LDPC码的一个子类,其每一个码字的分组循环移位也是一个码字。因此,QC-LDPC码的校验矩阵Hc由J×L个大小为z×z的子矩阵构成,其中J为校验矩阵中子矩阵的行数,L为校验矩阵中子矩阵的的列数(这里行数和列数是以子矩阵为校验矩阵的元素前提下得到的),子矩阵为对单位矩阵进行列循环移位得到的循环矩阵。
将QC-LDPC码的校验矩阵水平地划分成为三部分:左边矩阵Hl、中间矩阵Hm以及右边矩阵Hr,即Hc=[Hl Hm Hr],三部分都跨越了所有行但占有相互不同的列,所以它们可以看作是位于同一行,即水平排列的。连接所有的码字并进行循环混叠形成总码字,在混叠部分相邻的子码字共同占有一定数量的码位,前一个子码字的右边矩阵Hr与后一个子码字的左边矩阵Hl在总码字中占有相同的列,最后一个子码字的右边矩阵Hr与第一个子码字的左边矩阵Hl在总码字中占有相同的列。混叠部分所占的列数或者说包括的变量节点数可以有独特灵活的定义。那么一个由K个QC-LDPC码循环耦合组成的CC-QC-LDPC码的校验矩阵可以表示为
其中每一个Hc称为一个子码。如图3所示,为本发明CC-QC-LDPC构建方法实施例一循环耦合码构建过程的Tanner图的结构示意图
实施例二:
如图4所示,为本发明CC-QC-LDPC译码装置实施例二的结构示意图,其中数据选择器MUX以及寄存器未示出。为了方便阐述,本实例仅考虑每个子码都相同的情况,并假设每个Hl和Hr的宽度均为W个子矩阵列。
本实施例中,对CC-QC-LDPC码的译码过程通过I次迭代来完成,每次迭代对所有的外部信息以分层分组的方式进行更新。对于每一个子码,处于每一行的子矩阵中的z个校验节点被称为一层。每一层的z个校验节点被分成G组分阶段处理,每一个阶段有z/G个校验节点和相关联的变量节点被更新。
本发明提出的译码装置架构10由K个子译码模块11和一个控制器18组成,每一个子译码模块11处理一个固定的子码。变量节点传递给校验节点(V2C)的信息以及校验节点传递给变量节点(C2V)的信息分别由变量节点处理器VNP 17以及校验节点处理器CNP 16更新并存储于相应的存储器(RAM)中。根据所存储的数据内容不同,存储器被分成四个RAM组:只存储信道信息(CM)的存储器12,动态存储变量节点传递给校验节点信息和校验节点传递给变量节点信息的存储器13,只存储变量节点传递给校验节点信息的存储器14以及只存储校验节点传递给变量节点信息的存储器15。
一个层译码器(包括VNP和CNP)负责更新其所对应子码20的所有层的外部信息,每一个译码状态更新一个层。按照编码结构的要求,存储器与层译码器(包括VNP和CNP)之间通过数据选择器(MUX)进行连接,所有的MUX以及RAM的地址都要在全局控制器18的控制下工作和选择。
本实施例中的译码装置按照子码间并行、子码内分层和层内分组的流程译码。在对每一个码字译码的开始,所有的子码译码器同时装载新的信道信息并同时开始译码直到译码结束。一个子码译码器的一次译码过程包括I次译码迭代,每次迭代包括J个译码状态,而每个译码状态包括G个译码阶段。
这样,在每个译码阶段内共有z/G个校验节点被并行处理。参考图5,其为CC-QC-LDPC译码装置实施例二的子译码器并行结构示意图,校验节点处理器16和变量节点处理器17分别包含z/G个校验节点处理单元(CNPU)161和z/G个变量节点处理单元(VNPU)171以并行工作。每个变量节点处理单元171由L-W个加法器组成。为保证信息读取不发生冲突,各存储器RAM组30相应地划分成了z/G个分组31,每个分组31包括若干个深度为G的RAM,分别用于存储所述G个译码阶段更新时产生的数据。
一个译码阶段包括四个时钟,每个时钟分别完成数据读取,校验节点更新,变量节点更新和数据写入四个操作步骤。G个外部信息组将以流水线技术的方式处理,即第一个时钟读取第一组数据,第二个时钟更新第一组校验节点同时读取第二组数据,第三个时钟更新第一组变量节点和第二组的校验节点同时读取第三组的数据……直到第j(1≤j≤J)层第G组的数据写入存储器,第j+1层(j=J时则为第1层)的第1组开始读取数据并开始新的状态。整体电路的译码过程如图6所示,其为为本发明CC-QC-LDPC译码装置实施例二的译码流程图。
在等式(1)(2)和(3)中,αmn表示由校验节点m传递到变量节点n的外部信息,βmn表示由变量节点n传递到校验节点m的外部信息,λn表示变量节点n的信道信息,M(n)表示与变量节点n相连接的所有校验节点的集合,M(n)\m表示M(n)中除去校验节点m,N(m)表示与校验节点m相连接的所有变量节点的集合,N(m)\n表示N(m)中除去变量节点n,βn表示变量节点n的后验概率(APP)信息。
根据BP译码算法,变量节点处理器17按照等式(2)(3)更新V2C信息和APP信息,每个处理单元171用一系列加法器来实现。在译码的最后一次(即第I次)迭代中,变量节点处理器17根据当时更新的后验概率信息对所对应的码位进行判决:当βn≥0时,判决值为0,否则判决值为1。在使用补码表示时,判决结果可以通过输出βn的符号位得到。
校验节点处理器16按照等式(1)更新C2V信息,每个处理单元161用一系列查找表LUT来实现。为了使整体的电路复杂度最低,校验节点处理器16采用了只有两个输入的查找表来完成只有两个参数情况下的等式(1),即等式(4)。其中Q表示量化运算。因此,等式(1)可以通过递归地使用等式(4)来完成。
实施例三:
下面以一个深度为dc=14的校验节点的处理单元为例来描述校验节点处理器单元161的设计方法。校验节点的深度,即Tanner图中一个校验节点所连接的变量节点的数量。
一个14输入14输出的校验节点处理单元161由图7所示的拓扑图表示。图7中的每一个节点代表一个查找表,每一个箭头代表了电路的连接以及数据传输方向。I和O分别表示该校验节点处理单元161的每个输入和输出。这样的一个校验节点处理单元可以通过以下两个步骤完成:
1.前向步骤。平行地放置dc-2个LUT以形成一个平衡二叉树。这个二叉树的根节点的输出没有实际用处因而不需要放置对应的LUT。图6的下半部分表示了这个(除去根节点的)平衡二叉树。
2.后向步骤。连接每一个节点与其兄弟节点的子节点,这样从上至下形成了通向每一个输入(树叶)的路径(图6中只用虚线表示了与输出O1相关的路径和LUT)。对于路径中的每一段,都用一个LUT实现并且使对应同一条路径的LUT级联,这样每条路径最后一段对应的LUT的输出即为更新的C2V信息。
采用查找表的方式构建校验节点处理器既不会引起较大的计算误差又尽可能的节省了硬件资源。相比于已有的基于查找表的校验节点更新电路,本发明中的结构在同样的硬件资源条件下,大幅度缩小了电路的时延,提高了所允许的工作时钟频率。
存储器的分配与校验矩阵的划分相对应。如图8所示,其为本发明实施例三各RAM组所存储的信息与校验矩阵的关系示意图。RAM组12存储当前子码校验矩阵中Hm和Hr部分变量节点的信道信息CMm和CMr;RAM组13存储当前子码校验矩阵中Hm和Hr部分变量节点与当前子码校验矩阵中的校验节点Cc之间传递的外部信息,包括变量节点传递给校验节点的信息Vm2Cc和Vr2Cc以及校验节点传递给变量节点的信息Cc2Vm和Cc2Vr;RAM组14存储当前子码校验矩阵中Hl部分(同时也是前一个子码校验矩阵中Hr部分)变量节点传递给当前子码的校验节点Cc的外部信息Vl2Cc;RAM组15存储当前子码的校验节点Cc传递给当前子码校验矩阵中Hl部分(同时也是前一个子码校验矩阵中Hr部分)变量节点的信息Cc2Vl
每个RAM的G个存储单元对应于G个校验节点并按照z/G为间隔采样。如果一个RAM的第一个存储单元涉及所在层的第i个校验节点Ci(1≤i≤z/G),那么随后的存储单元涉及的该层校验节点为Ci+z/G,Ci+2z/G,…,Ci+(g-1)z/G,…,Ci+(G-1)z/G,其中g(1≤g≤G)表示校验节点的组号。不同的RAM组采用不同的存储方案,各自的RAM数量由子码校验矩阵20分别决定。
RAM组12存储所属子码20中属于Hm和Hr部分变量节点的信道信息,信息数量为(L-W)z。所以在分组数为G的条件下,RAM组12包含(L-W)z/G个RAM。
RAM组13存储所属子码20中属于Hm和Hr部分变量节点与校验节点之间的外部信息。在每一个译码状态中,只有一层中的校验节点及相关变量节点被更新,所以在所发明的架构中,只有这一层的变量节点传递给校验节点的外部信息以及其他层的校验节点传递给变量节点的外部信息需要存储。因此,RAM组13中的每个存储单元动态地存储同一组变量节点和校验节点之间的V2C和C2V信息,使得每一对相连接的变量节点和校验节点只占用一个存储单元。所以,RAM组13总共包含J(L-W)z/G个RAM。
RAM组15存储所属子码20中校验节点传递给属于Hl部分变量节点的外部信息。与RAM组13相同,每个变量节点和校验节点的连接占用一个存储单元,所以RAM组15总共包含JWz/G个RAM。
RAM组14存储所属子码20中属于Hl部分变量节点传递给校验节点的外部信息。由于这部分V2C信息由前一个子码译码器11输出并写入到RAM组14,而写入地址与当前子码译码器11对RAM组14的读取地址冲突,所以设置两个RAM套组交替地存储所属子码20中的奇数层与偶数层的信息。
如图9所示,其为本发明CC-QC-LDPC译码装置实施例三中RAM组14的工作方式示意图。假设第一个状态更新当前子码20的第一层,Hl部分的V2C1信息从套组1读出。同时下一个状态下需要读取的第二层信息V2C2由前一个子码译码器11写入套组2中。这样到了第二个状态,也就是当前子码20的第二层外部信息更新的时候,V2C2从套组2读出,同时第三层信息V2C3写入到套组1中并替换掉V2C1……以此类推。所以RAM组14总共包含2Wz/G个RAM。
总体来说,在整个译码装置中,深度为G的RAM的用量为:
·K(L-W)z/G个RAM存储信道信息;
·KJ(L-W)z/G个RAM动态地存储V2C和C2V信息;
·KJWz/G个RAM存储V2C信息;
·2KWz/G个RAM存储C2V信息。
下面参考具体例子来进一步描述本实例中译码装置的工作原理。在这个例子中各参数为K=2,L=4,J=2,W=1,z=G=3。如图10所示,其为本发明CC-QC-LDPC译码装置实施例三中校验矩阵及存储器分配方案的示意图。
每一层的3个校验节点被分成三组,每组包括一个校验节点。对于子码a,第一层的第一组校验节点为C1,第二组校验节点为C2,第三组校验节点为C3;第二层第一组校验节点为C4,第二组校验节点为C5,第三组校验节点为C6。对于子码b,第一层的第一组校验节点为C7,第二组校验节点为C8,第三组校验节点为C9;第二层第一组校验节点为C10,第二组校验节点为C11,第三组校验节点为C12。每个子码译码器使用13个RAM存储信道信息和外部信息,总共使用26个深度为3的RAM。
RAMa1的第一个存储位置用于存储变量节点V1传递给校验节点C1的外部信息,第二个存储位置存储变量节点V1传递给校验节点C2的外部信息,第三个存储位置存储变量节点V3传递给校验节点C3的外部信息。RAMa2的第一个存储位置用于存储变量节点V2传递给校验节点C4的外部信息,第二个存储位置存储变量节点V3传递给校验节点C5的外部信息,第三个存储位置存储变量节点V1传递给校验节点C6的外部信息。
RAMa3的第一个存储位置用于存储校验节点C1传递给变量节点V1的外部信息,第二个存储位置用于存储校验节点C2传递给变量节点V2的外部信息,第三个存储位置用于存储校验节点C3传递给变量节点V3的外部信息。RAMa4的第一个存储位置用于存储校验节点C4传递给变量节点V2的外部信息,第二个存储位置用于存储校验节点C5传递给变量节点V3的外部信息,第三个存储位置用于存储校验节点C6传递给变量节点V1的外部信息。
RAMa5的第一个存储位置用于存储变量节点V5与校验节点C1之间的外部信息,第二个存储位置用于存储变量节点V6与校验节点C2之间的外部信息,第三个存储位置用于存储变量节点V4与校验节点C3之间的外部信息。RAMa6的第一个存储位置用于存储变量节点V4与校验节点C4之间的外部信息,第二个存储位置用于存储变量节点V5与校验节点C5之间的外部信息,第三个存储位置用于存储变量节点V6与校验节点C6之间的外部信息。
RAMa7的第一个存储位置用于存储变量节点V9与校验节点C1之间的外部信息,第二个存储位置用于存储变量节点V7与校验节点C2之间的外部信息,第三个存储位置用于存储变量节点V8与校验节点C3之间的外部信息。RAMa8的第一个存储位置用于存储变量节点V9与校验节点C4之间的外部信息,第二个存储位置用于存储变量节点V7与校验节点C5之间的外部信息,第三个存储位置用于存储变量节点V8与校验节点C6之间的外部信息。
RAMa9的第一个存储位置用于存储变量节点V11与校验节点C1之间的外部信息,第二个存储位置用于存储变量节点V12与校验节点C2之间的外部信息,第三个存储位置用于存储变量节点V10与校验节点C3之间的外部信息。RAMa10的第一个存储位置用于存储变量节点V12与校验节点C4之间的外部信息,第二个存储位置用于存储变量节点V10与校验节点C5之间的外部信息,第三个存储位置用于存储变量节点V11与校验节点C6之间的外部信息。
RAMa11的第一个存储位置用于存储变量节点V4的信道信息,第二个存储位置用于存储变量节点V5的信道信息,第三个存储位置用于存储变量节点V6的信道信息。RAMa12的第一个存储位置用于存储变量节点V7的信道信息,第二个存储位置用于存储变量节点V8的信道信息,第三个存储位置用于存储变量节点V9的信道信息。RAMa13的第一个存储位置用于存储变量节点V10的信道信息,第二个存储位置用于存储变量节点V11的信道信息,第三个存储位置用于存储变量节点V12的信道信息。
RAMb1的第一个存储位置用于存储变量节点V10传递给校验节点C7的外部信息,第二个存储位置存储变量节点V11传递给校验节点C8的外部信息,第三个存储位置存储变量节点V12传递给校验节点C9的外部信息。RAMb2的第一个存储位置用于存储变量节点V11传递给校验节点C7的外部信息,第二个存储位置存储变量节点V12传递给校验节点C8的外部信息,第三个存储位置存储变量节点V10传递给校验节点C9的外部信息。
RAMb3的第一个存储位置用于存储校验节点C7传递给变量节点V10的外部信息,第二个存储位置用于存储校验节点C8传递给变量节点V11的外部信息,第三个存储位置用于存储校验节点C9传递给变量节点V12的外部信息。RAMb4的第一个存储位置用于存储校验节点C10传递给变量节点V11的外部信息,第二个存储位置用于存储校验节点C11传递给变量节点V12的外部信息,第三个存储位置用于存储校验节点C12传递给变量节点V10的外部信息。
RAMb5的第一个存储位置用于存储变量节点V14与校验节点C7之间的外部信息,第二个存储位置用于存储变量节点V15与校验节点C8之间的外部信息,第三个存储位置用于存储变量节点V13与校验节点C9之间的外部信息。RAMb6的第一个存储位置用于存储变量节点V13与校验节点C10之间的外部信息,第二个存储位置用于存储变量节点V14与校验节点C11之间的外部信息,第三个存储位置用于存储变量节点V15与校验节点C12之间的外部信息。
RAMb7的第一个存储位置用于存储变量节点V18与校验节点C10之间的外部信息,第二个存储位置用于存储变量节点V16与校验节点C11之间的外部信息,第三个存储位置用于存储变量节点V17与校验节点C12之间的外部信息。RAMb8的第一个存储位置用于存储变量节点V18与校验节点C10之间的外部信息,第二个存储位置用于存储变量节点V16与校验节点C11之间的外部信息,第三个存储位置用于存储变量节点V17与校验节点C12之间的外部信息。
RAMb9的第一个存储位置用于存储变量节点V2与校验节点C7之间的外部信息,第二个存储位置用于存储变量节点V3与校验节点C8之间的外部信息,第三个存储位置用于存储变量节点V1与校验节点C9之间的外部信息。RAMb10的第一个存储位置用于存储变量节点V3与校验节点C10之间的外部信息,第二个存储位置用于存储变量节点V1与校验节点C11之间的外部信息,第三个存储位置用于存储变量节点V2与校验节点C12之间的外部信息。
RAMb11的第一个存储位置用于存储变量节点V13的信道信息,第二个存储位置用于存储变量节点V14的信道信息,第三个存储位置用于存储变量节点V15的信道信息。RAMb12的第一个存储位置用于存储变量节点V16的信道信息,第二个存储位置用于存储变量节点V17的信道信息,第三个存储位置用于存储变量节点V18的信道信息。RAMb13的第一个存储位置用于存储变量节点V1的信道信息,第二个存储位置用于存储变量节点V2的信道信息,第三个存储位置用于存储变量节点V3的信道信息。
子码a从它的第一层开始更新,子码b从它的第二层开始更新。每次迭代分为两个状态,每个状态包括三个阶段。对于每一个子码20,每个阶段有一个校验节点和三个变量节点被更新,因此校验节点处理器16和变量节点处理器17都只有一个处理单元,其中变量节点处理单元171由三个加法器组成。
图11A-11D为图10所示CC-QC-LDPC码的译码流程示意图。参考图11A,在每次迭代的开始,RAMa5、RAMa7、RAMa9和RAMb6、RAMb8、RAMb10存储变量节点传递给校验节点的外部信息;RAMa6、RAMa8、RAMa10和RAMb5、RAMb7、RAMb9存储检验节点传递给变量节点的外部信息。
第一个状态的第一阶段,子码a的校验节点C1被更新。变量节点V1、V5、V9和V11传递给C1的外部信息分别从RAMa1、RAMa5、RAMa7和RAMa9的第一个存储单元中读出,并输入到校验节点处理器中16以得到更新的校验节点C1传递给变量节点V1、V5、V9和V11的外部信息。这些更新的C2V信息分别写入到RAMa3、RAMa5、RAMa7和RAMa9的第一个存储单元中,并且其中的C12V5、C12V9和C12V11也输入到变量节点处理器17中。
紧接着,变量节点V5、V9和V11被更新。校验节点传递给这些变量节点的外部信息C52V5、C42V9、C62V11、C82V11、C102V11分别从RAMa6的第二个存储单元、RAMa8的第一个存储单元、RAMa10的第三个存储单元、RAMb3的第二个存储单元、RAMb4的第一个存储单元中读出。同时这些变量节点的信道信息CM5、CM9、CM11分别从RAMa11的第二个存储单元、RAMa12的第三个存储单元、RAMa13的第二个存储单元中读出。在该阶段中更新的校验节点传递给变量节点的信息与以上所述的校验节点传递给变量节点的信息以及各变量节点的信道信息在变量节点处理器17中进行加法运算以得到更新后的变量节点传递给校验节点的外部信息V52C5、V92C4、V112C6、V112C8并分别写入RAMa6的第二个存储单元、RAMa8的第一个存储单元、RAMa10的第三个存储单元、RAMb1的第二个存储单元。同时,V5、V9和V11的后验概率信息也被更新。
在同一个阶段,子码b中的校验节点C10同时被更新。变量节点V11、V13、V18和V3传递给C10的外部信息分别从RAMb2、RAMb6、RAMb8和RAMb10的第一个存储单元中读出,并输入到校验节点处理器中16以得到更新的校验节点C10传递给变量节点V11、V13、V18和V3的外部信息。这些更新的C2V信息分别写入到RAMb4、RAMb6、RAMb8和RAMb10的第一个存储单元中,并且其中的C102V13、C102V18和C102V3也输入到变量节点处理器17中。
紧接着,变量节点V13、V18和V3被更新。校验节点传递给这些变量节点的外部信息C92V13、C72V18、C82V3、C32V3、C52V3分别从RAMb5的第三个存储单元、RAMb7的第一个存储单元、RAMb9的第二个存储单元、RAMa3的第三个存储单元、RAMa4的第二个存储单元中读出。同时这些变量节点的信道信息CM13、CM18、CM3分别从RAMb11的第一个存储单元、RAMb12的第三个存储单元、RAMb13的第三个存储单元中读出。在该阶段中更新的校验节点传递给变量节点的信息与以上所述的校验节点传递给变量节点的信息以及各变量节点的信道信息在变量节点处理器17中进行加法运算以得到更新后的变量节点传递给校验节点的外部信息V132C9、V182C7、V32C8、V32C5并分别写入RAMb5的第三个存储单元、RAMb7的第一个存储单元、RAMb9的第二个存储单元、RAMa2的第二个存储单元。同时,V13、V18和V3的后验概率信息也被更新。
一次迭代中的其余5个阶段可以依此推出并在图11B、图11C和图11D中示出。在外部信息更新的过程中,对于RAM组13(编号5-10的RAM)的存储单元,每次写入的外部数据类型与读出的外部数据类型都是不同的,因而变量节点传递给校验节点的外部信息与校验节点传递给变量节点的外部信息是动态交换存储的。
存储器与处理器之间以及存储器与控制器之间的连接可以以RAMa5为例来描述,如图12所示,其为图10所示CC-QC-LDPC码的译码装置路由电路示意图。可以看到,在处理器的输入端,RAMa5与RAMa6是交替连接的,而在存储器的输入端,校验节点处理器16和变量节点处理器17是交替连接的。这些连接都要通过数据选择器MUX并受到路由控制器的调配。此例子中的MUX有两个输入和一个输出,输出的选择取决于状态控制信号S0。在第一个状态下,路由控制器输出的选择信号为低电平(S0=0),此时RAMa5的地址信号与初始值为0的计数器相连接,因而其第一个存储单元(地址为0)被访问。如前所述,此时的RAMa5输出V52C1并且写入C12V5,所以它的数据端口应该连接校验节点处理器16的输出端口,并且校验节点处理器16的对应输入端口也应该连接到RAMa5的输出端口上。在第二个状态的第一个时钟下,RAMa5输出C32V4并且写入V42C3,此时路由控制器输出的选择信号为高电平(S0=1),所以它的第三个存储单元(地址为2)被访问,其输入和输出端口相应地与变量节点处理器17的输出和输入端口相连接。每切换一次状态,路由控制器就会通过状态控制信号S0切换相应端口的连接。
图13为本发明译码装置的误码率仿真曲线,图中示出了四个不同大小的CC-QC-LDPC码和一个译码器复杂度相近的LDPC卷积码(LDPCCC)的误码率与信噪比关系曲线(4比特量化)。图中四个CC-QC-LDPC码的参数为K=4、J=4、L=28、W=4、I=10。LDPCCC码参数为z=512、G=512、I=18。其中,最长的CC-QC-LDPC码(z=1024,码长98304比特)的误码率曲线逼近于LDPCCC的误码率曲线。针对于该码的译码装置在Altera Stratix IV可编程逻辑阵列(FPGA)上的实现,共使用了79514个组合式自适应查找表(Combinational ALUT),43801个寄存器(Register)和2359296比特的存储空间。在100兆赫兹的时钟频率下,该译码装置的信息吞吐率可以达到1.55Gbps(千兆比特每秒)。在信噪比为3.50dB的条件下,对1.14×1016比特信息的试验中没有找到错误译码。
本领域技术人员应当理解,虽然在本发明实例中,循环耦合码的子码都是准循环(QC)码,但本发明并不局限于此。在本发明的其他实例中,每个子码可以有任意的结构特点。相应地,译码装置的构架需要进行相应的调整。
本领域技术人员应当理解,虽然在本发明实例中,CC-QC-LDPC码的每个子码是相同的,但本发明并不局限于此。在本发明的其他实例中,每个子码可以有不同的结构和尺寸。相应地,每个子译码器占用的资源及其之间的协作方式需要相应地调整和控制。
本领域技术人员应当理解,虽然在本发明实例中,对每一个子码分配一个固定的子译码器并且对所有子码同时进行处理,然而本发明并不局限于此。在本发明的其他实例中,可以只分配一个子译码器对所有的子码按一定顺序处理;或者分配多于一个的子译码器同时对一组子码进行处理,不同组按顺序处理。这样译码装置的硬件复杂度将进一步降低,从而节省硬件资源。
本领域技术人员应当理解,虽然在本发明实例中,每个子译码器将一个层译码器复用以处理一个子码的所有层,然而本发明并不局限于此。在本发明的其他实例中,可以对每一层分别分配一个专属的层译码器,可以节省大量的数据选择器并使控制器简化。
本领域技术人员应当理解,虽然在本发明实例中,每一层外部信息的处理按照先更新校验节点然后更新变量节点的顺序,然而本发明并不局限于此。在本发明的其他实例中,变量节点处理器17可以放置于校验节点处理器16之前。相应地,存储器中只存储校验节点传递给变量节点的外部信息,所占用的存储空间保持不变。
本领域技术人员应当理解,虽然在本发明实例中,每一层的校验节点分成G组并分阶段处理,但本发明并不局限于此。在本发明的其他实例中,如果每一层的变量节点与校验节点连接足够小,可以同时处理一层当中的所有校验节点,这时候存储器可以用寄存器取代RAM来实现,控制器只需要控制信号的连接而不再需要控制地址。通过这种方式,可以有效减少译码时间,提高译码装置的吞吐率。
本领域技术人员应当理解,虽然在本发明实例中,变量节点的后验概率信息由变量节点处理器输出并连续更新,但本发明并不局限于此。在本发明的其他实例中,可以通过额外的电路在迭代结束的时候更新变量节点的后验概率信息并由此做出判决,这样可以降低变量节点处理器17的复杂度。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求保护的范围情况下,还可做出很多形式,这些均在本发明的保护之内。

Claims (10)

1.一种CC-QC-LDPC码的构建方法,其特征在于包含以下步骤:
将每一个子码的校验矩阵水平的划分为左边矩阵、中间矩阵以及右边矩阵,所述校验矩阵的每一个子矩阵都被完整划分到所述左边矩阵、中间矩阵或者右边矩阵中的一个;
连接所有的子码并进行循环混叠形成总码字,在混叠部分相邻的子码共同占有一定数量的码位,前一个子码的右边矩阵与后一个子码的左边矩阵在总码字中占有相同的列,最后一个子码的右边矩阵与第一个子码的左边矩阵在总码字中占有相同的列。
2.一种CC-QC-LDPC码的译码装置(10),用于CC-QC-LDPC码的译码,包括:用于对子码进行译码工作的子译码器(11)以及用于控制所述子译码器进行译码工作的全局控制器(18),所述子译码器包含层译码器和存储器,所述子码的校验矩阵由J×L个大小为z×z子矩阵构成,所述子矩阵为对单位矩阵进行列循环移位形成的循环矩阵,其特征在于:
所述层译码器包括变量节点处理器(17)和校验节点处理器(16),用于更新所对应子码的所有层的外部信息;
所述存储器用于存储关于每个变量节点的信道信息以及在译码过程中各个变量节点与各个校验节点之间传递的外部信息;
所述全局控制器(18)包括路由控制器和地址控制器,所述存储器和所述层译码器之间以及所述存储器和所述地址控制器之间通过数据选择器MUX连接;
所述存储器包含4个存储器组,分别记为第一存储器组(14)、第二存储器组(15)、第三存储器组(13)以及第四存储器组(12);
所述第一存储器组(14)用于存储相邻子码连接处由两个子码共占的变量节点传递给较后一个子码的校验节点的外部信息,并由两个不同的子码译码器进行读和写;
所述第二存储器组(15)用于存储相邻子码连接处由较后一个子码的校验节点传递给两个子码共占的变量节点的外部信息,并由两个不同的子码译码器进行读和写;
所述第三存储器组(13)用于存储所属子码内部校验节点与变量节点之间传递的外部信息,并仅由该子码对应的子码译码器进行读和写;
所述第四存储器组(12)用于存储所属子码内部变量节点的信道信息,由所属的子码译码器读取并在对一个码字完成译码后,由译码系统的输入端装载新的信道信息;
所述子译码器的一次译码过程包括预设次数的译码迭代,每次译码迭代包括与子码校验矩阵中子矩阵行数J相同数量的译码状态,每个译码状态更新一个层,每一层的z个校验节点被分为G个阶段处理,每个译码状态包括G个译码阶段,每个译码阶段内有z/G个校验节点并行处理并且有z/G个校验节点和相关联的变量节点被更新,所述的层是指所述子矩阵中的处于同一行的z个校验节点;
各个存储器组被划分为z/G个分组,每个分组包含深度为G的存储器单元,各个分组分别用于存储所述z/G个校验节点和相关联的变量节点被更新时产生的数据,所述深度为G的存储器单元分别用于存储所述G个译码阶段更新时产生的数据。
3.如权利要求2所述的装置,其特征在于,每个所述的译码阶段包括四个时钟,每个时钟分别完成数据读取、校验节点更新、变量节点更新和数据写入,G个外部信息组以流水线技术的方式处理,当读取到的数据为第J+1层的第1组数据时开始新的译码状态。
4.根据权利要求2所述的装置,其特征在于,所有的子译码器(11)同时工作,对CC-QC-LDPC码的所有子码并行处理。
5.根据权利要求2所述的装置,其特征在于,所述的第一存储器组(14)对变量节点传递给校验节点的外部信息的存储采用两个存储器套组交替使用的方式,交替的存储有关一个子码奇数层和偶数层校验节点的外部信息。
6.根据权利要求2所述的装置,其特征在于,所述的第三存储器组(13)动态地交替存储变量节点传递给校验节点和同一个校验节点传递给同一个变量节点的外部信息。
7.根据权利要求2所述的装置,其特征在于,所述校验节点处理器(16)由一系列并行的校验节点处理单元(161)组成,每一个处理单元为一个并行路由的查找表LUT阵列。
8.根据权利要求2所述的装置,其特征在于,所述的变量节点处理器(17)由一系列并行的变量节点处理单元(171)组成,每一个处理单元为一组加法器阵列。
9.根据权利要求2所述的装置,其特征在于,所述校验节点处理器(16)按公式αmn进行更新校验节点单元(161)传递给变量节点单元(171)的信息,
所述变量节点处理器(17)按公式βmn更新变量节点单元(171)传递给校验节点单元(161)的信息,按公式βn更新后验概率信息,
其中,αmn表示由校验节点m传递到变量节点n的外部信息,βmn表示由变量节点n传递到校验节点m的外部信息,λn表示变量节点n的信道信息,M(n)表示与变量节点n相连接的所有校验节点的集合,M(n)\m表示M(n)中除去校验节点m,N(m)表示与校验节点m相连接的所有变量节点的集合,N(m)\n表示N(m)中除去变量节点n,βn表示变量节点n的后验概率信息。
10.根据权利要求2所述的装置,其特征在于,在所述子译码器(11)的一次译码过程最后一次迭代中,变量节点处理器(17)根据当时更新的后验概率信息对所对应的码位进行判决:当βn≥0时,判决值为0,否则判决值为1,在使用补码表示时,判决结果可以通过输出βn的符号位得到。
CN201410662824.5A 2014-11-19 2014-11-19 一种cc-qc-ldpc码的构建方法及译码装置 Expired - Fee Related CN105680877B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410662824.5A CN105680877B (zh) 2014-11-19 2014-11-19 一种cc-qc-ldpc码的构建方法及译码装置
US14/826,161 US9825650B2 (en) 2014-11-19 2015-08-13 Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410662824.5A CN105680877B (zh) 2014-11-19 2014-11-19 一种cc-qc-ldpc码的构建方法及译码装置

Publications (2)

Publication Number Publication Date
CN105680877A CN105680877A (zh) 2016-06-15
CN105680877B true CN105680877B (zh) 2019-06-28

Family

ID=55962646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410662824.5A Expired - Fee Related CN105680877B (zh) 2014-11-19 2014-11-19 一种cc-qc-ldpc码的构建方法及译码装置

Country Status (2)

Country Link
US (1) US9825650B2 (zh)
CN (1) CN105680877B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509603B2 (en) * 2016-07-29 2019-12-17 Western Digital Technologies, Inc. Hierarchical variable code rate error correction coding
US10374639B2 (en) 2016-12-06 2019-08-06 Western Digital Technologies, Inc. Adaptive bit-flipping decoder based on dynamic error information
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
US10284233B2 (en) 2016-12-06 2019-05-07 Western Digital Technologies, Inc. ECC adjustment based on dynamic error information
WO2018128559A1 (en) * 2017-01-09 2018-07-12 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
US20190222230A1 (en) * 2018-01-18 2019-07-18 Avago Technologies International Sales Pte. Limited Systems and methods for an efficiently routable low-density parity-check (ldpc) decoder
CN112994706A (zh) * 2019-12-02 2021-06-18 深圳市中兴微电子技术有限公司 译码方法、装置、设备及存储介质
US11575390B2 (en) 2021-07-02 2023-02-07 Hong Kong Applied Science and Technology Research Insitute Co., Ltd. Low-latency segmented quasi-cyclic low-density parity-check (QC-LDPC) decoder

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035556A (zh) * 2009-10-05 2011-04-27 香港理工大学 对数据进行编码及解码的方法和系统
CN102696176A (zh) * 2011-07-27 2012-09-26 华为技术有限公司 译码装置
WO2014122772A1 (ja) * 2013-02-08 2014-08-14 三菱電機株式会社 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder
US8145986B2 (en) * 2008-09-22 2012-03-27 Broadcom Corporation Multi-CSI (Cyclic Shifted Identity) sub-matrix based LDPC (Low Density Parity Check) codes
US9015550B2 (en) * 2012-10-05 2015-04-21 Lsi Corporation Low density parity check layer decoder for codes with overlapped circulants

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035556A (zh) * 2009-10-05 2011-04-27 香港理工大学 对数据进行编码及解码的方法和系统
CN102696176A (zh) * 2011-07-27 2012-09-26 华为技术有限公司 译码装置
WO2014122772A1 (ja) * 2013-02-08 2014-08-14 三菱電機株式会社 誤り訂正符号の検査行列のデータ構造、並びに誤り訂正符号の符号化率可変装置および可変方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Spatially Coupled Quasi-Cyclic Quantum LDPC Codes";Manabu HAGIWARA等;《2011 IEEEE Inernational Symposium on Information Theory Proceedings》;20111003;638-642 *

Also Published As

Publication number Publication date
CN105680877A (zh) 2016-06-15
US9825650B2 (en) 2017-11-21
US20160142074A1 (en) 2016-05-19

Similar Documents

Publication Publication Date Title
CN105680877B (zh) 一种cc-qc-ldpc码的构建方法及译码装置
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
RU2395902C2 (ru) Способы и устройство ldpc-кодирования
CN103155421B (zh) Ldpc多解码器架构
US6961888B2 (en) Methods and apparatus for encoding LDPC codes
US10536169B2 (en) Encoder and decoder for LDPC code
CN111162797B (zh) 一种速率兼容的5g ldpc码的编码装置及编码方法
JP2022058949A (ja) 構造的ldpcの符号化、復号化方法および装置
CN106936444B (zh) 一种集合译码方法和集合译码器
WO2011109084A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
KR20110087268A (ko) 디코딩 회로 및 인코딩 회로
JP4339886B2 (ja) マルチレベルの置換を使用する低密度パリティチェック(ldpc)符号動作を行うための方法および装置
CN110278000A (zh) 基于dvb-s2标准的ldpc码并行译码fpga实现架构及译码方法
CN106856406B (zh) 一种译码方法中校验节点的更新方法及译码器
RU2440669C1 (ru) Устройство декодирования, устройство хранения данных, система обмена данными и способ декодирования
CN104579362B (zh) 一种空间通信系统中部分并行结构ldpc码译码系统及其方法
CN114499541A (zh) 分层译码方法、装置、终端设备及介质
CN108449090B (zh) 一种可配置多码长、多码率的ldpc译码器
CN102412844B (zh) 一种ira类ldpc码的译码方法及译码装置
CN102064837A (zh) 基于fifo分段存储的qc-ldpc码部分并行译码方法
JP5488472B2 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
CN111384970B (zh) 一种译码方法、装置及通信设备
JP2009260692A (ja) 復号装置及び復号方法
CN105515588B (zh) 一种ldpc‑cc高速译码器
WO2007082626A2 (en) Method and apparatus for error correction decoding

Legal Events

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

Granted publication date: 20190628

Termination date: 20201119