CN111384970A - 一种译码方法、装置及通信设备 - Google Patents
一种译码方法、装置及通信设备 Download PDFInfo
- Publication number
- CN111384970A CN111384970A CN201811640294.9A CN201811640294A CN111384970A CN 111384970 A CN111384970 A CN 111384970A CN 201811640294 A CN201811640294 A CN 201811640294A CN 111384970 A CN111384970 A CN 111384970A
- Authority
- CN
- China
- Prior art keywords
- column
- sub
- data
- memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 133
- 238000004891 communication Methods 0.000 title claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims abstract description 195
- 238000012545 processing Methods 0.000 claims abstract description 121
- 230000008569 process Effects 0.000 claims abstract description 77
- 230000015654 memory Effects 0.000 claims description 288
- 125000004122 cyclic group Chemical group 0.000 claims description 67
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 claims description 9
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 2
- DSCFFEYYQKSRSV-KLJZZCKASA-N D-pinitol Chemical compound CO[C@@H]1[C@@H](O)[C@@H](O)[C@H](O)[C@H](O)[C@H]1O DSCFFEYYQKSRSV-KLJZZCKASA-N 0.000 claims 2
- 239000010410 layer Substances 0.000 description 133
- 238000004422 calculation algorithm Methods 0.000 description 15
- 239000000872 buffer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 108010003272 Hyaluronate lyase Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1162—Array based LDPC codes, e.g. array codes
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种译码方法、装置及通信设备,解决现有译码方法迭代收敛慢,译码时延较长的问题。本发明的译码方法包括:获取准循环低密度奇偶校验码QC‑LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;根据所述第jz个比特的后验概率,进行译码处理。本发明实施例将QC‑LDPC校验矩阵划分成mb×nb个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
Description
技术领域
本发明涉及通信应用的技术领域,尤其涉及一种译码方法、装置及通信设备。
背景技术
低密度奇偶校验码(Low Density Parity Check Code,LDPC)的译码算法利用各变量节点和校验节点间信息传递、反复迭代得到更好置信概率的算法。译码迭代过程中的并行处理能力和存储需求制约着算法的功耗和时延。
传统的迭代方案分层译码(Tow Phase Massage-Passing,TPMP)算法,每次迭代会先将整个校验节点的横向处理更新完成,再进行整个变量节点的纵向处理更新,其中的时延会比较大。基于分层迭代结构的译码迭代(TDMP)算法,可以有效的提高译码收敛速度,增加并行度的同时还能降低存储空间。
TPMP算法,每次迭代需要处理的总层数为M,总列数为N,译码时延较长,迭代收敛慢;TDMP结构每次迭代处理的中间结果比TPMP有所减少,但是还需要进一步优化。
发明内容
本发明的目的在于提供一种译码方法、装置及通信设备,用以解决现有译码方法迭代收敛慢,译码时延较长的问题。
为了实现上述目的,本发明提供了一种译码方法,包括:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
其中,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息,包括:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
0≤l,0≤z<Z;
其中,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
其中,表示第l次迭代的第t次子迭代过程中的校验节点信息,表示第i行子矩阵中绝对值的最小值,表示第i行子矩阵中绝对值的次小值,表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵的符号方向的乘积。
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
其中,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
其中,根据所述子段的移位因子,对所述子段数据进行移位处理,包括:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
其中,根据所述第jz个比特的后验概率,进行译码处理,包括:
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
为了实现上述目的,本发明实施例还提供了一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
其中,所述处理器执行所述程序时还实现以下步骤:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
其中,所述处理器执行所述程序时还实现以下步骤:
0≤l,0≤z<Z;
其中,所述处理器执行所述程序时还实现以下步骤:
其中,表示第l次迭代的第t次子迭代过程中的校验节点信息,表示第i行子矩阵中绝对值的最小值,表示第i行子矩阵中绝对值的次小值,表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵的符号方向的乘积。
其中,所述处理器执行所述程序时还实现以下步骤:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,所述处理器执行所述程序时还实现以下步骤:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
其中,所述处理器执行所述程序时还实现以下步骤:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
其中,所述处理器执行所述程序时还实现以下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
其中,所述处理器执行所述程序时还实现以下步骤:
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
为了实现上述目的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述译码方法的步骤。
为了实现上述目的,本发明实施例还提供了一种译码装置,包括:
第一获取模块,用于获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
第二获取模块,用于根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
处理模块,用于根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
其中,所述第一获取模块包括:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
其中,所述第一获取模块还包括:
第四获取子模块,用于获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
处理子模块,用于根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,所述处理子模块包括:
第一处理单元,用于通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
确定单元,用于根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
其中,所述处理子模块包括:
第二处理单元,用于按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择单元,用于选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
本发明实施例具有以下有益效果:
本发明实施例的上述技术方案,将QC-LDPC校验矩阵划分成mb×nb个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
附图说明
图1为TDMP译码结构中QC-LDPC校验矩阵的示意图;
图2为本发明实施例的译码方法的流程示意图;
图3为本发明实施例中QC-LDPC校验矩阵的示意图;
图5为本发明实施例中将MinLLR分为Z个存储器的示意图;
图6为本发明实施例中实现并行循环移位的示意图之一。
图7为本发明实施例中实现并行循环移位的示意图之二;
图8为实现本发明实施例译码方法的译码框图;。
图9为本发明实施例的译码方法的时序图;
图10为本发明实施例的通信设备的结构框图;
图11为本发明实施例的译码装置的模块示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合具体实施例及附图进行详细描述。
为使本领域技术人员能够更好地理解本发明实施例的译码方法,先进行如下说明。
(1)线性分组码。
线性分组码,通常使用生成矩阵或者校验矩阵来设定;生成矩阵和校验矩阵互为对偶矩阵。***码的生成矩阵G和一致校验矩阵H,如果编码前矩阵向量s,编码后矩阵向量x,则满足以下规则。
x=sG;
HxT=HGTsT=0。
(2)LDPC。
低密度奇偶校验码(Low Density Parity Check Code,LDPC),是一种稀疏校验矩阵线性分组码。称为“稀疏”是因为校验矩阵H中的1要远小于0的数目,这样做的好处就是,译码复杂度低,结构非常灵活。LDPC校验矩阵满足以下规则:
H矩阵的行重(每行1的个数)、列重(每列1的个数)与码长的比值远小于1;
H矩阵任意两行(列)最多只有一个相同位置上的1;
H矩阵任意线性无关的列数尽量大。
(3)QC-LDPC。
准循环LDPC码(Quasi-Cyslic Low Density Parity Check Code,QC-LDPC),其奇偶校验矩阵H可以分成多个大小相等(Z×Z)的方阵,每个方阵都是单位矩阵的循环移位矩阵或者全0矩阵,非常便于存储和寻址,降低了LDPC的编译码复杂度。
QC-LDPC码是LDPC码的一个子类,其校验矩阵H具有分块循环的特性,首先简单解释一下“分块循环”。一个矩阵可以被拆分为几个Z×Z大小的方阵,且每个方阵都是由某个Z×Z的矩阵经过循环右移得到的,例如A里面的方阵是由Z×Z的单位阵循环右移得到的,那么这种情况下的矩阵A就具有分块循环的特性。
QC-LDPC码的校验矩阵H维度为(mb×Z)×(nb×Z),由一个大小为mb×nb的基矩阵Hb、扩展因子Z以及大小为Z×Z的置换矩阵P确定:
因此QC-LDPC编码/译码器的信息比特的长度可以表示为K=kb×Z,kb=nb-mb,校验比特长度为M=mb×Z,码字长度为N=nb×Z,编码码率为R=K/N。
(4)QC-LDPC的TPMP译码算法
置信传播译码算法(BP)和最小和译码算法(MS)是利用各变量节点和校验节点间信息传递、反复迭代得到更好置信概率的算法。
译码原理依据校验方程HxT=0,定义如下处理:
校验方程中,所有变量和应为0,所以对于其中第jz个校验变量而言,其值为0的概率即为所在第iz个校验方程中其他变量内有偶数个1的概率。同理,第jz个校验变量值为1的概率即为所在第iz=0,1,...,M-1个校验方程中其他变量内有奇数个1的概率。计第iz个校验方程中第jz个变量节点取值为0的概率为第iz个校验方程中第jz个变量节点取值为1的概率为软值信息为概率似然比iz=0,1,...,M-1。
此时,可以近似等于第iz个校验方程中其他变量节点中概率最小软信息的绝对值乘上其他所有的符号方向,即在最小和译码算法时,参考以下算法选取近似值赋值。
比特:b0+b1+b2=0;
软值信息:LLR(b2)=sign(LLR(b0))*sign(LLR(b1))*min(|LLR(b0)|,|LLR(b1)|);
iz=0,1,...,M-1。
变量节点处理:将信息从校验节点传到变量节点。利用计算来自于每个校验节点的外信息和本身先验概率信息,计算该变量节点在每个校验方程中的取值概率。由于变量节点处理是在每个校验方程之间做的,所以是纵向处理,定义第l次迭代的软值信息为
根据所有校验节点传递过来的概率信息计算本变量节点的取值概率:
后验概率处理:x每个比特第l次迭代的后验软信息如下式:
jz=0,1,...,N-1。
通过上述分析可以看出,传统的迭代方案TPMP(Tow Phase Massage-Passing)算法,每次迭代会先将整个校验节点的横向处理更新完成,再进行整个变量节点的纵向处理更新,其中的时延会比较大。
(5)QC-LDPC的TDMP译码算法。
TDMP(Turbo Decoding Message Passing)考虑到横向处理和纵向处理的地位是完全对称的,所以TDMP采取每次迭代先进行每层的纵向处理,计算再进行横向处理,计算变量节点更新计算中用到的LLR值,来自于上次迭代的校验节点水平更新结果。可以有效的提高译码收敛速度,增加并行度的同时还能降低存储空间。
TDMP结构又叫水平分层译码结构,如图1所示,QC-LDPC校验矩阵的大小为M×N,总行数M被划分为mb层,每层Z行,M=mb×Z,每一个分层内的所有列利用上次迭代的校验节点信息以及该列所有变量节点的信息进行纵向处理,并将纵向处理的信息及时传递给下一层,且Z行同时进行横向处理,这样在一个时钟周期内就可以完成一个分层的更新过程,一次迭代译码过程只需要mb个时钟就可以完成。
0≤t<mb,0≤l<iternum 0≤z<Z;
0≤(jz=j*Z+z)<nb*Z;
0≤(iz=i*Z+z)<mb*Z。
其中,l表示第l次迭代;t表示第t层子迭代(与i对应)。
根据上述描述可知,每次迭代TPMP需要处理的总层数为M,总列数为N,译码时延较长,迭代收敛慢;每次迭代TDMP需要处理的总层数为mb=M/Z,总列数为N,每次迭代TDMP处理的中间结果比TPMP有所减少,但是还需要进一步优化。
基于此,如图2所示,本发明实施例提供了一种译码方法,包括:
步骤201:获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代。
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
本发明实施例中,如图3所示,将QC-LDPC校验矩阵的大小为M×N,总行数M被划分成mb层(块行),每层Z行,M=mb×Z;列数N被划分为nb个块列,每块列包括Z列。每个子块)(子矩阵)大小为Z×Z。
需要说明的是,本发明实施例中,对于每个(i,j)位置的子矩阵,在基矩阵中与该子矩阵位置对应位置处的值为非-1时,才对该位置的子矩阵进行相应处理,否则,跳过该子矩阵。
步骤202:根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率。
步骤203:根据所述第jz个比特的后验概率,进行译码处理。
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
本发明实施例的译码方法,将QC-LDPC校验矩阵划分成M×N个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
进一步地,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息,包括:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
本发明实施例中,由于H矩阵中每个Z×Z的块是循环移位的单位阵所以实际只处理了Z个1,需要把缓存buffer和最小值MinLLR buffer分为Z个存储器Bank,如图4和图5所示深度分别为nb和mb。如图4所示,每层分为nb块,需要读共nb次,每次读Z个存储器的值,每个存储值地址一样,范围是0~nb-1,如图5所示,分为mb块,每次需要读取MinLLR共mb次,每次读取Z个存储器的值,每个存储值地址一样,范围是0~mb-1。上述第一存储器可具体为图4所示的存储有的每列存储器(Z个存储器),上述第二存储器可具体为图5所示的存储有MinLLR的每行存储器(Z个存储器)。
0≤l,0≤z<Z;
进一步地,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
其中,表示第l次迭代的第t次子迭代过程中的校验节点信息,表示第i行子矩阵中绝对值的最小值,表示第i行子矩阵中绝对值的次小值,表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵的符号方向的乘积。
具体的,先在qij的绝对值中搜索最小值min和次小值min2,并记录搜索到最小值min时,此时的子矩阵列号jmin;接着,获取每个列号j记录的符号方向S(i,j),S(i,j)等于QC-LDPC校验矩阵中除了第j列以外,其他位置qij的符号方向的乘积;最后赋值给pij的数值=S(i,j)*min*调整系数,当j=jmin时,pij=S(i,jmin)*min2*调整系数。
0≤t<mb,0≤l<iternum,0≤z<Z,0≤(jz=j*Z+z)<nb*Z,,0≤(iz=i*Z+z)<mb*Z,iternum为预设数值,例如12、15等。
具体的,通过如下公式实现:
0≤t<mb,0≤l<iternum,0≤z<Z,0≤(jz=j*Z+z)<nb*Z,,0≤(iz=i*Z+z)<mb*Z,iternum为预设数值,例如12、15等。
另,每次迭代需要处理的总层数为mb=M/Z,总列数为nb=N/Z。每层的块列数为nb,只需要处理基矩阵中移位因子为非-1的j列。
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
本发明实施例中,校验矩阵H是由0矩阵和单位阵的循环移位矩阵组成的,因此上述每个步骤中的每Z个值在计算之前,需要先乘一个Z×Z的移位矩阵,也就等价于需要对0~Z-1个值做循环移位。
一个简化的方法是只对每层的做循环移位。计算完成后的是按i排序,用于计算的Z个来自同一个块的数可以做并行比较,如果新入的数是最小的,要保存列序号j为jmin,i-1(虽然有Z个j,而且是与i交织的,但是可以只保存j的块序号),可以更新当前的列块序号。
需要说明的是,由于对做循环移位,中的加法两项,也是按i排序。所以存储的是按上一层每个块的循环移位存储的。当进行下一层迭代时,读出qj再做循环移位时,需要考虑上一层的循环移位。例如第t层基矩阵移位因子为s1,第t+1层对应列块的基矩阵移位因子为s2,则由于第t层存储的qj已经循环移位s1位,所以在开始第t+1层迭代时,读出的qj只需要循环移位s2-s1位即可。
作为一种可选的实现方式,根据所述子段的移位因子,对所述子段数据进行移位处理,包括:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
常规的串行循环移位,一次可以做循环移位1个数(每行循环右移位1次),假设支持双向移动(每行向左或向右循环移位一次),则对于块Z的循环移位时间不固定,最慢的情况需要Z/2个周期cycle。
当Z=8,(i,j)位置的循环移位因子为5时,8×8的单位阵I8,移位因子为5对应的循环移位矩阵为P5。
循环移位矩阵对计算过程中软信息的移位影响如下示例:
a=[a0,a1,a2,a3,a4,a5,a6,a7];
I8×a=a=[a0,a1,a2,a3,a4,a5,a6,a7];
P5×a=b=[a5,a6,a7,a0,a1,a2,a3,a4];
b(k)=a((k+5)%8)=a(k+5)%8;k=0,1,...,7。
计算P5×a等价于对向量a使用常规的循环右移5次得到b,或者使用双向循环移位方法最少循环左移3次得到b。
按照传统的移位方法,每次需要消耗的cycle最多为Z个(单向移位)或者Z/2个(双向移位)。
作为第二种可选的实现方式,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
具体的,该实现方式中,移位的次数可以固定到log2(Z),这样,由于延时固定(方便排流水),并且当Z较大时,log2(Z)远小于Z/2。另外,通过排流水,可以使每层延后log2(Z)个cycle,而不会使得每个块都延迟log2(Z)个cycle。
常规的串行循环移位,一次可以做循环移位1个数,并行循环移位,一拍可以做循环移位2^n。通过结构的结合可以达到降cycle的同时快速完成移位。
下面以Z=8为例对上述实现方式进行说明。
在Z=8时通过3个周期变能得到需要的0~Z-1位移位序列。
如图6所示,包括三列存储器,每列存储器有4组选择器,每组选择器分别包括两个选择器,即每列存储器有8个2选1存储器,通过控制选择开关,在第3列存储器就可以得到需要的循环移位值。
每种移位结果需要对应的控制开关。例如当前用例移位值为5时,第一列四组选择器的开关是:0111,第二列四组选择器的开关是:1010,第三列四组选择器的开关是:1111。其中0表示第每组选择器输出结果为:第1个值;1表示每组选择器输出的结果为:第2个值。
例如(0,4)和(4,0)为同一组选择器,开关为0,输出的结果分别为0和4,即第一个值。(1,5)和(5,1)为同一组选择器,开关为1,输出的结果分别为5和1,即第二个值。
作为第三种可选的实现方式,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
该实现方式中,每次可以得到所有的移位结构,不需要单独控制开关,也是3个周期得到移位结构,中间需要消耗移位存储资源。如图7所示,包括四列存储器,第一列存储器中存储有0-7共8个数值。
其中,第二列存储器的数值由第一列存储器的数值合并得到,在Z个位置合并录入21个数。
两列存储器之间的第一连线标识(不带箭头的黑色直连线)表示前一列存储器的数值直接填入后一列存储器数值中的0位置,第二连线标识(虚线直连线或带箭头的直连线)表示前一列存储器的数值直接填入后一列存储器数值中的Z/2位置,后一列存储器数值中的其余位置使用x占用;例如第二列存储器中的第一层存储器通过黑色直连线和带箭头的直连线分别与第一列存储其中存储0和4的存储器连接,则该第二列第一层存储器中的数值为0xxx4xxx。
第三列存储器的数值由第二列存储器的数值合并得到,在Z个位置合并录入22个数。
黑色直连线表示第2列存储器存储的序列中第0、Z/2位置的数值依次复制到第3列存储器存储的序列的第0、Z/2位置;
带箭头的直连线表示第2列存储器存储的序列中第0、Z/2位置的数值复制到第3列存储器存储的序列的第0+Z/4、Z/2+Z/4位置;
虚线直连线表示第2列存储器存储的序列中第Z/2、0位置的数值复制到第3列存储器存储的序列的第0+Z/4、Z/2+Z/4位置;
其余位置使用x占用。
例如,第3列存储器中与0xxx4xxx(黑色直连线)与2xxx6xxx(带箭头的直连线)对应的第一层的存储器存储的序列为0x2x4x6x,即将0xxx4xxx与2xxx6xxx合并;
例如,第3列存储器中与0xxx4xxx(虚线直连线)与2xxx6xxx(黑色直连线)对应的第三层的存储器存储的序列为2x4x6x0x。
第四列存储器的数值由第三列存储器的数值合并得到,在Z个位置合并录入23个数。
黑色直连线表示第3列存储器存储的序列中第0、0+Z/4、Z/2、Z/2+Z/4位置的数值复制到第4列存储器的序列中第0、0+Z/4、Z/2、Z/2+Z/4位置;
带箭头的直连线表示第3列存储器存储的序列中第0、0+Z/4、Z/2、Z/2+Z/4位置的数值复制到第4列存储器的序列中第0+Z/8、0+Z/4+Z/8、Z/2+Z/8、Z/2+Z/4+Z/8位置;
虚线直连线表示表示第3列存储器存储的序列中第0+Z/4、Z/2、Z/2+Z/4、0位置的数值复制到第4列存储器的序列中第0+Z/8、0+Z/4+Z/8、Z/2+Z/8、Z/2+Z/4+Z/8位置;
其余位置使用x占用。
例如,第四列存储中与0x2x4x6x(黑色直连线)与1x3x5x7x(带箭头的直连线)对应的第一层存储器中的序列为01234567;
例如,第四列存储中与0x2x4x6x(虚线直连线)与1x3x5x7x(黑色直连线1357)对应的第二层存储器中的序列为12345670。
下面图所示的译码框图具体说明本发明实施例的实现过程。
图8中所示的所有缓存器buffer或先进先出FIFO存储器都是Z个存储器Bank(独立的buffer)的双口buffer,所有的处理都是Z个并行处理。qj buffer的深度为nb,MinLlrbuffer的深度为mb。读/写buffer时Z个Bank用相同地址。图8中的Sel表示在中查找出最小值和次小值并记录最小值的列号jmin,i和每个列j的附加符号方向
说明:新的指的是第l次迭代得到的结果,老的只的是第l-1次迭代得到的结果。
如图8和图9所示,包括:
G_Rc_P:恢复新的pij。
G_Add_Qj:求和得到qj。
G_Wr_Qj:写更新后的qj。
R_Rd_Q:读老的qij符号FIFO。
R_Rd_M:读MinLlr buffer。
R_Rc_P:恢复老的-pij。
R_Csh_Qj:将qj循环移位。
R_Sel_Q:执行上述获取第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息的步骤,比较得到两个最小的abs(qij),位置j,符号。等一行全结束后,输出到buffer。
更新方式就是比较最小次小值和输入值,决定是否更新最小值和次小值。当j从0到nb-1更新结束后即可输出到最小次小值buffer。
通过图9可以看出,如果RAM和FIFO都是双口的,则不会出现同时读或写同一个地址的情况,每一个子矩阵在流水以后处理时间为1个cycle,每个模块又在每个cycle都利用了起来,所以效率也是最高的。
本发明实施例的译码方法,通过块行和块列的循环移位处理代替现有技术单层和单列依次处理,减少了译码时延,且上述并行循环移位方法提高了并行处理和减少计算量,十分有利于硬件实现。
如图10所示,本发明的实施例还提供了一种通信设备,例如,基站或终端,包括存储器1020、处理器1000、总线接口及存储在存储器1020上并可在处理器1000上运行的计算机程序,所述处理器1000用于读取存储器1020中的程序,执行下列过程:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1020代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。上述译码装置还可包括收发机1010,收发机1010可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
0≤l,0≤z<Z;
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
其中,表示第l次迭代的第t次子迭代过程中的校验节点信息,表示第i行子矩阵中绝对值的最小值,表示第i行子矩阵中绝对值的次小值,表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵的符号方向的乘积。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
本发明实施例的通信设备,将QC-LDPC校验矩阵划分成mb×nb个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
在本发明的一些实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
如图11所示,本发明实施例还提供了一种译码装置,包括:
第一获取模块1101,用于获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
第二获取模块1102,用于根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
处理模块1103,用于根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
本发明实施例的译码装置,所述第一获取模块包括:
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb。
0≤l,0≤z<Z;
本发明实施例的译码装置,所述第一获取模块包括:
其中,表示第l次迭代的第t次子迭代过程中的校验节点信息,表示第i行子矩阵中绝对值的最小值,表示第i行子矩阵中绝对值的次小值,表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵的符号方向的乘积。
本发明实施例的译码装置,所述第一获取模块还包括:
第四获取子模块,用于获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
处理子模块,用于根据所述子段数据的移位因子,对所述子段数据进行移位处理。
本发明实施例的译码装置,所述处理子模块包括:
第一处理单元,用于通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
确定单元,用于根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出和且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至的Z/2个整数;Z=2n。
本发明实施例的译码装置,所述处理子模块包括:
第二处理单元,用于按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择单元,用于选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
本发明实施例的译码装置,所述处理子模块用于根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
本发明实施例的译码装置,所述处理模块包括:
迭代子模块,用于若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
需要说明的是,该装置是与上述方法实施例对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
本发明实施例的译码装置,将QC-LDPC校验矩阵划分成mb×nb个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (24)
1.一种译码方法,其特征在于,包括:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
4.根据权利要求2所述的译码方法,其特征在于,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
7.根据权利要求5所述的译码方法,其特征在于,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
8.根据权利要求5所述的译码方法,其特征在于,根据所述子段的移位因子,对所述子段数据进行移位处理,包括:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
10.一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
13.根据权利要求11所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
16.根据权利要求14所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
17.根据权利要求14所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至9中任一项所述译码方法的步骤。
20.一种译码装置,其特征在于,包括:
第一获取模块,用于获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,所述第l次迭代过程包括mb次子迭代;
第二获取模块,用于根据第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息以及校验节点信息,得到编码后矩阵向量x中第jz个比特的后验概率;
处理模块,用于根据所述第jz个比特的后验概率,进行译码处理;
其中,所述QC-LDPC校验矩阵包括M行N列,所述QC-LDPC校验矩阵的每列包括mb个子矩阵,所述QC-LDPC校验矩阵的每行包括nb个子矩阵,每个子矩阵包括Z行Z列,M、N、Z、mb及nb均为正整数,0≤i≤mb-1;0≤j≤nb-1;jz=j*Z+z,0≤z<Z,i、j和z均为正数。
24.根据权利要求22所述的译码装置,其特征在于,所述处理子模块包括:
第二处理单元,用于按照第二预设规则对第n列存储器的数据进行合并处理,在第n+1列存储器的每层存储器中录入2n个数,其中,每列存储器包括2n层存储器,Z=2n,n≥0,且n为整数;
选择单元,用于选择第n+1列存储器中第z层存储器中存储的数据,作为循环移位处理后的子段数据;
其中,第n列存储器的每层存储器中录入有2n-1个数,所述第二预设规则包括将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第一预设层的存储器中,将第n列存储器中第一预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中,将第n列存储器中第三预设层的存储器的数据复制到第n+1列存储器中第二预设层的存储器中;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811640294.9A CN111384970B (zh) | 2018-12-29 | 2018-12-29 | 一种译码方法、装置及通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811640294.9A CN111384970B (zh) | 2018-12-29 | 2018-12-29 | 一种译码方法、装置及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111384970A true CN111384970A (zh) | 2020-07-07 |
CN111384970B CN111384970B (zh) | 2022-04-15 |
Family
ID=71221032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811640294.9A Active CN111384970B (zh) | 2018-12-29 | 2018-12-29 | 一种译码方法、装置及通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111384970B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055028A (zh) * | 2021-03-18 | 2021-06-29 | 北京得瑞领新科技有限公司 | Ldpc解码方法、解码器、解码装置及存储介质 |
CN114726481A (zh) * | 2022-03-09 | 2022-07-08 | 鹤壁天海电子信息***有限公司 | 一种5g nr ldpc译码方法及相关装置 |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1622276A2 (en) * | 2004-07-22 | 2006-02-01 | Texas Instruments Incorporated | Layered decoding of low density parity check (LDPC) codes |
CN1794621A (zh) * | 2006-01-12 | 2006-06-28 | 北京大学 | 非规则置换矩阵ldpc码的构造方法及装置 |
CN101047387A (zh) * | 2007-03-23 | 2007-10-03 | 北京大学 | 一种多码率兼容ldpc码的构造方法及其译码器 |
CN101471673A (zh) * | 2007-12-28 | 2009-07-01 | 三星电子株式会社 | Ldpc码存储单元划分方法以及一种ldpc码存储器 |
CN101604975A (zh) * | 2009-07-08 | 2009-12-16 | 复旦大学 | 一种低功耗多模qc-ldpc码解码器及其工作方法 |
CN101800559A (zh) * | 2010-03-11 | 2010-08-11 | 复旦大学 | 一种基于tdmp的高速可配置qc-ldpc码解码器 |
CN101841339A (zh) * | 2009-03-17 | 2010-09-22 | 大唐移动通信设备有限公司 | 一种编码器、译码器及编码、译码方法 |
CN101917249A (zh) * | 2010-07-27 | 2010-12-15 | 清华大学 | Qc-ldpc码译码器及其实现方法 |
CN101951264A (zh) * | 2010-08-31 | 2011-01-19 | 宁波大学 | 一种多码率准循环低密度奇偶校验码解码器 |
CN102281125A (zh) * | 2011-07-29 | 2011-12-14 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
CN102624401A (zh) * | 2012-03-30 | 2012-08-01 | 复旦大学 | 一种兼容结构化与非结构化ldpc译码器及译码算法 |
CN102624402A (zh) * | 2012-04-01 | 2012-08-01 | 深圳市统先科技股份有限公司 | 一种ldpc译码器 |
US20120290891A1 (en) * | 2011-05-12 | 2012-11-15 | Nextwill | Method and apparatus for decoding low density parity check code |
CN103384153A (zh) * | 2013-07-03 | 2013-11-06 | 清华大学 | 准循环ldpc码译码方法及*** |
CN103929188A (zh) * | 2014-04-22 | 2014-07-16 | 北京经纬恒润科技有限公司 | 一种译码方法、装置及*** |
CN104836634A (zh) * | 2015-02-12 | 2015-08-12 | 华中科技大学 | 码长n最小距离n-1的置换码构造方法和码字序列发生器 |
CN105262493A (zh) * | 2015-11-17 | 2016-01-20 | 中国人民解放军92728部队 | 低密度奇偶校验码的译码方法 |
CN106209114A (zh) * | 2015-04-29 | 2016-12-07 | 联想(北京)有限公司 | 译码方法及装置 |
US9634693B2 (en) * | 2010-08-12 | 2017-04-25 | Samsung Electronics Co., Ltd | Apparatus and method for decoding LDPC codes in a communications system |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
CN108696282A (zh) * | 2018-05-30 | 2018-10-23 | 华侨大学 | 一种高效低复杂度的qc-ldpc码全并行分层结构译码器 |
CN108988872A (zh) * | 2018-08-23 | 2018-12-11 | 中国科学院计算技术研究所 | 基于分层最小和算法的ldpc译码方法 |
-
2018
- 2018-12-29 CN CN201811640294.9A patent/CN111384970B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1622276A2 (en) * | 2004-07-22 | 2006-02-01 | Texas Instruments Incorporated | Layered decoding of low density parity check (LDPC) codes |
CN1794621A (zh) * | 2006-01-12 | 2006-06-28 | 北京大学 | 非规则置换矩阵ldpc码的构造方法及装置 |
CN101047387A (zh) * | 2007-03-23 | 2007-10-03 | 北京大学 | 一种多码率兼容ldpc码的构造方法及其译码器 |
CN101471673A (zh) * | 2007-12-28 | 2009-07-01 | 三星电子株式会社 | Ldpc码存储单元划分方法以及一种ldpc码存储器 |
CN101841339A (zh) * | 2009-03-17 | 2010-09-22 | 大唐移动通信设备有限公司 | 一种编码器、译码器及编码、译码方法 |
CN101604975A (zh) * | 2009-07-08 | 2009-12-16 | 复旦大学 | 一种低功耗多模qc-ldpc码解码器及其工作方法 |
CN101800559A (zh) * | 2010-03-11 | 2010-08-11 | 复旦大学 | 一种基于tdmp的高速可配置qc-ldpc码解码器 |
CN101917249A (zh) * | 2010-07-27 | 2010-12-15 | 清华大学 | Qc-ldpc码译码器及其实现方法 |
US9634693B2 (en) * | 2010-08-12 | 2017-04-25 | Samsung Electronics Co., Ltd | Apparatus and method for decoding LDPC codes in a communications system |
CN101951264A (zh) * | 2010-08-31 | 2011-01-19 | 宁波大学 | 一种多码率准循环低密度奇偶校验码解码器 |
US20120290891A1 (en) * | 2011-05-12 | 2012-11-15 | Nextwill | Method and apparatus for decoding low density parity check code |
CN102281125A (zh) * | 2011-07-29 | 2011-12-14 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
CN102624401A (zh) * | 2012-03-30 | 2012-08-01 | 复旦大学 | 一种兼容结构化与非结构化ldpc译码器及译码算法 |
CN102624402A (zh) * | 2012-04-01 | 2012-08-01 | 深圳市统先科技股份有限公司 | 一种ldpc译码器 |
CN103384153A (zh) * | 2013-07-03 | 2013-11-06 | 清华大学 | 准循环ldpc码译码方法及*** |
CN103929188A (zh) * | 2014-04-22 | 2014-07-16 | 北京经纬恒润科技有限公司 | 一种译码方法、装置及*** |
CN104836634A (zh) * | 2015-02-12 | 2015-08-12 | 华中科技大学 | 码长n最小距离n-1的置换码构造方法和码字序列发生器 |
CN106209114A (zh) * | 2015-04-29 | 2016-12-07 | 联想(北京)有限公司 | 译码方法及装置 |
CN105262493A (zh) * | 2015-11-17 | 2016-01-20 | 中国人民解放军92728部队 | 低密度奇偶校验码的译码方法 |
CN108540139A (zh) * | 2018-04-17 | 2018-09-14 | 国家新闻出版广电总局广播科学研究院 | 一种通用的准循环ldpc码编码器的fpga实现方法及装置 |
CN108696282A (zh) * | 2018-05-30 | 2018-10-23 | 华侨大学 | 一种高效低复杂度的qc-ldpc码全并行分层结构译码器 |
CN108988872A (zh) * | 2018-08-23 | 2018-12-11 | 中国科学院计算技术研究所 | 基于分层最小和算法的ldpc译码方法 |
Non-Patent Citations (2)
Title |
---|
ZHANG JIANJUN等: "Construction of Quasi-Cyclic Low-Density Parity-Check Codes for Simplifying Shuffle Networks in Layered Decoder", 《CHINA COMMUNICATIONS》 * |
胡娟: "QC_LDPC译码器的FPGA实现及其在网络编码***中的应用", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055028A (zh) * | 2021-03-18 | 2021-06-29 | 北京得瑞领新科技有限公司 | Ldpc解码方法、解码器、解码装置及存储介质 |
CN113055028B (zh) * | 2021-03-18 | 2022-05-17 | 北京得瑞领新科技有限公司 | Ldpc解码方法、解码器、解码装置及存储介质 |
CN114726481A (zh) * | 2022-03-09 | 2022-07-08 | 鹤壁天海电子信息***有限公司 | 一种5g nr ldpc译码方法及相关装置 |
CN114726481B (zh) * | 2022-03-09 | 2023-12-22 | 鹤壁天海电子信息***有限公司 | 一种5g nr ldpc译码方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111384970B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7373581B2 (en) | Device, program, and method for decoding LDPC codes | |
KR100881889B1 (ko) | 저밀도 패리티 검사(ldpc) 코드들에 대한 계층화된디코딩 방식의 개선 | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
US8418023B2 (en) | Low density parity check decoder for irregular LDPC codes | |
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
CN100589357C (zh) | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
WO2018045788A1 (en) | Partial sum computation for polar code decoding | |
CN104868925A (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
JP4526450B2 (ja) | 復号装置と方法並びにプログラム | |
CN112332856A (zh) | 一种准循环ldpc码的层译码方法及装置 | |
CN111384970B (zh) | 一种译码方法、装置及通信设备 | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
CN100544212C (zh) | 高速的减少存储需求的低密度校验码解码器 | |
CN114499541A (zh) | 分层译码方法、装置、终端设备及介质 | |
JP5488472B2 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
CN101478312A (zh) | 一种ldpc译码器及其实现译码的方法 | |
KR20140088423A (ko) | 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법 | |
US20100185913A1 (en) | Method for decoding ldpc code and the circuit thereof | |
CN102347774A (zh) | 低密度奇偶检查码编解码方法 | |
WO2019110721A1 (en) | Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages | |
CN112640314A (zh) | 用于在乘积码和分量极化码之间映射冻结集的装置和方法 | |
CN102136842B (zh) | 一种译码器及译码方法 | |
CN114421972B (zh) | 一种多进制ldpc码译码方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210603 Address after: 100085 1st floor, building 1, yard 5, Shangdi East Road, Haidian District, Beijing Applicant after: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd. Address before: 100191 No. 40, Haidian District, Beijing, Xueyuan Road Applicant before: Telecommunications Science and Technology Research Institute Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |