CN102696176A - 译码装置 - Google Patents

译码装置 Download PDF

Info

Publication number
CN102696176A
CN102696176A CN2011800015834A CN201180001583A CN102696176A CN 102696176 A CN102696176 A CN 102696176A CN 2011800015834 A CN2011800015834 A CN 2011800015834A CN 201180001583 A CN201180001583 A CN 201180001583A CN 102696176 A CN102696176 A CN 102696176A
Authority
CN
China
Prior art keywords
node
check
external information
module
sign indicating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800015834A
Other languages
English (en)
Other versions
CN102696176B (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.)
Huawei Technologies Co Ltd
Hong Kong Polytechnic University HKPU
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd, Hong Kong Polytechnic University HKPU filed Critical Huawei Technologies Co Ltd
Publication of CN102696176A publication Critical patent/CN102696176A/zh
Application granted granted Critical
Publication of CN102696176B publication Critical patent/CN102696176B/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
    • 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/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/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

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

本发明涉及一种译码装置,包括:存储模块,用于存储准循环低密度奇偶校验QC-LDPC码的二分图的各个变量节点的信道信息和在对所述QC-LDPC码进行迭代译码过程中在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息,其中,在所述QC-LDPC码的任意两个相连的校验节点C和变量节点V之间传递的外部信息存储在所述存储模块的相同存储位置中;更新模块,用于在所述QC-LDPC码的每一次迭代译码过程中,根据所述存储模块所存储的信道信息和外部信息,按照将所述QC-LDPC码的各个校验节点划分为多层校验节点并逐层处理的方式,计算在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息,以及用于根据所述存储模块所存储的信道信息和外部信息以及所计算的外部信息来计算所述QC-LDPC码的各个变量节点的后验概率信息;以及,计算模块,用于根据所计算的所述QC-LDPC码的各个变量节点的后验概率信息,计算所述QC-LDPC码的各个码位的判决取值。利用该译码装置,减少了所需的存储资源,降低了译码装置的硬件实现复杂度。

Description

译码装置
技术领域
本发明涉及通信领域,尤其涉及一种用于对低密度奇偶检验码进行译码的译码装置。
背景技术
低密度奇偶校验(LDPC)码是一种线性分组码,其性能接近香农信道容量的极限,因此,LDPC码在无线通信、卫星通信等通信领域中得到了很多应用。
LDPC码通常用稀疏奇偶校验矩阵H表示。图1A示出了校验矩阵H的一个例子。假设LDPC码的校验矩阵H是一个M行×N列的矩阵,则LDPC码也可以用于一个具有M个校验节点和N个变量节点的二分图表示,其中,每一个检验节点表示校验矩阵H的其中一行元素,每一个变量节点表示校验矩阵H的其中一列元素。图1B示出了具有图1A的校验矩阵H的LDPC码的二分图。H矩阵中的“1”代表了变量节点和校验节点之间的连接关系,在二分图中表现为变量节点与校验节点之间的一条边相连。由一条边相连的变量节点和校验节点互称为相邻节点。
在LDPC码的众多译码算法中,分层译码算法具有算法收敛速度更快和误码性能更好的特点,因此,LDPC码的分层译码算法受到了更多的关注,并且已经提出了各种各样实现结构的分层译码器。
参考文献1(Zhongfeng Wang,Zhiqiang Cui,Jin Sha“VLSI Designfor Low-Density Parity-Check Code Decoding”,IEEE CIRCUITS ANDSYSTEM MAGAZINE,FIRST QUARTER 2011)提出了一种分层译码器的实现结构。然而,该分层译码器需要两组存储单元来分别存储在对LDPC码进行迭代译码过程中计算得到的校验节点传递给变量节点的信息和变量节点传递给校验节点的信息,因此,该分层译码器需要更多的存储资源,导致该分层译码器的硬件实现复杂度高。
发明内容
考虑到现有技术的上述问题,本发明的实施例提出一种译码装置,其硬件实现的复杂度低。
按照本发明实施例的一种译码装置,包括:存储模块,用于存储准循环低密度奇偶校验QC-LDPC码的二分图的各个变量节点的信道信息和在对所述QC-LDPC码进行迭代译码过程中在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息,其中,在所述QC-LDPC码的任意两个相连的校验节点和变量节点之间传递的外部信息动态存储在所述存储模块的相同存储位置中;更新模块,用于在所述QC-LDPC码的每一次迭代译码过程中,根据所述存储模块所存储的信道信息和外部信息,按照将所述QC-LDPC码的各个校验节点划分为多层校验节点并逐层处理的方式,计算在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息,以及用于根据所述存储模块所存储的信道信息和外部信息以及所计算的外部信息来计算所述QC-LDPC码的各个变量节点的后验概率信息;以及,计算模块,用于根据所计算的所述QC-LDPC码的各个变量节点的后验概率信息,计算所述QC-LDPC码的各个码位的判决取值。
由于译码装置将在QC-LDPC码的迭代译码过程中QC-LDPC码的任意两个相连的校验节点和变量节点之间传递的外部信息动态存储在存储模块的相同存储位置中,所以减少了译码装置所需的存储资源,降低了译码装置的硬件实现复杂度。
附图说明
本发明的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。其中:
图1A示出了校验矩阵H的一个例子;
图1B示出了具有图1A的校验矩阵H的LDPC码的二分图;
图2示出了按照本发明实施例一的译码装置的结构示意图;
图3示出了按照本发明实施一的层计算模块的结构示意图;
图4示出了按照本发明实施一的处理模块的结构示意图;
图5示出了按照本发明实施例一的QC-LDPC码的校验矩阵H的一个示例;
图6A示出了按照本发明实施例一的第一层校验节点译码的示意图;
图6B示出了按照本发明实施例一的第二层校验节点译码的示意图;
图7示出了现有技术的译码装置的流水调度示意图;以及
图8示出了按照本发明实施例二的译码装置的流水调度示意图。
具体实施方式
本发明的实施例提出了一种用于对准循环低密度奇偶校验(QC-LDPC)码进行译码的译码装置,其将在QC-LDPC码的迭代译码过程中在QC-LDPC码的任意两个相连的校验节点和变量节点之间传递的外部信息动态存储在相同存储位置中,从而减少了译码装置所需的存储资源,降低了译码装置的硬件实现复杂度。
下面,结合附图详细描述本发明的各个实施例。
<实施例一>
QC-LDPC码是LDPC码的一个子类,其校验矩阵H矩阵可由多个属于循环置换矩阵的子矩阵构成,其中,循环置换矩阵是对单位矩阵进行循环右移得到的矩阵。
在本发明实施例一中,假设QC-LDPC码的校验矩阵H由J×L个属于循环置换矩阵的子矩阵构成,每个子矩阵是大小为z×z,则QC-LDPC码具有J×z个校验节点和L×z个变量节点。QC-LDPC码的J×z个校验节点被划分为J层校验节点,每一层校验节点包括z个校验节点。每一层校验节点进一步被划分为G组,则每一组校验节点包括z/G个校验节点。
在本发明实施例一中,对QC-LDPC码的译码进行NMAX次迭代,并且在QC-LDPC码的每一次迭代译码过程中,按照逐层逐组校验节点进行处理并且每组校验节点中的校验节点并行处理的方式来对QC-LDPC码进行译码。
现在参考图2,其示出了按照本发明实施例一的译码装置的结构示意图。如图2所示,译码装置包括存储模块110、更新装置120、地址控制模块130、计算装置140和交换模块150。
其中,存储模块110存储来自信道的QC-LDPC码的各个变量节点的信道信息和在QC-LDPC码的迭代译码过程中在QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息(包括:校验节点传递给与其相连的变量节点的外部信息、变量节点传递给与其相连的校验节点的外部信息)。其中,在QC-LDPC码的任意两个相连的校验节点Ci和变量节点Vj之间传递的外部信息动态存储在存储模块110的相同存储位置中,即,校验节点Ci传递给变量节点Vj的外部信息和变量节点Vj传递给校验节点Ci的外部信息动态存储在存储模块110的同一存储位置中。其中,在QC-LDPC码的每一次迭代译码过程中,在包括校验节点Ci的那一层校验节点的前一层校验节点处理完成之后但在包括校验节点Ci的那一层校验节点开始处理之前,该相同存储位置存储变量节点Vj向校验节点Ci传递的外部信息,以及在包括校验节点Ci的那一层校验节点处理完成之后,该相同存储位置存储校验节点Ci向变量节点Vj传递的外部信息。
更新模块120用于在QC-LDPC码的每一次迭代译码过程中,根据存储模块110所存储的信道信息和外部信息,按照对QC-LDPC码的J层校验节点逐层逐组处理的方式,计算在QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息和QC-LDPC码的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。
地址控制模块130控制更新模块120从存储模块110中读取信道信息和外部信息和向存储模块110写入更新模块120所计算的外部信息的地址。
计算模块140根据在QC-LDPC码的第NMAX次(即最后一次)迭代译码时更新模块120所计算的QC-LDPC码的各个变量节点的后验概率信息,计算QC-LDPC码的各个码位的判决取值。
交换模块150根据QC-LDPC码的各个码位在QC-LDPC码中所处的先后顺序,依次输出所计算的QC-LDPC码的各个码位的判决取值。
如图2所示,更新模块120包括J个层计算模块120-1、120-2、…、120-J。其中,每一个层计算模块120-i(i=1、2、…、J)分别与QC-LDPC码的第i层校验节点相对应,用于在QC-LDPC码的每一次迭代译码过程中,当第i层校验节点的处理次序到达时,以对第i层校验节点的各组校验节点逐组处理的方式,根据存储模块110所存储的外部信息,计算第i层校验节点的每一组校验节点传递给与所述每一组校验节点相连的各个变量节点的外部信息,根据存储模块110所存储的外部信息、信道信息和所计算的所述每一组校验节点传递给与所述每一组校验节点相连的各个变量节点的外部信息,计算与所述每一组校验节点相连的各个变量节点传递给下一层校验节点的外部信息以及与所述每一组校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。
具体的,在QC-LDPC码的每一次迭代译码过程中,层计算模块120-1首先进行工作,然后在层计算模块120-1工作完毕后层计算模块120-2进行工作,接着在层计算模块120-2工作完毕后层计算模块120-3进行工作,依次类推,最后在层计算模块120-(J-1)工作完毕后层计算模块120-J进行工作。
下面,以层计算模块120-J为例解释各个层计算模块的具体工作过程。
首先进行第一步处理,即层计算模块120-J根据存储模块110所存储的外部信息来计算第J层校验节点的第1组校验节点传递给与第J层校验节点的第1组校验节点相连的各个变量节点的外部信息,根据存储模块110所存储的信道信息、外部信息和所计算的第J层校验节点的第1组校验节点传递给与第J层校验节点的第1组校验节点相连的各个变量节点的外部信息,计算与第J层校验节点的第1组校验节点相连的各个变量节点传递给第1层校验节点的外部信息以及与第J层校验节点的第1组校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。
然后,在第一步处理完毕后进行第二步处理,即层计算模块120-J根据存储模块110所存储的外部信息,计算第J层校验节点的第2组校验节点传递给与第J层校验节点的第2组校验节点相连的各个变量节点的外部信息,根据存储模块110所存储的信道信息、外部信息和所计算的第J层校验节点的第2组校验节点传递给与第J层校验节点的第2组校验节点相连的各个变量节点的外部信息,计算与第J层校验节点的第2组校验节点相连的各个变量节点传递给第1层校验节点的外部信息以及与第J层校验节点的第2组校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。
依次类推,最后,在第G-1步处理完毕后进行第G步处理,即层计算模块120-J根据存储模块110所存储的外部信息、计算第J层校验节点的第G组校验节点传递给与第J层校验节点的第G组校验节点相连的各个变量节点的外部信息,根据存储模块110所存储的信道信息、外部信息和所计算的第J层校验节点的第G组校验节点传递给与第J层校验节点的第G组校验节点相连的各个变量节点的外部信息,计算与第J层校验节点的第G组校验节点相连的各个变量节点传递给第1层校验节点的外部信息以及与第J层校验节点的第G组校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。
现在参考图3,其示出了按照本发明实施一的层计算模块的结构示意图。如图3所示,层计算模块120-i(i=1、2、…、J)包括一个处理模块组,其包括z/G个处理模块。
层计算模块120-i(i=1、2、…、J)的处理模块组中的每一个处理模块与J层校验节点的第i层校验节点的每一组校验节点的其中一个校验节点相对应,用于在QC-LDPC码的每一次迭代译码过程中,当第i层校验节点的处理次序到达时,以逐组校验节点进行处理的方式,根据存储模块110所存储的外部信息,计算该其中一个校验节点传递给与该其中一个校验节点相连的各个变量节点的外部信息,根据存储模块110所存储的外部信息、信道信息以及所计算的该其中一个校验节点传递给与该其中一个校验节点相连的各个变量节点的外部信息,计算与该其中一个校验节点相连的各个变量节点传递给下一层校验节点的外部信息以及与该其中一个校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入存储模块110以更新存储模块110所存储的外部信息。层计算模块120-i(i=1、2、…、J)的处理模块组中的各个处理模块并行工作。
例如,假设QC-LDPC码的每一层校验节点包括6个校验节点,每一层校验节点被分成3组校验节点,则每一层校验节点的每一组校验节点包括两个校验节点,分别用校验节点1和校验节点2来表示。相应地,层计算模块120-i(i=1、2、…、J)的处理模块组包括两个处理模块,分别用处理模块1和处理模块2表示,则层计算模块120-i(i=1、2、…、J)的处理模块1与第i层校验节点中的第一组校验节点的校验节点1、第二组校验节点的校验节点1和第三组校验节点的校验节点1相对应,以及层计算模块120-i(i=1、2、…、J)的处理模块2与第i层校验节点中的第一组校验节点的校验节点2、第二组校验节点的校验节点2和第三组校验节点的校验节点2相对应。
现在参考图4,其示出了按照本发明实施一的处理模块的结构示意图。如图4所示,层计算模块120-i(i=1、2、…、J)的处理模块122包括一个校验节点处理器CNP和多个变量节点处理器VNP-k(k=1、2、3、…)。
其中,层计算模块120-i(i=1、2、…、J)的处理模块122的校验节点处理器CNP用于在QC-LDPC码的每一次迭代译码过程中,当第i层校验节点的处理次序到达时,根据存储模块110所存储的与处理模块122所对应的校验节点m相连的各个变量节点传递给该对应的校验节点m的外部信息,计算该对应的校验节点m传递给与该对应的校验节点m相连的各个变量节点的外部信息。
层计算模块120-i(i=1、2、…、J)的处理模块122的每一个变量节点处理器VNP-k对应于与该对应的校验节点m相连的各个变量节点的其中一个变量节点,用于在校验节点处理器CNP计算出该对应的校验节点m传递给该其中一个变量节点的外部信息后,根据所计算的该校验节点m传递给该其中一个变量节点的外部信息、存储模块110所存储的该其中一个变量节点的信道信息和存储模块110所存储的与该其中一个变量节点相连的其他层校验节点传递给该其中一个变量节点的外部信息,计算该其中一个变量节点传递给与该其中一个变量节点相连的下一层校验节点的外部信息和该其中一个变量节点的后验概率信息。
其中,校验节点处理器CNP按照等式(1)来计算校验节点m传递给与校验节点m相连的各个变量节点的外部信息。
&alpha; mn = 2 tanh - 1 ( &Pi; n &prime; &Element; N ( m ) \ n tanh ( &beta; m n &prime; 2 ) ) 等式(1)
在等式(1)中,αmn表示校验节点m传递给与校验节点m相连的变量节点n的外部信息,βmn’表示与校验节点m相连的变量节点n’传递给校验节点m的外部信息,N(m)表示与校验节点m相连的所有变量节点的集合,以及N(m)\n表示集合N(m)中除去变量节点n。
变量节点处理器VNP-k按照等式(2)来计算变量节点n传递给与变量节点n相连的各个校验节点的外部信息。
&beta; m &prime; n = &lambda; n + &Sigma; m &prime; &prime; &Element; M ( n ) \ m &prime; &alpha; m &prime; &prime; n 等式(2)
在等式(2)中,βm’n表示变量节点n传递给与变量节点n相连的校验节点m’的外部信息,λn表示来自信道的变量节点n的信道信息,αm”n表示与变量节点n相连的校验节点m”传递给变量节点n的外部信息,,M(n)表示与变量节点n相连的所有校验节点的集合,以及M(n)\m’表示集合M(n)中除去校验节点m’。
变量节点处理器VNP-k按照等式(3)来计算变量节点n的后验概率信息。
&beta; n = &lambda; n + &Sigma; m &prime; &Element; M ( n ) &alpha; m &prime; n . 等式(3)
在等式(3)中,βn表示变量节点n的后验概率信息,λn表示来自信道的变量节点n的信道信息,αm’n表示与变量节点n相连的校验节点m’传递给变量节点n的外部信息,以及M(n)表示与变量节点n相连的所有校验节点的集合。
计算模块140在QC-LDPC码的第NMAX次(即最后一次)迭代译码时根据变量节点处理器VNP-k所计算的变量节点n的后验概率信息,来计算QC-LDPC码的第n个码位xn的判决取值。即,当βn≥0时,计算QC-LDPC码的第n个码位xn的判决取值为0,即判决xn=0,否则计算QC-LDPC码的第n个码位xn的判决取值为1,即判决xn=1。
下面,参考具体例子来进一步详细描述本发明实施例一的译码装置。
现在参考图5,其示出了按照本发明实施例一的QC-LDPC码的校验矩阵H的一个示例。在本示例中,假定对QC-LDPC码的译码进行NMAX次迭代。
如图5所示,QC-LDPC码的校验矩阵H包括2×3个属于循环置换矩阵的子矩阵,每个子矩阵的大小为3×3。从而,QC-LDPC码具有6个校验节点和9个变量节点。
QC-LDPC码的6个校验节点划分为两层校验节点,每一层校验节点包括3个校验节点,其中,第一层校验节点包括校验节点C1、C2和C3,第二层校验节点包括校验节点C4、C5和C6
每一层校验节点进一步划分为3组校验节点,每组校验节点包括1个校验节点,其中,第一层校验节点的第一组校验节点中的校验节点是C1,第一层校验节点的第二组校验节点中的校验节点是C2,第一层校验节点的第三组校验节点中的校验节点是C3,第二层校验节点的第一组校验节点中的校验节点是C4,第二层校验节点的第二组校验节点中的校验节点是C5,第二层校验节点的第三组校验节点中的校验节点是C6
对应于图5所示的QC-LDPC码,译码装置的存储模块110包括9个存储单元RAM 1、RAM 2、…、RAM 9,每一个存储单元具有三个存储位置。
如图6A所示,存储单元RAM 1的第一个存储位置addr1用于存储位于校验矩阵H的第一个子矩阵中变量节点V2传递给与变量节点V2相连的校验节点C1的外部信息,存储单元RAM 1的第二个存储位置addr2用于存储位于校验矩阵H的第一个子矩阵中变量节点V3传递给与变量节点V3相连的校验节点C2的外部信息,以及存储单元RAM 1的第三个存储位置addr3用于存储位于校验矩阵H的第一个子矩阵中变量节点V1传递给与变量节点V1相连的校验节点C3的外部信息。
存储单元RAM 2的第一个存储位置addr1用于存储位于校验矩阵H的第二个子矩阵中变量节点V4传递给与变量节点V4相连的校验节点C1的外部信息,存储单元RAM 2的第二个存储位置addr2用于存储位于校验矩阵H的第二个子矩阵中变量节点V5传递给与变量节点V5相连的校验节点C2的外部信息,以及存储单元RAM 2的第三个存储位置addr3用于存储位于校验矩阵H的第二个子矩阵中变量节点V6传递给与变量节点V6相连的校验节点C3的外部信息。
存储单元RAM 3的第一个存储位置addr1用于存储位于校验矩阵H的第三个子矩阵中变量节点V8传递给与变量节点V8相连的校验节点C1的外部信息,存储单元RAM 3的第二个存储位置addr2用于存储位于校验矩阵H的第三个子矩阵中变量节点V9传递给与变量节点V9相连的校验节点C2的外部信息,以及存储单元RAM 3的第三个存储位置addr3用于存储位于校验矩阵H的第三个子矩阵中变量节点V7传递给与变量节点V7相连的校验节点C3的外部信息。
存储单元RAM 4的第一个存储位置addr1用于存储位于校验矩阵H的第四个子矩阵中的校验节点C4传递给与校验节点C4相连的变量节点V3的外部信息,存储单元RAM 4的第二个存储位置addr2用于存储位于校验矩阵H的第四个子矩阵中的校验节点C5传递给与校验节点C5相连的变量节点V1的外部信息,以及存储单元RAM 4的第三个存储位置addr3用于存储位于校验矩阵H的第四个子矩阵中的校验节点C6传递给与校验节点C6相连的变量节点V2的外部信息。
存储单元RAM 5的第一个存储位置addr1用于存储位于校验矩阵H的第五个子矩阵中的校验节点C4传递给与校验节点C4相连的变量节点V6的外部信息,存储单元RAM 5的第二个存储位置addr2用于存储位于校验矩阵H的第五个子矩阵中的校验节点C5传递给与校验节点C5相连的变量节点V4的外部信息,以及存储单元RAM 5的第三个存储位置addr3用于存储位于校验矩阵H的第五个子矩阵中的校验节点C6传递给与校验节点C6相连的变量节点V5的外部信息。
存储单元RAM 6的第一个存储位置addr1用于存储位于校验矩阵H的第六个子矩阵中的校验节点C4传递给与校验节点C4相连的变量节点V7的外部信息,存储单元RAM 6的第二个存储位置addr2用于存储位于校验矩阵H的第六个子矩阵中的校验节点C5传递给与校验节点C5相连的变量节点V8的外部信息,以及存储单元RAM 6的第三个存储位置addr3用于存储位于校验矩阵H的第六个子矩阵中的校验节点C6传递给与校验节点C6相连的变量节点V9的外部信息。
存储单元RAM 7用于存储变量节点V2、V3、V1的信道信息,存储单元RAM 8用于存储变量节点V4、V5、V6的信道信息,以及存储单元RAM 9用于存储变量节点V8、V9、V7的信道信息。
译码装置的更新模块120包括两个层计算模块L1和L2,分别与第一层校验节点和第二层校验节点对应。层计算模块L1和L2各自包括一个处理模块组,该处理模块组仅包括一个处理模块,该处理模块包括一个校验节点处理器CNP和三个变量节点处理器VNP。层计算模块L1的处理模块与第一层校验节点的第一、二和三组校验节点中的校验节点C1、C2和C3对应,层计算模块L2的处理模块与第二层校验节点的第一、二和三组校验节点中的校验节点C4、C5和C6对应。
在QC-LDPC码的每一次迭代译码过程中,更新模块120按照逐层逐组校验节点处理的方式来对QC-LDPC码进行译码。
具体地,在QC-LDPC码的每一次迭代译码过程中,首先层计算模块L1按照逐组校验节点处理的方式来分三步来处理第一层校验节点。
第一步,层计算模块L1处理第一层校验节点的第一组校验节点,在这里,第一层校验节点的第一组校验节点仅包括校验节点C1
首先,地址控制模块130根据存储模块110中存储在校验节点C1和与校验节点C1相连的各个变量节点之间传递的外部信息的存储位置和存储模块110中存储在与校验节点C1相连的各个变量节点和与该各个变量节点相连的其它层校验节点之间传递的外部信息的存储位置,控制层计算模块L1的校验节点处理器CNP和三个变量节点处理器VNP各自的读地址和写地址。如图5所示,与校验节点C1相连的变量节点是V2、V4和V8,与变量节点V2相连的其它层校验节点是C6,与变量节点V4相连的其它层校验节点是C5,与变量节点V8相连的其它层校验节点是C5,并且,如前面参考图6A所描述的,存储模块110的存储单元RAM 1的第一个存储位置addre1存储在校验节点C1和变量节点V2之间传递的外部信息,存储模块110的存储单元RAM 2的第一个存储位置addre1存储在校验节点C1和变量节点V4之间传递的外部信息,存储模块110的存储单元RAM 3的第一个存储位置addre1存储在校验节点C1和变量节点V8之间传递的外部信息,存储模块110的存储单元RAM 4的第三个存储位置addre3存储在校验节点C6和变量节点V2之间传递的外部信息,存储模块110的存储单元RAM 5的第二个存储位置addre2存储在校验节点C5和变量节点V4之间传递的外部信息,存储模块110的存储单元RAM 6的第二个存储位置addre2存储在校验节点C8和变量节点V8之间传递的外部信息,因此,在地址控制模块130的控制下,层计算模块L1的校验节点处理器CNP的读地址和写地址都是存储单元RAM 1、RAM 2和RAM 3的第一个存储位置addre1,层计算模块L1的第一个变量节点处理器VNP的读地址是存储单元RAM 4的第三个存储位置addre3和存储单元RAM 7的第一个存储位置addre1以及其写地址是存储单元RAM 4的第三个存储位置addre3,层计算模块L1的第二个变量节点处理器VNP的读地址是存储单元RAM 5的第二个存储位置addre2和存储单元RAM 8的第一个存储位置addre1以及其写地址是存储单元RAM 5的第二个存储位置addre2,层计算模块L1的第三个变量节点处理器VNP的读地址是存储单元RAM 6的第二个存储位置addre2和存储单元RAM 9的第一个存储位置addre1以及其写地址是存储单元RAM 6的第二个存储位置addre2。
然后,层计算模块L1的校验节点处理器CNP从存储单元RAM1、RAM 2和RAM 3各自的第一个存储位置addre1中读取与校验节点C1相连的变量节点V2、V4和V8分别传递给校验节点C1的外部信息,并根据所读取的外部信息按照等式(1)计算校验节点C1分别传递给变量节点V2、V4和V8的外部信息C12V2、C12V4和C12V8并把所计算的外部信息C12V2、C12V4和C12V8分别写入存储单元RAM 1、RAM 2和RAM 3各自的第一个存储位置addre1以更新各自所存储的外部信息。
接着,层计算模块L1的第一个变量节点处理器VNP利用从存储单元RAM 4的第三个存储位置addre3读取的校验节点C6传递给变量节点V2的外部信息C62V2、从存储单元RAM 7的第一个存储位置addre1读取的变量节点V2的信道信息CM2和校验节点处理器CNP所计算的校验节点C1传递给变量节点V2的外部信息C12V2按照等式(2)和等式(3)来计算变量节点V2传递给校验节点C6的外部信息V22C6和变量节点V2的后验概率信息并把所计算的外部信息V22C6写入RAM 4的第三个存储位置addre3以更新其所存储的外部信息,层计算模块L1的第二个变量节点处理器VNP利用从存储单元RAM5的第二个存储位置addre2读取的校验节点C5传递给变量节点V4的外部信息C52V4、从存储单元RAM 8的第一个存储位置addre1读取的变量节点V4的信道信息CM4和校验节点处理器CNP所计算的校验节点C1传递给变量节点V4的外部信息C12V4按照等式(2)和等式(3)来计算变量节点V4传递给校验节点C5的外部信息V42C5和变量节点V4的后验概率信息并把所计算的外部信息V42C5写入RAM5的第二个存储位置addre2以更新其所存储的外部信息,以及,层计算模块L 1的第三个变量节点处理器VNP利用从存储单元RAM 6的第二个存储位置addre2读取的校验节点C5传递给变量节点V8的外部信息C52V8、从存储单元RAM 9的第一个存储位置addre 1读取的变量节点V8的信道信息CM8和校验节点处理器CNP所计算的校验节点C1传递给变量节点V8的外部信息C12V8按照等式(2)和等式(3)来计算变量节点V8传递给校验节点C5的外部信息V82C5和变量节点V8的后验概率信息并把所计算的外部信息V82C5写入RAM 6的第二个存储位置addre2以更新其所存储的外部信息。
第二步和第三步分别是层计算模块L1处理第一层校验节点的第二组校验节点和第三组校验节点,其处理过程与第一步,即层计算模块L1处理第一层校验节点的第一组校验节点类似,并且图6A有详细图示,因此在此不再赘述。
层计算模块L2处理第二层校验节点的第一组校验节点、第二组校验节点和第三组校验节点与上面描述的层计算模块L1处理第一层校验节点的第一组校验节点、第二组校验节点类似,并且图6B有详细图示,因此在此也不再赘述。
当处理完所有层校验节点,则完成QC-LDPC码一次迭代译码的计算处理。进行下一次迭代译码时又重复完成上述的一次迭代译码过程。
在完成QC-LDPC码的预先设定的NMAX次迭代译码后,计算模块140根据在QC-LDPC码的第NMAX次(即最后一次)迭代译码时层计算模块L1和L2的第一、二和三个变量节点处理器VNP所计算的各个变量节点的后验概率信息,计算QC-LDPC码的各个码位的判决取值。
从图6A和图6B可以看出,存储模块110的存储单元RAM1-RAM6的各个存储位置动态存储其中两个相连的校验节点和变量节点之间传递的外部信息。存储在存储模块110的存储单元RAM1-RAM6的各个存储位置中的信息是校验节点传递给变量节点的外部信息还是变量节点传递给校验节点的外部信息取决于正在对QC-LDPC码的哪一层校验节点进行处理。具体地,在QC-LDPC码的每一次迭代译码过程中,当QC-LDPC码的第j-1层校验节点已经处理完毕但第j层校验节点还没有开始处理时,存储单元RAM1-RAM6中与第j层校验节点相关的各个存储位置所存储的外部信息都是变量节点传递给校验节点的外部信息,而存储单元RAM1-RAM6中与其他层校验节点相关的各个存储位置所存储的外部信息都是校验节点传递给变量节点的外部信息,然而,在第j层校验节点已经处理完毕之后,存储单元RAM1-RAM6中与第j层校验节点相关的各个存储位置所存储的外部信息都是更新的校验节点传递给变量节点的外部信息,存储单元RAM1-RAM6中与第j+1层校验节点相关的各个存储位置所存储的外部信息都是更新的变量节点传递给校验节点的外部信息,并且存储单元RAM1-RAM6中与除了j和j+1层之外的其它层校验节点相关的各个存储位置所存储的外部信息保持不变。
由于存储模块110将在QC-LDPC码的迭代译码过程中在QC-LDPC码的任意两个相连的校验节点和变量节点之间传递的外部信息动态存储在相同存储位置中,因此减少了译码装置所需的存储资源,降低了译码装置的硬件实现的复杂度。
<实施例二>
类似于本发明实施例一,本发明实施例二的译码装置也包括存储模块、更新装置、地址控制模块、计算装置和交换模块。为了简单起见,以下仅描述本发明实施例二与本发明实施例一不同的地方,两者相同的地方不再赘述。
本发明实施例二的存储模块包括多个子存储模块,其中,每一个子存储模块与QC-LDPC码的多个码字的其中一个码字相对应,用于存储该其中一个码字的各个变量节点的信道信息和在对该其中一个码字进行迭代译码过程中在该其中一个码字的各个校验节点和各个变量节点之间传递的外部信息,其中,在该其中一个码字的任意两个相连的校验节点和变量节点之间传递的外部信息动态存储在与该其中一个码字相对应的子存储模块的相同存储位置中。
在本发明实施例二中,译码装置采用流水调度的方式来对QC-LDPC码的多个码字进行译码,以减少译码过程中的空闲时隙从而提高处理吞吐量。具体地,本发明实施例二的更新模块中的每一个层计算模块的处理模块组的各个处理模块的处理被分成多个顺序执行的处理步骤,其中,当每一个层计算模块的处理模块组中的各个处理模块的第一个处理步骤完成对该多个码字的其中一个码字的处理后,在没有空闲等待的情况下开始就对另一个码字进行处理。其中,各个处理模块把所计算的每一个码字的各个校验节点和各个变量节点之间传递的外部信息写入存储模块中与每一个码字相应的子存储模块以更新与每一个码字相应的子存储模块所存储的外部信息。
参考图7,其示出了现有技术的译码装置的流水调度示意图。如图7所示,译码装置对三个码字进行译码,其中,L1、L2、L3和L4分别表示第一、二、三和四层校验节点,s1、s2、s3和s4分别表示处理模块的第一、二、三和四个处理步骤。从图7可以看出,译码装置的每一个层计算模块的处理模块的第一个处理步骤在完成一个码字的处理之后,在等待第二、三和四个处理步骤都完成该一个码字的处理之后,才开始执行对另一个码字的处理。可见在现有技术中,译码装置在译码过程中会等待空闲时隙,从而降低了译码装置的处理吞吐量。
参考图8,其示出了按照本发明实施例二的译码装置的流水调度示意图。如图8所示,译码装置以流水调度的方式对六个码字进行译码,其中,L1、L2、L3和L4分别表示第一、二、三和四层校验节点,s1、s2、s3和s4分别表示处理模块的第一、二、三和四个处理步骤。
从图8可以看出,译码装置的每一个层计算模块的处理模块的第一个处理步骤在完成一个码字的处理后,在没有空闲等待(即没有等待第二、三和四个处理步骤都完成该一个码字的处理之后)的情况下就开始就对另一个码字进行处理。可见,本发明实施例二的译码装置在译码过程中没有等待空闲时隙,从而提高了译码装置的处理吞吐量。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,每一个层计算模块的处理模块组中的各个处理模块并行工作,然而,本发明并不局限于此。在本发明的其它实施例中,每一个层计算模块的处理模块组中的各个处理模块也可以依次顺序进行工作。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,每一个层计算模块的处理模块组所包括的处理模块的个数等于每组校验节点中的校验节点个数,然而,本发明并不局限于此。在本发明的其它实施例中,每一个层计算模块的处理模块组中也可以仅包括一个处理模块,其依次对一组校验节点中的各个校验节点进行处理;或者,每一个层计算模块的处理模块组包括多个处理模块但数量比每组校验节点中的校验节点个数少,每个处理模块负责一组校验节点中的其中一部分校验节点的处理。通过这种方式,可以进一步减少译码装置的硬件资源,降低译码装置的硬件实现复杂度。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,每一个层计算模块仅包括一个处理模块组,其对其中一层校验节点中的各组校验节点逐组进行处理,然而,本发明并不局限于此。在本发明的其它实施例中,每一个层计算模块也可以包括多个并行工作的处理模块组,每一个处理模块组负责对该其中一层校验节点中的一组校验节点进行处理,以此加快译码装置的译码速度,提高译码装置的处理吞吐量。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,更新模块包括多个层计算模块,每个层计算模块负责处理其中一层校验节点,然而,本发明并不局限于此。在本发明的其它实施例中,更新模块也可以仅包括一个层计算模块,其依次顺序对各层校验节点进行处理;或者,更新模块包括多个层计算模块但数量比层校验节点的数量少,每一个层计算模块负责处理其中一部分层校验节点。通过这种方式,可以进一步减少译码装置的硬件资源,降低译码装置的硬件实现复杂度。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,译码装置包括地址控制模块,然而,本发明并不局限于此。在本发明的其它实施例中,例如当更新模块包括的层计算模块的个数等于校验节点的层数,每个层计算模块所包括的处理模块组的数量等于每层校验节点中的校验节点的组数,每个处理模块组所包括的处理模块的个数等于每组校验节点中校验节点的个数,从而使得更新模块中的处理模块与QC-LDPC码的校验节点形成一一对应关系时,译码装置可以不包括地址控制模块,因为这种情况下,每一个处理模块的读地址和写地址是固定不变的。
本领域技术人员应当理解,虽然在本发明的实施例一和二中,译码装置包括交换模块,然而,本发明并不局限于此。在本发明的其它实施例中,例如当计算模块能够按照QC-LDPC码的各个码位的先后顺序依次计算得到QC-LDPC码的各个码位的判决取值时,译码装置可以不包括交换模块。
本领域技术人员应当理解,虽然在上面所描述的实施例中,在QC-LDPC码的每一次迭代译码过程中都计算QC-LDPC码的各个变量节点的后验概率信息,然而,本发明并不局限于此。在本发明的其它实施例中,也可以仅在QC-LDPC码的最后一次迭代译码时才计算QC-LDPC码的各个变量节点的后验概率信息。
本领域技术人员应当理解,虽然在上面所描述的内容中,本发明的各个实施例所公开的装置应用于对QC-LDPC码进行预定迭代次数(即NMAX)译码的情形,但是,本发明的各个实施例所公开的装置也可以应用到对QC-LDPC码进行动态译码的情形。
其中,在对QC-LDPC码进行动态译码时,在QC-LDPC码的每一次迭代译码过程中,计算模块140根据更新模块120所计算的QC-LDPC码的各个变量节点的后验概率信息来计算QC-LDPC码的各个码位的判决取值,把所计算的QC-LDPC码的各个码位的判决取值与QC-LDPC码的校验矩阵相乘,判断相乘的结果是否为零,如果判断结果为肯定(即相乘的结果为零),则表明对QC-LDPC码的译码已经成功,从而结束对QC-LDPC码的译码,如果判断结果为否定(即相乘的结果不为零),则进一步判断对QC-LDPC码的迭代译码是否已经达到预定的最大迭代次数,如果进一步判断结果为肯定(即已经达到了预定的最大迭代次数),则结束对QC-LDPC码的译码并输出所计算的QC-LDPC码的各个码位的判决取值作为QC-LDPC码的实际值,如果进一步判断结果为否定(即还没有达到预定的最大迭代次数),则对QC-LDPC码进行下一次迭代译码。
本领域技术人员应当理解,本发明的各个实施例可以在不偏离发明实质的情况下做出各种变形和改变,这些变形和改变都应当落入在本发明的保护范围之内。因此,本发明的保护范围由所附的权利要求书定义。

