本技术涉及通信,具体涉及一种qc-ldpc编码方法和系统。
背景技术:
1、由于数字信号在传输过程中不可避免的会受到损伤与噪声的干扰,因此在接收端解调时存在误码情况。而为了检错与纠错,通常需要采用信号编码技术。其中,ldpc(low-density parity-check,低密度奇偶校验)码是一种稀疏校验矩阵线性分组码,其性能逼近香农极限,是一种广泛应用于5g、卫星高速数传、ssd(solid state disk,固态硬盘)存储等场景的纠错码。而qc-ldpc码则是一类特殊的ldpc码,因其规则性便于存储与硬件实现,被ccsds、ieee等标准组织所采用。qc-ldpc码的生成矩阵具有准循环特征,若信息比特长度为k,校验比特长度为m,其生成矩阵大小为k×n,且该生成矩阵由一个k×k阶的单位矩阵与r×c个a×a阶的循环矩阵构成。
2、传统qc-ldpc编码器的并行度比较固定,通常将一个循环矩阵作为最小编码单元,以致需要缓存至少a个信息比特后才能开始编码,因此编码时延较大。此外,很多高度并行的编码器,为了利用循环矩阵的特性,只存储了循环矩阵的第一行,然后使用循环移位寄存器得到循环矩阵其余行的数据,因此需要使用缓存的信息比特反复多次与循环移位寄存器的结果相乘,这种反复多次使用缓存信息比特的计算方式难以实现流水线式设计,导致虽然编码器的并行度很高,但实际吞吐率并不高。
技术实现思路
1、本技术提供一种qc-ldpc编码方法和系统,可以解决现有技术中存在的编码时延大且吞吐率低技术问题。
2、第一方面,本技术实施例提供一种qc-ldpc编码方法,所述qc-ldpc编码方法包括:
3、对第一信息比特进行预设时钟周期的缓存后按照预设并行度p进行输出,同时对第二信息比特进行分段和补0处理,得到多段目标信息比特,所述目标信息比特的长度能被p整除,所述第一信息比特与第二信息比特相同;
4、针对每一段目标信息比特,控制目标信息比特按照p路并行的方式输入,并获取目标循环矩阵的第一行数据,所述目标循环矩阵阶数能被p整除;
5、对第一行数据进行循环移位得到p个预设的拆分后子循环矩阵,所述拆分后子循环矩阵的行数基于p和目标循环矩阵阶数确定;
6、对p路并行输入与多个拆分后子循环矩阵进行乘积运算,并对每段目标信息比特对应的乘积结果进行累加求和运算,得到目标校验比特;
7、控制目标校验比特按照p路并行的方式输出,并根据预设并行度p对输出的目标校验比特和输出的第一信息比特进行拼接,得到编码数据。
8、结合第一方面,在一种实施方式中,在所述获取目标循环矩阵的第一行数据的步骤之前,还包括:
9、当检测到循环矩阵阶数不能被p整数时,根据循环矩阵的行数与p确定出待扩充行数;
10、基于待扩充行数对循环矩阵进行扩充,得到目标循环矩阵;
11、根据目标循环矩阵的行数与p对目标循环矩阵进行拆分,使得拆分后子循环矩阵的行数为目标循环矩阵阶数与p之间的比值;
12、对目标循环矩阵的第一行数据进行存储,所述第一行数据用于通过循环移位后得到拆分后子循环矩阵。
13、结合第一方面,在一种实施方式中,所述根据循环矩阵的行数与p确定出待扩充行数,包括:
14、将循环矩阵的行数和p代入第一计算公式,得到待扩充行数,所述第一计算公式为:
15、
16、式中,l表示待扩充行数,a表示循环矩阵的行数。
17、结合第一方面,在一种实施方式中,所述对第二信息比特进行分段和补0处理,得到多段目标信息比特,包括:
18、以目标循环矩阵阶数作为分段长度对第二信息比特进行分段,得到多个分段后信息比特;
19、针对每一分段后信息比特,在每一分段后信息比特后插入预设比特的0,以形成目标信息比特,所述预设比特基于目标循环矩阵阶数和p确定。
20、结合第一方面,在一种实施方式中,基于二输入与门阵列实现乘积运算,通过多输入异或门阵列实现累加求和运算。
21、第二方面,本技术实施例提供了一种所述qc-ldpc编码系统包括:输入存储模块、输入预处理模块、循环移位寄存模块、乘法阵列模块、累加求和模块、校验比特缓存模块和输出选择模块;
22、所述输入存储模块用于对第一信息比特进行预设时钟周期的缓存后按照预设并行度p进行输出;
23、所述输入预处理模块用于对第二信息比特进行分段和补0处理,得到多段目标信息比特,所述目标信息比特的长度能被p整除,所述第一信息比特与第二信息比特相同;针对每一段目标信息比特,控制目标信息比特按照p路并行的方式输入;
24、所述循环移位寄存模块用于获取目标循环矩阵的第一行数据,所述目标循环矩阵阶数能被p整除;对第一行数据进行循环移位得到p个预设的拆分后子循环矩阵,所述拆分后子循环矩阵的行数基于p和目标循环矩阵阶数确定;
25、所述乘法阵列模块用于对p路并行输入与多个拆分后子循环矩阵进行乘积运算;
26、所述累加求和模块用于对每段目标信息比特对应的乘积结果进行累加求和运算,得到目标校验比特;
27、所述校验比特缓存模块用于控制目标校验比特按照p路并行的方式输出;
28、所述输出选择模块用于根据预设并行度p对输出的目标校验比特和输出的第一信息比特进行拼接,得到编码数据。
29、结合第二方面,在一种实施方式中,所述系统还包括循环矩阵拆分模块,其用于:
30、当检测到循环矩阵阶数不能被p整数时,根据循环矩阵的行数与p确定出待扩充行数;
31、基于待扩充行数对循环矩阵进行扩充,得到目标循环矩阵;
32、根据目标循环矩阵的行数与p对目标循环矩阵进行拆分,使得拆分后子循环矩阵的行数为目标循环矩阵阶数与p之间的比值;
33、对目标循环矩阵的第一行数据进行存储,所述第一行数据用于通过循环移位后得到拆分后子循环矩阵。
34、结合第二方面,在一种实施方式中,所述循环矩阵拆分模块具体用于:
35、将循环矩阵的行数和p代入第一计算公式,得到待扩充行数,所述第一计算公式为:
36、
37、式中,l表示待扩充行数,a表示循环矩阵的行数。
38、结合第二方面,在一种实施方式中,所述输入预处理模块具体用于:
39、以目标循环矩阵阶数作为分段长度对第二信息比特进行分段,得到多个分段后信息比特;
40、针对每一分段后信息比特,在每一分段后信息比特后插入预设比特的0,以形成目标信息比特,所述预设比特基于目标循环矩阵阶数和p确定。
41、结合第二方面,在一种实施方式中,所述乘法阵列模块基于二输入与门阵列实现乘积运算,所述累加求和模块通过多输入异或门阵列实现累加求和运算。
42、本技术实施例提供的技术方案带来的有益效果至少包括:
43、通过使p路并行输入的信息比特分别和基于输入信息比特的并行度p对目标循环矩阵进行拆分后得到的p个拆分后子循环矩阵进行相乘,并对乘积结果进行累加求和运算得到目标校验比特,由此可一次完成p个输入的所有计算过程,而无需缓存,以适应流水线式处理,且并行度灵活可调,进而提高编码器的编码效率和吞吐率;同时,控制信息比特进行预设时钟周期的缓存后再按照预设并行度p输出,以使得在目标校验比特计算完成前就提前输出信息比特,进而使得输出的目标校验比特可刚好拼接在信息比特后得到编码数据,从而极大降低了编码器的编码时延。
1.一种qc-ldpc编码方法,其特征在于,所述qc-ldpc编码方法包括:
2.如权利要求1所述的qc-ldpc编码方法,其特征在于,在所述获取目标循环矩阵的第一行数据的步骤之前,还包括:
3.如权利要求2所述的qc-ldpc编码方法,其特征在于,所述根据循环矩阵的行数与p确定出待扩充行数,包括:
4.如权利要求1所述的qc-ldpc编码方法,其特征在于,所述对第二信息比特进行分段和补0处理,得到多段目标信息比特,包括:
5.如权利要求1所述的qc-ldpc编码方法,其特征在于:基于二输入与门阵列实现乘积运算,通过多输入异或门阵列实现累加求和运算。
6.一种qc-ldpc编码系统,其特征在于,所述qc-ldpc编码系统包括:输入存储模块、输入预处理模块、循环移位寄存模块、乘法阵列模块、累加求和模块、校验比特缓存模块和输出选择模块;
7.如权利要求6所述的qc-ldpc编码系统,其特征在于,所述系统还包括循环矩阵拆分模块,其用于:
8.如权利要求7所述的qc-ldpc编码系统,其特征在于,所述循环矩阵拆分模块具体用于:
9.如权利要求6所述的qc-ldpc编码系统,其特征在于,所述输入预处理模块具体用于:
10.如权利要求6所述的qc-ldpc编码系统,其特征在于:所述乘法阵列模块基于二输入与门阵列实现乘积运算,所述累加求和模块通过多输入异或门阵列实现累加求和运算。
