CN111384970A - 一种译码方法、装置及通信设备 - Google Patents

一种译码方法、装置及通信设备 Download PDF

Info

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
Application number
CN201811640294.9A
Other languages
English (en)
Other versions
CN111384970B (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.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
电信科学技术研究院有限公司
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 电信科学技术研究院有限公司 filed Critical 电信科学技术研究院有限公司
Priority to CN201811640294.9A priority Critical patent/CN111384970B/zh
Publication of CN111384970A publication Critical patent/CN111384970A/zh
Application granted granted Critical
Publication of CN111384970B publication Critical patent/CN111384970B/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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1162Array based LDPC codes, e.g. array codes

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次迭代过程中对应的变量节点信息,包括:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000021
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000022
根据
Figure BDA0001930993860000023
Figure BDA0001930993860000024
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000025
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
其中,根据
Figure BDA0001930993860000026
Figure BDA0001930993860000027
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000028
包括:
通过以下公式得到
Figure BDA0001930993860000029
Figure BDA00019309938600000210
其中,l=0时,t=0,
Figure BDA00019309938600000211
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,
Figure BDA00019309938600000212
表示初始后验概率信息。
其中,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure BDA00019309938600000213
中,获取
Figure BDA00019309938600000214
Figure BDA00019309938600000215
并记录
Figure BDA00019309938600000216
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure BDA00019309938600000217
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure BDA00019309938600000218
并将
Figure BDA00019309938600000219
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure BDA00019309938600000220
其中,
Figure BDA0001930993860000031
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure BDA0001930993860000032
表示第i行子矩阵中
Figure BDA0001930993860000033
绝对值的最小值,
Figure BDA0001930993860000034
表示第i行子矩阵中
Figure BDA0001930993860000035
绝对值的次小值,
Figure BDA0001930993860000036
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure BDA0001930993860000037
的符号方向的乘积。
其中,在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000038
之前,还包括:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA0001930993860000039
Figure BDA00019309938600000310
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA00019309938600000311
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA00019309938600000312
Figure BDA00019309938600000313
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA00019309938600000314
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000041
所述第二预设层是指第一预设层与
Figure BDA0001930993860000042
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
其中,根据所述子段的移位因子,对所述子段数据进行移位处理,包括:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
其中,根据所述第jz个比特的后验概率,进行译码处理,包括:
对后验概率
Figure BDA0001930993860000043
进行硬判处理,得到判决后的向量x;
若满足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均为正数。
其中,所述处理器执行所述程序时还实现以下步骤:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000051
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000052
根据
Figure BDA0001930993860000053
Figure BDA0001930993860000054
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000055
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
其中,所述处理器执行所述程序时还实现以下步骤:
通过以下公式得到
Figure BDA0001930993860000056
Figure BDA0001930993860000057
其中,l=0时,t=0,
Figure BDA0001930993860000058
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,
Figure BDA0001930993860000059
表示初始后验概率信息。
其中,所述处理器执行所述程序时还实现以下步骤:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure BDA00019309938600000510
中,获取
Figure BDA00019309938600000511
Figure BDA00019309938600000512
并记录
Figure BDA00019309938600000513
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure BDA00019309938600000514
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure BDA00019309938600000515
并将
Figure BDA00019309938600000516
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure BDA00019309938600000517
其中,
Figure BDA00019309938600000518
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure BDA00019309938600000519
表示第i行子矩阵中
Figure BDA00019309938600000520
绝对值的最小值,
Figure BDA00019309938600000521
表示第i行子矩阵中
Figure BDA00019309938600000522
绝对值的次小值,
Figure BDA0001930993860000061
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure BDA0001930993860000062
的符号方向的乘积。
其中,所述处理器执行所述程序时还实现以下步骤:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA0001930993860000063
Figure BDA0001930993860000064
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,所述处理器执行所述程序时还实现以下步骤:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA0001930993860000065
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA0001930993860000066
Figure BDA0001930993860000067
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA0001930993860000068
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000071
所述第二预设层是指第一预设层与
Figure BDA0001930993860000072
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
其中,所述处理器执行所述程序时还实现以下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
其中,所述处理器执行所述程序时还实现以下步骤:
对后验概率
Figure BDA0001930993860000073
进行硬判处理,得到判决后的向量x;
若满足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均为正数。
其中,所述第一获取模块包括:
第一获取子模块,用于在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000081
第二获取子模块,用于在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000082
第三获取子模块,用于根据
Figure BDA0001930993860000083
Figure BDA0001930993860000084
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000085
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
其中,所述第一获取模块还包括:
第四获取子模块,用于获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
第五获取子模块,用于根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA0001930993860000086
Figure BDA0001930993860000087
的Z个数据;
处理子模块,用于根据所述子段数据的移位因子,对所述子段数据进行移位处理。
其中,所述处理子模块包括:
第一处理单元,用于通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
确定单元,用于根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA0001930993860000088
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA0001930993860000089
Figure BDA00019309938600000810
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA0001930993860000091
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000092
所述第二预设层是指第一预设层与
Figure BDA0001930993860000093
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
本发明实施例具有以下有益效果:
本发明实施例的上述技术方案,将QC-LDPC校验矩阵划分成mnb个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
附图说明
图1为TDMP译码结构中QC-LDPC校验矩阵的示意图;
图2为本发明实施例的译码方法的流程示意图;
图3为本发明实施例中QC-LDPC校验矩阵的示意图;
图4为本发明实施例中将
Figure BDA0001930993860000101
缓存分为Z个存储器的示意图。
图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就具有分块循环的特性。
Figure BDA0001930993860000111
QC-LDPC码的校验矩阵H维度为(mb×Z)×(nb×Z),由一个大小为mb×nb的基矩阵Hb、扩展因子Z以及大小为Z×Z的置换矩阵P确定:
Figure BDA0001930993860000112
其中,P表示置换矩阵,是一个Z×Z的单位阵,
Figure BDA0001930993860000113
表示由P的每一行循环右移hbij位得到的循环子矩阵,当hbij=-1时,表示Z×Z的全0矩阵。
因此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,定义如下处理:
初始先验概率:译码输入时,x每个比特对应初始软信息
Figure BDA0001930993860000121
jz=0,1,..,N-1。
校验节点处理:将信息从变量节点(信息位)传到校验节点(校验位)。由于校验节点处理是在每个校验方程的变量节点之间做的,所以是横向处理,定义第l次迭代的校验节点软值信息为
Figure BDA0001930993860000122
校验方程中,所有变量和应为0,所以对于其中第jz个校验变量而言,其值为0的概率即为所在第iz个校验方程中其他变量内有偶数个1的概率。同理,第jz个校验变量值为1的概率即为所在第iz=0,1,...,M-1个校验方程中其他变量内有奇数个1的概率。计第iz个校验方程中第jz个变量节点取值为0的概率为
Figure BDA0001930993860000123
第iz个校验方程中第jz个变量节点取值为1的概率为
Figure BDA0001930993860000124
软值信息为概率似然比
Figure BDA0001930993860000125
iz=0,1,...,M-1。
此时,可以近似等于第iz个校验方程中其他变量节点中概率最小软信息的绝对值乘上其他所有的符号方向,即在最小和译码算法时,参考以下算法选取近似值赋值。
比特:b0+b1+b2=0;
软值信息:LLR(b2)=sign(LLR(b0))*sign(LLR(b1))*min(|LLR(b0)|,|LLR(b1)|);
Figure BDA0001930993860000126
Figure BDA0001930993860000127
Figure BDA0001930993860000128
Figure BDA0001930993860000129
iz=0,1,...,M-1。
其中,近似计算的
Figure BDA00019309938600001210
比真实值偏大,可以采用OMS或者NMS算法进行修正。l和β为近似处理修正因子。
变量节点处理:将信息从校验节点传到变量节点。利用计算来自于每个校验节点的外信息和本身先验概率信息,计算该变量节点在每个校验方程中的取值概率。由于变量节点处理是在每个校验方程之间做的,所以是纵向处理,定义第l次迭代的软值信息为
Figure BDA00019309938600001211
根据所有校验节点传递过来的概率信息计算本变量节点的取值概率:
Figure BDA0001930993860000131
后验概率处理:x每个比特第l次迭代的后验软信息如下式:
Figure BDA0001930993860000132
jz=0,1,...,N-1。
硬判
Figure BDA0001930993860000133
Figure BDA0001930993860000134
否则
Figure BDA0001930993860000135
将判决后得到的序列代入校验方程H,若HxT=0,则表示译码正确,停止迭代。否则继续迭代直到最大迭代次数。
通过上述分析可以看出,传统的迭代方案TPMP(Tow Phase Massage-Passing)算法,每次迭代会先将整个校验节点的横向处理更新完成,再进行整个变量节点的纵向处理更新,其中的时延会比较大。
(5)QC-LDPC的TDMP译码算法。
TDMP(Turbo Decoding Message Passing)考虑到横向处理和纵向处理的地位是完全对称的,所以TDMP采取每次迭代先进行每层的纵向处理,计算
Figure BDA0001930993860000138
再进行横向处理,计算
Figure BDA0001930993860000139
变量节点更新计算中用到的LLR值,来自于上次迭代的校验节点水平更新结果。可以有效的提高译码收敛速度,增加并行度的同时还能降低存储空间。
TDMP结构又叫水平分层译码结构,如图1所示,QC-LDPC校验矩阵的大小为M×N,总行数M被划分为mb层,每层Z行,M=mb×Z,每一个分层内的所有列利用上次迭代的校验节点信息以及该列所有变量节点的信息进行纵向处理,并将纵向处理的信息及时传递给下一层,且Z行同时进行横向处理,这样在一个时钟周期内就可以完成一个分层的更新过程,一次迭代译码过程只需要mb个时钟就可以完成。
Figure BDA0001930993860000136
Figure BDA0001930993860000137
Figure BDA0001930993860000141
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对应)。
值得指出的是,在存储
Figure BDA0001930993860000142
时,由于横向处理的性质,每行LLR的绝对值实际只有取该行最小值和软值信息的符号方向。所以只需要存储这个值以及各符号位即可,相比于TPMP结构可以缩小存储空间。
根据上述描述可知,每次迭代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个比特的后验概率,进行译码处理。
具体的,对后验概率
Figure BDA0001930993860000151
进行硬判处理,得到判决后的向量x;
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
本发明实施例的译码方法,将QC-LDPC校验矩阵划分成M×N个子矩阵,依据每行及每列中的子矩阵进行迭代处理,该方法迭代收敛快,能够有效减少译码时延。
进一步地,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息,包括:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000152
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000153
根据
Figure BDA0001930993860000154
Figure BDA0001930993860000155
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000156
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
本发明实施例中,由于H矩阵中每个Z×Z的块是循环移位的单位阵所以实际只处理了Z个1,需要把
Figure BDA0001930993860000157
缓存buffer和最小值MinLLR buffer分为Z个存储器Bank,如图4和图5所示深度分别为nb和mb。如图4所示,每层分为nb块,需要读
Figure BDA0001930993860000158
共nb次,每次读Z个存储器的值,每个存储值地址一样,范围是0~nb-1,如图5所示,分为mb块,每次需要读取MinLLR共mb次,每次读取Z个存储器的值,每个存储值地址一样,范围是0~mb-1。上述第一存储器可具体为图4所示的存储有
Figure BDA0001930993860000159
的每列存储器(Z个存储器),上述第二存储器可具体为图5所示的存储有MinLLR的每行存储器(Z个存储器)。
进一步地,根据
Figure BDA00019309938600001510
Figure BDA00019309938600001511
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA00019309938600001512
包括:
通过以下公式得到
Figure BDA00019309938600001513
Figure BDA00019309938600001514
其中,l=0时,t=0,
Figure BDA0001930993860000161
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,
Figure BDA0001930993860000162
表示初始后验概率信息。
本发明实施例中,在每层处理时,一次性读出Z个
Figure BDA0001930993860000163
Z个存储器Bank的MinLLRBuffer来恢复出
Figure BDA0001930993860000164
再执行上述的Z个并行减法,Z路处理相互独立。
进一步地,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure BDA0001930993860000165
中,获取
Figure BDA0001930993860000166
Figure BDA0001930993860000167
并记录
Figure BDA0001930993860000168
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure BDA0001930993860000169
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure BDA00019309938600001610
并将
Figure BDA00019309938600001611
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure BDA00019309938600001612
其中,
Figure BDA00019309938600001613
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure BDA00019309938600001614
表示第i行子矩阵中
Figure BDA00019309938600001615
绝对值的最小值,
Figure BDA00019309938600001616
表示第i行子矩阵中
Figure BDA00019309938600001617
绝对值的次小值,
Figure BDA00019309938600001618
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure BDA00019309938600001619
的符号方向的乘积。
具体的,先在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*调整系数。
其中,
Figure BDA00019309938600001620
Figure BDA00019309938600001621
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等。
这里,在每层处理时,按照上述步骤中计算出的
Figure BDA0001930993860000171
进行Z路并行搜索最小值MinLLR Buffer和记录符号位的操作,Z路处理相互独立。
接着,根据上述Z路计算值
Figure BDA0001930993860000172
和Z路计算值
Figure BDA0001930993860000173
执行并行加法。
具体的,通过如下公式实现:
Figure BDA0001930993860000174
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列。
本发明实施例中,在完成t=0~mb-1层的处理后,对后验概率
Figure BDA0001930993860000175
进行硬判。如果满足校验方程HxT=0则停止迭代,否则进行第l+1次迭代。
进一步地,在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000176
之前,还包括:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA0001930993860000177
Figure BDA0001930993860000178
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
本发明实施例中,校验矩阵H是由0矩阵和单位阵的循环移位矩阵组成的,因此上述每个步骤中的每Z个值在计算之前,需要先乘一个Z×Z的移位矩阵,也就等价于需要对0~Z-1个值做循环移位。
上述步骤中的
Figure BDA0001930993860000179
在代入计算前,都需要按照基矩阵中的移位因子对Z个值进行循环移位,因为保留的是0移位状态的值,因此每次计算前,需要降Z个值按照移位因子循环移位后再使用。
一个简化的方法是只对每层的
Figure BDA00019309938600001710
做循环移位。计算完成后的
Figure BDA00019309938600001711
是按i排序,
Figure BDA00019309938600001712
用于计算的Z个来自同一个块的数可以做并行比较,如果新入的数是最小的,要保存列序号j为jmin,i-1(虽然有Z个j,而且是与i交织的,但是可以只保存j的块序号),可以更新当前的列块序号。
需要说明的是,由于对
Figure BDA0001930993860000181
做循环移位,
Figure BDA0001930993860000182
中的加法两项,也是按i排序。所以存储的
Figure BDA0001930993860000183
是按上一层每个块的循环移位存储的。当进行下一层迭代时,读出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
Figure BDA0001930993860000184
循环移位矩阵对计算过程中软信息的移位影响如下示例:
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列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA0001930993860000191
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA0001930993860000192
Figure BDA0001930993860000193
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA0001930993860000194
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000201
所述第二预设层是指第一预设层与
Figure BDA0001930993860000202
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,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表示在
Figure BDA0001930993860000221
中查找出最小值
Figure BDA0001930993860000222
和次小值
Figure BDA0001930993860000223
并记录最小值的列号jmin,i和每个列j的附加符号方向
Figure BDA0001930993860000224
说明:新的指的是第l次迭代得到的结果,老的只的是第l-1次迭代得到的结果。
如图8和图9所示,包括:
G_Rd_Q:读新
Figure BDA0001930993860000225
及其符号
Figure BDA0001930993860000226
G_Rd_M:读MinLlr(最小值
Figure BDA0001930993860000227
次小值
Figure BDA0001930993860000228
)、Pos(最小值列号jmin,i)、Sig buffer(每个列j的附加符号方向
Figure BDA0001930993860000229
),获取
Figure BDA00019309938600002210
G_Rc_P:恢复新的pij
Figure BDA00019309938600002211
G_Add_Qj:求和得到qj
Figure BDA00019309938600002212
G_Wr_Qj:写更新后的qj
R_Rd_Q:读老的qij符号FIFO。
Figure BDA00019309938600002213
R_Rd_M:读MinLlr buffer。
Figure BDA0001930993860000231
R_Rd_Qj:读
Figure BDA0001930993860000232
R_Rc_P:恢复老的-pij。
Figure BDA0001930993860000233
R_Csh_Qj:将qj循环移位。
R_Add_Q:执行
Figure BDA0001930993860000234
得到qij
R_Sel_Q:执行上述获取第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息的步骤,比较得到两个最小的abs(qij),位置j,符号。等一行全结束后,输出到buffer。
Figure BDA0001930993860000235
更新方式就是比较最小次小值和输入值,决定是否更新最小值和次小值。当j从0到nb-1更新结束后即可输出到最小次小值buffer。
R_Wr_Q:写新、老qij符号,写新
Figure BDA0001930993860000236
通过图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中的程序,执行如下步骤:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000241
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000242
根据
Figure BDA0001930993860000243
Figure BDA0001930993860000244
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000245
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
通过以下公式得到
Figure BDA0001930993860000246
Figure BDA0001930993860000247
其中,l=0时,t=0,
Figure BDA0001930993860000251
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,
Figure BDA0001930993860000252
表示初始后验概率信息。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure BDA0001930993860000253
中,获取
Figure BDA0001930993860000254
Figure BDA0001930993860000255
并记录
Figure BDA0001930993860000256
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure BDA0001930993860000257
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure BDA0001930993860000258
并将
Figure BDA0001930993860000259
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure BDA00019309938600002510
其中,
Figure BDA00019309938600002511
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure BDA00019309938600002512
表示第i行子矩阵中
Figure BDA00019309938600002513
绝对值的最小值,
Figure BDA00019309938600002514
表示第i行子矩阵中
Figure BDA00019309938600002515
绝对值的次小值,
Figure BDA00019309938600002516
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure BDA00019309938600002517
的符号方向的乘积。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA00019309938600002518
Figure BDA00019309938600002519
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA00019309938600002520
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA00019309938600002521
Figure BDA00019309938600002522
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA0001930993860000261
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000262
所述第二预设层是指第一预设层与
Figure BDA0001930993860000263
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
可选的,处理器1000还用于读取存储器1020中的程序,执行如下步骤:
对后验概率
Figure BDA0001930993860000264
进行硬判处理,得到判决后的向量x;
若满足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均为正数。
本发明实施例的译码装置,所述第一获取模块包括:
第一获取子模块,用于在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure BDA0001930993860000271
第二获取子模块,用于在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure BDA0001930993860000281
第三获取子模块,用于根据
Figure BDA0001930993860000282
Figure BDA0001930993860000283
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure BDA0001930993860000284
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
本发明实施例的译码装置,所述第三获取子模块用于通过以下公式得到
Figure BDA0001930993860000285
Figure BDA0001930993860000286
其中,l=0时,t=0,
Figure BDA0001930993860000287
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,
Figure BDA0001930993860000288
表示初始后验概率信息。
本发明实施例的译码装置,所述第一获取模块包括:
第六获取子模块,用于在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure BDA0001930993860000289
中,获取
Figure BDA00019309938600002810
Figure BDA00019309938600002811
并记录
Figure BDA00019309938600002812
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
赋值子模块,用于将
Figure BDA00019309938600002813
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure BDA00019309938600002814
并将
Figure BDA00019309938600002815
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure BDA00019309938600002816
其中,
Figure BDA00019309938600002817
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure BDA00019309938600002818
表示第i行子矩阵中
Figure BDA00019309938600002819
绝对值的最小值,
Figure BDA00019309938600002820
表示第i行子矩阵中
Figure BDA00019309938600002821
绝对值的次小值,
Figure BDA00019309938600002822
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure BDA00019309938600002823
的符号方向的乘积。
本发明实施例的译码装置,所述第一获取模块还包括:
第四获取子模块,用于获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
第五获取子模块,用于根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure BDA00019309938600002824
Figure BDA00019309938600002825
的Z个数据;
处理子模块,用于根据所述子段数据的移位因子,对所述子段数据进行移位处理。
本发明实施例的译码装置,所述处理子模块包括:
第一处理单元,用于通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
确定单元,用于根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure BDA0001930993860000291
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure BDA0001930993860000292
Figure BDA0001930993860000293
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure BDA0001930993860000294
的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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure BDA0001930993860000295
所述第二预设层是指第一预设层与
Figure BDA0001930993860000296
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,所述第一列存储器中存储有所述子段数据。
本发明实施例的译码装置,所述处理子模块用于根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
本发明实施例的译码装置,所述处理模块包括:
判决子模块,用于对后验概率
Figure BDA0001930993860000301
进行硬判处理,得到判决后的向量x;
迭代子模块,用于若满足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均为正数。
2.根据权利要求1所述的译码方法,其特征在于,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息,包括:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure FDA0001930993850000011
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure FDA0001930993850000012
根据
Figure FDA0001930993850000013
Figure FDA0001930993850000014
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure FDA0001930993850000015
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
3.根据权利要求2所述的译码方法,其特征在于,根据
Figure FDA0001930993850000016
Figure FDA0001930993850000017
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure FDA0001930993850000018
包括:
通过以下公式得到
Figure FDA0001930993850000019
Figure FDA00019309938500000110
其中,l=0时,t=0,
Figure FDA0001930993850000021
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,pinit,jz表示初始后验概率信息。
4.根据权利要求2所述的译码方法,其特征在于,获取准循环低密度奇偶校验码QC-LDPC校验矩阵中,第i行第j列个子矩阵在第l次迭代过程中对应的校验节点信息,包括:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure FDA0001930993850000022
中,获取
Figure FDA0001930993850000023
Figure FDA0001930993850000024
并记录
Figure FDA0001930993850000025
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure FDA0001930993850000026
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure FDA0001930993850000027
并将
Figure FDA0001930993850000028
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure FDA0001930993850000029
其中,
Figure FDA00019309938500000210
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure FDA00019309938500000211
表示第i行子矩阵中
Figure FDA00019309938500000212
绝对值的最小值,
Figure FDA00019309938500000213
表示第i行子矩阵中
Figure FDA00019309938500000214
绝对值的次小值,
Figure FDA00019309938500000215
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure FDA00019309938500000216
的符号方向的乘积。
5.根据权利要求2所述的译码方法,其特征在于,在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure FDA00019309938500000217
之前,还包括:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure FDA00019309938500000218
Figure FDA00019309938500000219
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
6.根据权利要求5所述的译码方法,其特征在于,根据所述子段数据的移位因子,对所述子段数据进行移位处理,包括:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure FDA0001930993850000031
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure FDA0001930993850000032
Figure FDA0001930993850000033
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure FDA0001930993850000034
的Z/2个整数;Z=2n
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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure FDA0001930993850000035
所述第二预设层是指第一预设层与
Figure FDA0001930993850000036
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
8.根据权利要求5所述的译码方法,其特征在于,根据所述子段的移位因子,对所述子段数据进行移位处理,包括:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
9.根据权利要求2所述的译码方法,其特征在于,根据所述第jz个比特的后验概率,进行译码处理,包括:
对后验概率
Figure FDA0001930993850000041
进行硬判处理,得到判决后的向量x;
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
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均为正数。
11.根据权利要求10所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure FDA0001930993850000042
在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure FDA0001930993850000043
根据
Figure FDA0001930993850000044
Figure FDA0001930993850000045
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure FDA0001930993850000046
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
12.根据权利要求11所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
通过以下公式得到
Figure FDA0001930993850000051
Figure FDA0001930993850000052
其中,l=0时,t=0,
Figure FDA0001930993850000053
0≤l,0≤z<Z;
0≤(jz=j*Z+z)<nb*Z,0≤(iz=i*Z+z)<mb*Z,pinit,jz表示初始后验概率信息。
13.根据权利要求11所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
在第i行第j列个子矩阵在第l次迭代过程中对应的变量节点信息
Figure FDA0001930993850000054
中,获取
Figure FDA0001930993850000055
Figure FDA0001930993850000056
并记录
Figure FDA0001930993850000057
的列号jmin以及获取每个子矩阵记录的符号方向S(i,j);
Figure FDA0001930993850000058
与记录的子矩阵的符号方向S(i,j)的乘积赋值给
Figure FDA0001930993850000059
并将
Figure FDA00019309938500000510
与记录的子矩阵的符号方向S(i,jmin)的乘积赋值给
Figure FDA00019309938500000511
其中,
Figure FDA00019309938500000512
表示第l次迭代的第t次子迭代过程中的校验节点信息,
Figure FDA00019309938500000513
表示第i行子矩阵中
Figure FDA00019309938500000514
绝对值的最小值,
Figure FDA00019309938500000515
表示第i行子矩阵中
Figure FDA00019309938500000516
绝对值的次小值,
Figure FDA00019309938500000517
表示第i行子矩阵中变量节点最小值位置jmin对应的校验节点信息的最小值,其中,S(i,j)等于QC-LDPC校验矩阵中除第j列子矩阵之外的其他子矩阵
Figure FDA00019309938500000518
的符号方向的乘积。
14.根据权利要求11所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure FDA00019309938500000519
Figure FDA00019309938500000520
的Z个数据;
根据所述子段数据的移位因子,对所述子段数据进行移位处理。
15.根据权利要求14所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure FDA0001930993850000061
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure FDA0001930993850000062
Figure FDA0001930993850000063
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure FDA0001930993850000064
的Z/2个整数;Z=2n
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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure FDA0001930993850000065
所述第二预设层是指第一预设层与
Figure FDA0001930993850000066
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
17.根据权利要求14所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
根据所述子段数据的移位因子,采用串行单向循环移位或串行双向移位对所述子段数据进行移位处理。
18.根据权利要求11所述的通信设备,其特征在于,所述处理器执行所述程序时还实现以下步骤:
对后验概率
Figure FDA0001930993850000071
进行硬判处理,得到判决后的向量x;
若满足HxT=0,则停止迭代,否则进行第l+1次迭代;
其中,H表示QC-LDPC校验矩阵。
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均为正数。
21.根据权利要求20所述的译码装置,其特征在于,所述第一获取模块包括:
第一获取子模块,用于在第一存储器中,获取第l次迭代的第t-1次子迭代过程中的后验概率信息
Figure FDA0001930993850000072
第二获取子模块,用于在第二存储器中,获取第l-1次迭代的第t次子迭代过程中的校验节点信息
Figure FDA0001930993850000073
第三获取子模块,用于根据
Figure FDA0001930993850000081
Figure FDA0001930993850000082
得到第i行第j列个子矩阵在第l次迭代的第t次过程中对应的变量节点信息
Figure FDA0001930993850000083
其中,z的取值是指0至Z-1的Z个整数,0≤t<mb
22.根据权利要求21所述的译码装置,其特征在于,所述第一获取模块还包括:
第四获取子模块,用于获取第i-2层中的每列子矩阵对应的第一移位因子以及第i-1层中的每列子矩阵对应的第二移位因子;
第五获取子模块,用于根据所述第一移位因子和第二移位因子,得到第i-1层中每列子矩阵对应的子段数据的移位因子,所述子段数据包括
Figure FDA0001930993850000084
Figure FDA0001930993850000085
的Z个数据;
处理子模块,用于根据所述子段数据的移位因子,对所述子段数据进行移位处理。
23.根据权利要求22所述的译码装置,其特征在于,所述处理子模块包括:
第一处理单元,用于通过n列数据选择器,按照第一预设规则对所述子段数据进行并行的循环移位处理;
确定单元,用于根据第n列数据选择器的输出结果,确定循环移位处理后的子段数据;
其中,每列数据选择器包括
Figure FDA0001930993850000086
组数据选择器,每组数据选择器包括两个2选1数据选择器,第一列数据选择器中的每组数据选择器用于选出
Figure FDA0001930993850000087
Figure FDA0001930993850000088
且每组数据选择器选出的数据不同;所述第一预设规则包括:第n列数据选择器用于对第n-1列数据中两个数据选择器输出的结果进行选择;z的取值是指0至
Figure FDA0001930993850000089
的Z/2个整数;Z=2n
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列存储器中第二预设层的存储器中;
所述第一预设层是指第一序列中的所有数值,第一序列包括
Figure FDA0001930993850000091
所述第二预设层是指第一预设层与
Figure FDA0001930993850000092
之和;所述第三预设层是第二序列中的所有数值,第二序列是对第一序列中的数值右移一位得到的;
其中,n包括2至n的n-1个数值,第一列存储器中存储有所述子段数据。
CN201811640294.9A 2018-12-29 2018-12-29 一种译码方法、装置及通信设备 Active CN111384970B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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译码方法

Patent Citations (22)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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码的编码装置及编码方法
US7343548B2 (en) Method and apparatus for encoding and decoding data
CN110114978B (zh) 高效可解码qc-ldpc码
CN107852176A (zh) Ldpc码编码器和译码器
WO2018045788A1 (en) Partial sum computation for polar code decoding
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
US10374633B2 (en) Method and system for LDPC decoding
CN112332856A (zh) 一种准循环ldpc码的层译码方法及装置
CN111384970B (zh) 一种译码方法、装置及通信设备
JP5333233B2 (ja) 復号装置、データ蓄積装置、データ通信システム、および復号方法
US20100269020A1 (en) Ldpc decoder
CN100544212C (zh) 高速的减少存储需求的低密度校验码解码器
CN114499541A (zh) 分层译码方法、装置、终端设备及介质
JP5488472B2 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
KR20140088423A (ko) 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법
CN102347774A (zh) 低密度奇偶检查码编解码方法
WO2019110721A1 (en) Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages
CN110971240A (zh) 解码器设计方法与存储控制器
CN112640314A (zh) 用于在乘积码和分量极化码之间映射冻结集的装置和方法
CN113300717B (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