Claims (13)

1.一种译码装置,包括:
存储模块,用于存储准循环低密度奇偶校验QC-LDPC码的各个变量节点的信道信息和在对所述QC-LDPC码进行迭代译码过程中在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息,其中,在所述QC-LDPC码的任意两个相连的校验节点C和变量节点V之间传递的外部信息动态存储在所述存储模块的相同存储位置中;
更新模块,用于在所述QC-LDPC码的每一次迭代译码过程中,根据所述存储模块所存储的信道信息和外部信息,按照将所述QC-LDPC码的各个校验节点划分为多层校验节点并逐层处理的方式,计算在所述QC-LDPC码的各个校验节点和各个变量节点之间传递的外部信息并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息,以及用于根据所述存储模块所存储的信道信息和外部信息以及所计算的外部信息来计算所述QC-LDPC码的各个变量节点的后验概率信息;以及
计算模块,用于根据所计算的所述QC-LDPC码的各个变量节点的后验概率信息,计算所述QC-LDPC码的各个码位的判决取值。
2.如权利要求1所述的译码装置,其中,
在所述QC-LDPC码的每一次迭代译码过程中,在包括所述校验节点C的那一层校验节点的前一层校验节点处理完成之后但在包括所述校验节点C的那一层校验节点开始处理之前,所述相同存储位置存储所述变量节点V向所述校验节点C传递的外部信息,以及,在包括所述校验节点C的那一层校验节点处理完成之后,所述相同存储位置存储所述校验节点C向所述变量节点V传递的外部信息。
3.如权利要求1或2所述的译码装置,其中,
在所述QC-LDPC码的每一次迭代译码过程中,在包括所述校验节点C的那一层校验节点的前一层校验节点处理完成之后但在包括所述校验节点C的那一层校验节点开始处理之前,所述存储模块中与所述QC-LDPC码的除了包括所述校验节点C的那一层校验节点之外的其它层校验节点相关的各个存储位置存储校验节点传递给变量节点的外部信息,以及,在包括所述校验节点C的那一层校验节点处理完成之后,所述存储模块中与包括所述校验节点C的那一层校验节点的下一层校验节点相关的各个存储位置存储变量节点传递给校验节点的外部信息。
4.如权利要求1、2或3所述的译码装置,其中,
所述更新模块包括多个层计算模块,其中,每一个层计算模块与所述多层校验节点的其中一层校验节点相对应,用于在所述QC-LDPC码的每一次迭代译码过程中,当所述其中一层校验节点的处理次序到达时,根据所述存储模块所存储的外部信息来计算所述其中一层校验节点传递给与所述其中一层校验节点相连的各个变量节点的外部信息,根据所述存储模块所存储的信道信息、外部信息以及所计算的所述其中一层校验节点传递给与所述其中一层校验节点相连的各个变量节点的外部信息,计算与所述其中一层校验节点相连的各个变量节点传递给下一层校验节点的外部信息以及与所述其中一层校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息。
5.如权利要求4所述的译码装置,其中,
所述多层校验节点中的每一层校验节点被分为多组检验节点,
所述多个层计算模块的每一个层计算模块用于在所述QC-LDPC码的每一次迭代译码过程中,当所述其中一层校验节点的处理次序到达时,以逐组校验节点进行处理的方式,根据所述存储模块所存储的外部信息来计算所述其中一层校验节点的每一组校验节点传递给与所述每一组校验节点相连的各个变量节点的外部信息,根据所述存储模块所存储的外部信息、信道信息以及所计算的所述每一组校验节点传递给与所述每一组校验节点相连的各个变量节点的外部信息,计算与所述每一组校验节点相连的各个变量节点传递给所述下一层校验节点的外部信息以及与所述每一组校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息。
6.如权利要求5所述的译码装置,其中,
所述多个层计算模块的每一个层计算模块包括一个处理模块组,其中,每一个层计算模块的所述处理模块组中的每一个处理模块与所述其中一层校验节点的每一组校验节点的其中一个校验节点相对应,用于在所述QC-LDPC码的每一次迭代译码过程中,当所述其中一层校验节点的处理次序到达时,以逐组校验节点进行处理的方式,根据所述存储模块所存储的外部信息来计算所述其中一个校验节点传递给与所述其中一个校验节点相连的各个变量节点的外部信息,根据所述存储模块所存储的外部信息和信道信息以及所计算的所述其中一个校验节点传递给与所述其中一个校验节点相连的各个变量节点的外部信息来计算与所述其中一个校验节点相连的各个变量节点传递给所述下一层校验节点的外部信息以及与所述其中一个校验节点相连的各个变量节点的后验概率信息,并且将所计算的外部信息写入所述存储模块以更新所述存储模块所存储的外部信息。
7.如权利要求6所述的译码装置,其中,
所述处理模块组中的各个处理模块并行工作。
8.如权利要求7所述的译码装置,其中,
所述多个层计算模块的每一个层计算模块的所述处理模块组中的每一个处理模块包括一个校验节点处理器和多个变量节点处理器,其中
所述校验节点处理器用于在所述QC-LDPC码的每一次迭代译码过程中,当所述其中一层校验节点的处理次序到达时,根据所述存储模块所存储的与所述其中一个校验节点相连的各个变量节点传递给所述其中一个校验节点的外部信息来计算所述其中一个校验节点传递给与所述其中一个校验节点相连的各个变量节点的外部信息,
所述多个变量节点处理器的每一个变量节点处理器对应于与所述其中一个校验节点相连的各个变量节点的其中一个变量节点,用于在所述其中一个校验节点计算出所述其中一个校验节点传递给所述其中一个变量节点的外部信息后,根据所计算的所述其中一个校验节点传递给所述其中一个变量节点的外部信息、所述存储模块所存储的所述其中一个变量节点的信道信息和所述存储模块所存储的与所述其中一个变量节点相连的其他层校验节点传递给所述其中一个变量节点的外部信息来计算所述其中一个变量节点传递给与所述其中一个变量节点相连的下一层校验节点的外部信息和所述其中一个变量节点的后验概率信息。
9.如权利要求8所述的译码装置,其中,
所述存储模块包括多个子存储模块,其中,每一个子存储模块与所述QC-LDPC码的多个码字的其中一个码字相对应,用于存储所述其中一个码字的各个变量节点的信道信息和在对所述其中一个码字进行迭代译码过程中在所述其中一个码字的各个校验节点和各个变量节点之间传递的外部信息,其中,在所述其中一个码字的相同的校验节点和变量节点之间传递的外部信息存储在与所述其中一个码字相对应的子存储模块的相同存储位置中,
所述多个层计算模块的每一个层计算模块的所述处理模块组中的各个处理模块的处理被分成多个顺序执行的处理步骤,其中,当所述多个层计算模块的每一个层计算模块的所述处理模块组中的各个处理模块的第一个处理步骤完成对所述多个码字的其中一个码字的处理后,在没有空闲等待的情况下开始对所述多个码字中的另一个码字进行处理,并且其中,所述处理模块组中的各个处理模块把所计算的在所述多个码字的每一个码字的各个校验节点和各个变量节点之间传递的外部信息写入所述存储模块中与每一个码字相应的子存储模块以更新与每一个码字相应的子存储模块所存储的外部信息。
10.如权利要求1所述的译码装置,其中,还包括:
地址控制模,用于控制所述更新模块从所述存储模块中读取信道信息和外部信息和向所述存储模块写入所述更新模块所计算的外部信息的地址。
11.如权利要求1所述的译码装置,其中,还包括:
交换模块,用于根据所述QC-LDPC码的各个码位在所述QC-LDPC码中所处的先后顺序,依次输出所述计算模块所计算的所述QC-LDPC码的各个码位的判决取值。
12.如权利要求1所述的译码装置,其中
所述计算模块进一步用于根据在所述QC-LDPC码的最后一次迭代译码时所计算的所述QC-LDPC码的各个变量节点的后验概率信息来计算所述QC-LDPC码的各个码位的判决取值。
13.如权利要求1所述的译码装置,其中
所述更新模块进一步用于在所述QC-LDPC码的每一次迭代译码过程或者最后一次迭代译码过程中,根据所述存储模块所存储的信道信息和外部信息以及所述计算的外部信息来计算所述QC-LDPC码的各个变量节点的后验概率信息。
CN201180001583.4A 2011-07-27 2011-07-27 译码装置 Active CN102696176B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/077678 WO2012106937A1 (zh) 2011-07-27 2011-07-27 译码装置

Publications (2)

Publication Number Publication Date
CN102696176A true CN102696176A (zh) 2012-09-26
CN102696176B CN102696176B (zh) 2014-07-16

Family

ID=46638137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180001583.4A Active CN102696176B (zh) 2011-07-27 2011-07-27 译码装置

Country Status (2)

Country Link
CN (1) CN102696176B (zh)
WO (1) WO2012106937A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105680877A (zh) * 2014-11-19 2016-06-15 香港理工大学 一种cc-qc-ldpc码的构建方法及译码装置
CN107967186A (zh) * 2012-12-07 2018-04-27 美光科技公司 用于控制存储器装置的方法和控制器及存储器系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209114B (zh) * 2015-04-29 2019-11-12 深圳忆联信息系统有限公司 译码方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931416A (zh) * 2009-06-24 2010-12-29 中国科学院微电子研究所 移动数字多媒体广播系统中的ldpc码的并行分层译码器
US20110145675A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Calculation technique for sum-product decoding method (belief propagation method) based on scaling of input log-likelihood ratio by noise variance

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471674A (zh) * 2007-12-28 2009-07-01 三星电子株式会社 低密度奇偶校验码译码方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931416A (zh) * 2009-06-24 2010-12-29 中国科学院微电子研究所 移动数字多媒体广播系统中的ldpc码的并行分层译码器
US20110145675A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Calculation technique for sum-product decoding method (belief propagation method) based on scaling of input log-likelihood ratio by noise variance

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李刚等: "一种准循环LDPC解码器的设计与实现", 《微电子学与计算机》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967186A (zh) * 2012-12-07 2018-04-27 美光科技公司 用于控制存储器装置的方法和控制器及存储器系统
CN107967186B (zh) * 2012-12-07 2021-07-27 美光科技公司 用于控制存储器装置的方法和控制器及存储器系统
CN105680877A (zh) * 2014-11-19 2016-06-15 香港理工大学 一种cc-qc-ldpc码的构建方法及译码装置
CN105680877B (zh) * 2014-11-19 2019-06-28 香港理工大学 一种cc-qc-ldpc码的构建方法及译码装置

Also Published As

Publication number Publication date
CN102696176B (zh) 2014-07-16
WO2012106937A1 (zh) 2012-08-16

Similar Documents

Publication Publication Date Title
US8839077B2 (en) Low density parity check codec
US10536169B2 (en) Encoder and decoder for LDPC code
CN101741396B (zh) 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
CN101079639B (zh) 基于节点存储器的低密度奇偶校验解码装置和方法
CN101350625B (zh) 一种高效通用的qc-ldpc码译码器及其译码方法
US20190044537A1 (en) Vertical Layered Finite Alphabet Iterative Decoding
US7299397B2 (en) Decoding apparatus, decoding method, and program to decode low density parity check codes
CN104868925A (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
CN100589357C (zh) 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法
CN101499804B (zh) 准循环低密度校验码的多码率译码器
CN103220003B (zh) 提高节点处理并行度的qc-ldpc译码器的实现方法
CN102055484B (zh) 基于最小均方差准则的ldpc分层bp译码算法及译码器结构
KR20110124659A (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법
CN101599302B (zh) 一种基于fpga的ldpc译码器的译码码字的高效存储方法
CN103684474A (zh) 一种高速ldpc译码器的实现方法
CN105262493A (zh) 低密度奇偶校验码的译码方法
Lin et al. Efficient shuffled decoder architecture for nonbinary quasi-cyclic LDPC codes
US8429486B2 (en) Decoding device, data storage device, data communication system, and decoding method
CN100544212C (zh) 高速的减少存储需求的低密度校验码解码器
CN101800627B (zh) 一种多码率兼容的高速ldpc编码器的硬件实现
CN102696176B (zh) 译码装置
CN101917249B (zh) Qc-ldpc码译码器及其实现方法
CN102412844B (zh) 一种ira类ldpc码的译码方法及译码装置
CN101420279A (zh) 移动多媒体广播中高速ldpc译码器及译码方法
JP2020527880A (ja) エンコーディング方法および装置、コンピュータ記憶媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant