一种纠错编码的校验矩阵生成方法、装置和存储介质

申请号 CN202311300826.5 申请日 2023-10-09 公开(公告)号 CN117040543B 公开(公告)日 2024-02-20
申请人 苏州元脑智能科技有限公司; 发明人 马林; 石鹏; 崔子浩;
摘要 本 申请 提供一种纠错编码的校验矩阵生成方法、装置和存储介质,属于 数据处理 的技术领域。所述方法包括获取准循环低 密度 奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度并将划分为第一矩阵和第二矩阵;构建第一移位因子矩阵和第二移位因子矩阵;采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵;采用全随机方式生成目标第一移位因子矩阵;根据目标第一移位因子矩阵和目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。本申请旨在降低LDPC编码的复杂度。
权利要求

1.一种纠错编码的校验矩阵生成方法,其特征在于,所述方法包括:
获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;
构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量;
采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值将所述第二移位因子矩阵构造为目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子;
根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式将所述第一移位因子矩阵构造为目标第一移位因子矩阵;
根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
2.根据权利要求1所述的方法,其特征在于,获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵,包括:
获取准循环低密度奇偶校验码的码字的参数信息,所述参数信息包括码长、单位循环子矩阵和全零子矩阵的维度、有效位的长度以及校验位的长度;
根据所述校验位的长度,在待生成的校验矩阵中划分出第二矩阵,所述第二矩阵是维度为校验位的长度的方阵;
将所述待生成的校验矩阵中除所述第二矩阵的部分作为所述第一矩阵,所述第一矩阵的行数为所述校验位的长度,所述第一矩阵的列数为所述有效位的长度。
3.根据权利要求2所述的方法,其特征在于,构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,包括:
根据所述第二矩阵的维度除以所述子矩阵的维度,确定所述第二移位因子矩阵的维度;
根据所述第二移位因子矩阵的维度和所述有效位的长度,确定所述第一移位因子矩阵的行数和列数,其中,所述第一移位因子矩阵的行数和所述第二移位因子矩阵的行数相同。
4.根据权利要求1所述的方法,其特征在于,采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值将所述第二移位因子矩阵构造为目标第二移位因子矩阵,包括:
采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵,所述第二移位因子矩阵的初始矩阵对应的第二矩阵中每行或每列只包含一个非零项;
根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵;
当所述初始矩阵对应的第二矩阵满秩,且所述初始矩阵对应的第二矩阵的逆矩阵中任一子矩阵为单位循环位移的格式或全零子矩阵时,按照行重标定值或列重标定值构造目标第二移位因子矩阵。
5.根据权利要求4所述的方法,其特征在于,采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵,包括:
采用随机构造的方法,对所述第二移位因子矩阵的对线上的所有元素位置均用随机生成的移位因子进行赋值,其余位置用全零因子标记,生成所述第二移位因子矩阵的初始矩阵。
6.根据权利要求5所述的方法,其特征在于,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵,包括:
根据所述第二移位因子矩阵的初始矩阵中的任一移位因子,用该移位因子对应的单位循环子矩阵替换该移位因子的位置,所述每个全零因子用全零子矩阵替换,生成所述第二移位因子矩阵的初始矩阵对应的第二矩阵。
7.根据权利要求4所述的方法,其特征在于,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵之后,所述方法还包括:
校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩;
当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
8.根据权利要求7所述的方法,其特征在于,校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩之后,所述方法还包括:
当所述初始矩阵对应的第二矩阵不满秩时,重新生成所述第二移位因子矩阵的初始矩阵。
9.根据权利要求7所述的方法,其特征在于,当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法包括:
若该第二矩阵的任一子矩阵不是单位循环位移的格式或全零子矩阵时,重新生成所述第二移位因子矩阵的初始矩阵。
10.根据权利要求4所述的方法,其特征在于,按照行重标定值或列重标定值构造目标第二移位因子矩阵,包括:
检测所述第二移位因子矩阵的初始矩阵中每行的行重是否满足行重标定值;或,检测所述第二移位因子矩阵的初始矩阵中每列的列重是否满足列重标定值;
若所述第二移位因子矩阵的初始矩阵每行的行重不满足行重标定值,或者每列的列重不满足列重标定值时,执行添加移位因子策略;
直至得到的第二移位因子矩阵的每列的列重均满足列重标定值或者每列的行重均满足行重标定值,且该第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵均为单位循环位移的格式或全零子矩阵时,将当前的第二移位因子矩阵作为目标第二移位因子矩阵。
11.根据权利要求10所述的方法,其特征在于,执行添加移位因子策略包括以下过程:
检查当前列中列重,若所述当前列的列重小于列重标定值时,在所述当前列中随机选择任一位置;
当该位置为全零因子时,随机生成移位因子对该位置进行赋值;
当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前列的列重等于列重标定值;
对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
12.根据权利要求11所述的方法,其特征在于,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前列添加移位因子。
13.根据权利要求12所述的方法,其特征在于,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一列作为当前列,再次执行所述添加移位因子策略。
14.根据权利要求10所述的方法,其特征在于,执行添加移位因子策略包括以下过程:
检查当前行中行重,若所述当前行的行重小于行重标定值时,在所述当前行中随机选择任一位置;
当该位置为全零因子时,随机生成移位因子对该位置进行赋值;
当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前行的行重等于行重标定值;
对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
15.根据权利要求14所述的方法,其特征在于,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前行添加移位因子。
16.根据权利要求15所述的方法,其特征在于,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一行作为当前行,执行所述添加移位因子策略。
17.根据权利要求1所述的方法,其特征在于,根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式将所述第一移位因子矩阵构造为目标第一移位因子矩阵,包括:
根据所述待生成的校验矩阵预设的行重目标值和所述目标第二移位因子矩阵的行重标定值,确定所述第一移位因子矩阵的行重余量;
或,根据所述待生成的校验矩阵预设的列重目标值和所述目标第二移位因子矩阵的列重标定值,确定所述第一移位因子矩阵的列重余量;
随机选择所述第一移位因子矩阵的位置,并随机添加移位因子,直到所述第一移位因子矩阵的行重等于所述行重余量,或所述第一移位因子矩阵的列重等于所述列重余量;
将所有行均满足所述行重余量或所有列均满足所述列重余量的第一移位因子矩阵作为目标第一移位因子矩阵。
18.根据权利要求1所述的方法,其特征在于,根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵,包括:
获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一移位因子,根据该移位因子的值,确定移位量等于所述移位因子的值的单位循环子矩阵,并用该单位循环子矩阵替换该移位因子;
获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一全零因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
19.根据权利要求4‑18任一所述的方法,其特征在于,当随机生成移位因子任一位置进行赋值时,包括:
在根据所述子矩阵维度确定的赋值范围内随机选择移位因子。
20.一种纠错编码的校验矩阵生成装置,其特征在于,所述装置包括:
获取模,用于获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;
构建模块,用于构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量;
目标第二移位因子矩阵构建模块,用于采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值将所述第二移位因子矩阵构造为目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子;
目标第一移位因子矩阵构建模块,用于根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式将所述第一移位因子矩阵构造为目标第一移位因子矩阵;
校验矩阵生成模块,用于根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19中任一项所述的纠错编码的校验矩阵生成方法。

说明书全文

一种纠错编码的校验矩阵生成方法、装置和存储介质

技术领域

[0001] 本申请实施例涉及数据处理的技术领域,具体而言,涉及一种纠错编码的校验矩阵生成方法、装置和存储介质。

背景技术

[0002] LDPC(Low‑density Parity‑check,低密度奇偶校验)是一种重要的纠错编码方式,在通信、存储等领域得到了广泛的关注,因为LDPC码字因其趋近香农极限的纠错能,在对纠后误码率有较苛刻要求的场景得到了广泛的应用。
[0003] 对于LDPC码字来说,在获得优异纠错能力的同时,也引入了高复杂度的问题,尤其是对于长码字而言,对应的校验矩阵或生成矩阵的维度较大,编码复杂度非常高;这也在很大程度上限制了LDPC码字的应用。
[0004] 对于LDPC码字的校验矩阵H,为了获得较好的纠错能力,通常在构造H矩阵时采用随机构造的方式,即H矩阵中非零项出现的位置为随机值,虽然这种随机构造H矩阵的方式获得了高纠错能力,但是也由于非零位置的随机,使得LDPC的生成矩阵不再是稀疏矩阵,而非稀疏特性会使得LDPC的编码复杂度显著增加。
[0005] 现有的低复杂度LDPC编码中通常是对校验矩阵进行特殊设计,如采用双对线结构,可以在一定程度上降低编码复杂度;但是,由于对校验矩阵的特殊设计带来的限制也严重破坏了校验矩阵H的随机性,在一定程度上影响了LDPC码字的纠错能力,也没有降低LDPC编码的复杂度。发明内容
[0006] 本申请实施例提供一种纠错编码的校验矩阵生成方法、装置和存储介质,旨在降低LDPC编码的复杂度。
[0007] 第一方面,本申请实施例提供一种纠错编码的校验矩阵生成方法,所述方法包括:
[0008] 获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;
[0009] 构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量;
[0010] 采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子;
[0011] 根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵;
[0012] 根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0013] 可选地,获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵,包括:
[0014] 获取准循环低密度奇偶校验码的码字的参数信息,所述参数信息包括码长、单位循环子矩阵和全零子矩阵的维度、有效位的长度以及校验位的长度;
[0015] 根据所述校验位的长度,在待生成的校验矩阵中划分出第二矩阵,所述第二矩阵是维度为校验位的长度的方阵;
[0016] 将所述待生成的校验矩阵中除所述第二矩阵的部分作为所述第一矩阵,所述第一矩阵的行数为所述校验位的长度,所述第一矩阵的列数为所述有效位的长度。
[0017] 可选地,构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,包括:
[0018] 根据所述第二矩阵的维度除以所述子矩阵的维度,确定所述第二移位因子矩阵的维度;
[0019] 根据所述第二移位因子矩阵的维度和所述有效位的长度,确定所述第一移位因子矩阵的行数和列数,其中,所述第一移位因子矩阵的行数和所述第二移位因子矩阵的行数相同。
[0020] 可选地,采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,包括:
[0021] 采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵,所述第二移位因子矩阵的初始矩阵对应的第二矩阵中每行或每列只包含一个非零项;
[0022] 根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵;
[0023] 当所述初始矩阵对应的第二矩阵满秩,且所述初始矩阵对应的第二矩阵的逆矩阵中任一子矩阵为单位循环位移的格式或全零子矩阵时,按照行重标定值或列重标定值构造目标第二移位因子矩阵。
[0024] 可选地,采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵,包括:
[0025] 采用随机构造的方法,对所述第二移位因子矩阵的对角线上的所有元素位置均用随机生成的移位因子进行赋值,其余位置用全零因子标记,生成所述第二移位因子矩阵的初始矩阵。
[0026] 可选地,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵,包括:
[0027] 根据所述第二移位因子矩阵的初始矩阵中的任一移位因子,用该移位因子对应的单位循环子矩阵替换该移位因子的位置,所述每个全零因子用全零子矩阵替换,生成所述第二移位因子矩阵的初始矩阵对应的第二矩阵。
[0028] 可选地,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵之后,所述方法还包括:
[0029] 校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩;
[0030] 当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0031] 可选地,校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩之后,所述方法还包括:
[0032] 当所述初始矩阵对应的第二矩阵不满秩时,重新生成所述第二移位因子矩阵的初始矩阵。
[0033] 可选地,当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法包括:
[0034] 若该第二矩阵的任一子矩阵不是单位循环位移的格式或全零子矩阵时,重新生成所述第二移位因子矩阵的初始矩阵。
[0035] 可选地,按照行重标定值或列重标定值构造目标第二移位因子矩阵,包括:
[0036] 检测所述第二移位因子矩阵的初始矩阵中每行的行重是否满足行重标定值;或,检测所述第二移位因子矩阵的初始矩阵中每列的列重是否满足列重标定值;
[0037] 若所述第二移位因子矩阵的初始矩阵每行的行重不满足行重标定值,或者每列的列重不满足列重标定值时,执行添加移位因子策略;
[0038] 直至得到的第二移位因子矩阵的每列的列重均满足列重标定值或者每列的行重均满足行重标定值,且该第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵均为单位循环位移的格式或全零子矩阵时,将当前的第二移位因子矩阵作为目标第二移位因子矩阵。
[0039] 可选地,执行添加移位因子策略包括以下过程:
[0040] 检查当前列中列重,若所述当前列的列重小于列重标定值时,在所述当前列中随机选择任一位置;
[0041] 当该位置为全零因子时,随机生成移位因子对该位置进行赋值;
[0042] 当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前列的列重等于列重标定值;
[0043] 对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0044] 可选地,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
[0045] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前列添加移位因子。
[0046] 可选地,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
[0047] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一列作为当前列,再次执行所述添加移位因子策略。
[0048] 可选地,执行添加移位因子策略包括以下过程:
[0049] 检查当前行中行重,若所述当前行的行重小于行重标定值时,在所述当前行中随机选择任一位置;
[0050] 当该位置为全零因子时,随机生成移位因子对该位置进行赋值;
[0051] 当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前行的行重等于行重标定值;
[0052] 对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0053] 可选地,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
[0054] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前行添加移位因子。
[0055] 可选地,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵之后,所述方法还包括:
[0056] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一行作为当前行,执行所述添加移位因子策略。
[0057] 可选地,根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵,包括:
[0058] 根据所述待生成的校验矩阵预设的行重目标值和所述目标第二移位因子矩阵的行重标定值,确定所述第一移位因子矩阵的行重余量;
[0059] 或,根据所述待生成的校验矩阵预设的列重目标值和所述目标第二移位因子矩阵的列重标定值,确定所述第一移位因子矩阵的列重余量;
[0060] 随机选择所述第一移位因子矩阵的位置,并随机添加移位因子,直到所述第一移位因子矩阵的行重等于所述行重余量,或所述第一移位因子矩阵的列重等于所述列重余量;
[0061] 将所有行均满足所述行重余量或所有列均满足所述列重余量的第一移位因子矩阵作为目标第一移位因子矩阵。
[0062] 可选地,根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵,包括:
[0063] 获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一移位因子,根据该移位因子的值,确定移位量等于所述移位因子的值的单位循环子矩阵,并用该单位循环子矩阵替换该移位因子;
[0064] 获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一全零因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0065] 可选地,当随机生成移位因子任一位置进行赋值时,包括:
[0066] 在根据所述子矩阵维度确定的赋值范围内随机选择移位因子。
[0067] 第二方面,本申请实施例提供一种纠错编码的校验矩阵生成装置,所述装置包括:
[0068] 获取模,用于获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;
[0069] 构建模块,用于构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量;
[0070] 目标第二移位因子矩阵构建模块,用于采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子;
[0071] 目标第一移位因子矩阵构建模块,用于根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵;
[0072] 校验矩阵生成模块,用于根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0073] 第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如实施例第一方面所述的纠错编码的校验矩阵生成方法。有益效果
[0074] 当需要生成一个QC‑LDPC码字的校验矩阵时,首先获取QC‑LDPC码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;然后构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量。
[0075] 然后采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵;并根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵。
[0076] 最后根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0077] 本方法在构造校验矩阵时,采用了随机构造的原则,相比于现有技术中对校验矩阵格式进行限制的构造方式而言,可以保证LDPC码字的纠错能力,使得LDPC码字纠错能力不会因为校验矩阵的格式限制而有所降低;并且采用将校验矩阵拆分为第一矩阵和第二矩阵,对第二矩阵进行构造时采用随机构造的原则和逆矩阵格式校验的方式,可以使得的目标第二移位因子矩阵对应的第二矩阵的逆矩阵仍然保留了单位循环子矩阵的格式,可以根据单位循环子矩阵的循环特性进行矩阵计算,进而降低矩阵运算复杂度,从而降低LDPC编码复杂度,并且校验矩阵具有很好的随机性,不会对LDPC码字的纠错能力产生影响。附图说明
[0078] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0079] 图1是本申请一实施例提出的纠错编码的校验矩阵生成方法的步骤流程图
[0080] 图2是本申请一实施例提供的目标第二移位因子矩阵的构造流程图;
[0081] 图3是本申请一实施例提供的添加移位因子策略的执行流程图;
[0082] 图4是本申请一实施例提供的纠错编码的校验矩阵生成装置的功能模块图。

具体实施方式

[0083] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0084] LDPC:Low Density Parity Check Code,低密度奇偶校验码
[0085] QC‑LDPC:Quasi‑cyclic LDPC,准循环低密度奇偶校验码
[0086] 参照图1,示出了本申请实施例中的一种纠错编码的校验矩阵生成方法的步骤流程图,所述方法具体可以包括以下步骤:
[0087] S101:获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵。
[0088] 当需要生成一个QC‑LDPC码字的校验矩阵时,首先获取QC‑LDPC码字的参数信息,所述参数信息包括码长、子矩阵维度e、有效位的长度以及校验位的长度,码长是码字中有效位的长度和校验位的长度的和,子矩阵维度指的是单位循环子矩阵和全零子矩阵的维度;其中,单位循环子矩阵是根据单位矩阵根据移位量循环得到的,本实施例中由移位因子确定单位循环子矩阵的移位量,移位因子取0时,则单位循环子矩阵就是单位矩阵。
[0089] 子矩阵维度e可以预设,一般选择2的n次方,如128、256或512等等,子矩阵维度e根据实际实施的需求可以由用户自定义设置。
[0090] 当QC‑LDPC码字的有效位的长度和校验位的长度确定后,QC‑LDPC码字的校验矩阵的行数和列数也就确定了,其中,校验矩阵的行数等于校验位的长度,校验矩阵的列数等于码长。
[0091] 在本实施例中,将所述待生成的校验矩阵H划分为与码字中有效位对应的第一矩阵H1和与校验位对应的第二矩阵H2。
[0092] 具体地,首先根据所述QC‑LDPC码字的校验位的长度,在待生成的校验矩阵中划分出第二矩阵,所述第二矩阵是维度为校验位的长度的方阵,示例地,如果校验位有n位,则第二矩阵为n*n的方阵。
[0093] 然后,将所述待生成的校验矩阵中除所述第二矩阵部分作为所述第一矩阵,所述第一矩阵的行数为所述校验位的长度,所述第一矩阵的列数为所述有效位的长度。
[0094] 也就是说,第一矩阵和第二矩阵的行数都是校验位的长度,但是第一矩阵的列数是有效位的长度,而第二矩阵是方阵,因此第二矩阵的列数也是校验位的长度。
[0095] S102:构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量。
[0096] 在将待生成的校验矩阵划分为第一矩阵和第二矩阵后,分别构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵。
[0097] 具体地,根据所述第二矩阵的维度除以所述子矩阵的维度,确定所述第二移位因子矩阵的维度,也就是说,将第二矩阵的维度划分为多个子矩阵维度e,示例地,假设校验位的长度为1024,而选择的子矩阵维度e为128,则第二矩阵的维度为1024*1024,而第二矩阵对应的第二移位因子矩阵则为1024/128=8,即第二移位因子矩阵为8行8列的矩阵。
[0098] 然后根据所述第二移位因子矩阵的维度和所述QC‑LDPC码字的有效位的长度,确定所述第一移位因子矩阵的行数和列数,所述第一移位因子矩阵的行数和所述第二移位因子矩阵的行数相同,而第一移位因子矩阵的列数等于有效位的长度除以子矩阵维度e。
[0099] 构建好的第一移位因子矩阵和第二移位因子矩阵中的每个元素可以是移位因子,也可以是表征元素全为0的子矩阵的全零因子,在刚构建完毕的第一移位因子矩阵和第二移位因子矩阵中,每个元素可以均为全零因子。
[0100] 示例地,将第一移位因子矩阵记为H1_bsh,第二移位因子矩阵记为H2_bsh。则构建的待生成的校验矩阵的移位因子为Hbsh为下式:
[0101]
[0102] Hbsh的维度为c*t,待生成的校验矩阵的移位因子Hbsh的左侧为第一移位因子矩阵H1_bsh,第一移位因子矩阵H1_bsh的维度为c*(t‑c);待生成的校验矩阵的移位因子Hbsh的右侧为第二移位因子矩阵H2_bsh,第二移位因子矩阵H2_bsh的维度为(t‑c+1)*t。
[0103] 示例地,第一移位因子矩阵和第二移位因子矩阵中fmj为移位因子或全零因子,当fmj大于0时,fmj是单位循环子矩阵的移位量,当fmj等于(‑1)时为全零因子。
[0104] S103:用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子。
[0105] 在构建完毕第一移位因子矩阵和第二移位因子矩阵,首先构造目标第二移位因子矩阵。
[0106] 参照图2,示出了本申请实施例提供的目标第二移位因子矩阵的构造流程图,在一种可行的实施方式中,构造目标第二移位因子矩阵具体包括:
[0107] 首先,采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵。
[0108] 示例地,采用随机构造的方法,对所述第二移位因子矩阵的对角线上的所有元素位置均用随机生成的移位因子进行赋值,当随机生成移位因子任一位置进行赋值时,可以在根据所述子矩阵维度确定的赋值范围内随机选择移位因子,如赋值范围为:0(e‑1),假~设e为128,则移位因子的赋值范围为0 127;然后将其余位置仍用全零因子标记,示例地可~
以用(‑1)作为全零因子的标记,从而生成所述第二移位因子矩阵的初始矩阵,所述第二移位因子矩阵的初始矩阵对应的第二矩阵中每行或每列只包含一个非零项。
[0109] 通过采用的对角线位置对移位因子进行随机赋值的方式,可以快速获取满秩可逆的第二矩阵,提高了第二矩阵的构造效率。
[0110] 并且,在第二移位因子矩阵的对角线上的位置可以全部是移位因子,也可以是移位因子和全零因子相组合的方式,只要保证第二矩阵的逆矩阵中所有子矩阵均为单位循环阵或全零子矩阵的格式即可。
[0111] 接着,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵。
[0112] 示例地,根据所述第二移位因子矩阵的初始矩阵中的任一移位因子,用该移位因子对应的单位循环子矩阵替换该移位因子的位置,所述每个全零因子用全零子矩阵替换,生成所述第二移位因子矩阵的初始矩阵对应的第二矩阵,移位因子为用于确定单位循环子矩阵的移位量,即移位因子为维度是e*e的标准单位矩阵的每一列向右位移的量。
[0113] 假设第二移位因子矩阵的初始矩阵的第一行第一列的移位因子为0,则用维度为e*e的标准单位矩阵替换第一行第一列的移位因子;如果第一行第一列的移位因子为1,则将标准单位矩阵的每一列向右位移1位的单位循环子矩阵替换第一行第一列的移位因子。
[0114] 接着,根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵之后,再校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩。
[0115] 当所述初始矩阵对应的第二矩阵不满秩时,重新生成所述第二移位因子矩阵的初始矩阵,示例地,可以将述第二移位因子矩阵的对角线上的移位因子全部进行重新随机赋值。
[0116] 当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0117] 若该第二矩阵的任一子矩阵不是单位循环位移的格式或全零子矩阵时,重新生成所述第二移位因子矩阵的初始矩阵。
[0118] 当所述初始矩阵对应的第二矩阵满秩,且所述初始矩阵对应的第二矩阵的逆矩阵中任一子矩阵为单位循环位移的格式或全零子矩阵时,可以继续按照行重标定值或列重标定值构造目标第二移位因子矩阵,行重标定值或列重标定值可以根据实际需求进行自定义设置,其中,行重表示一行中非零项的数量,列重表示一列中非零项的数量。
[0119] 在一种可行的实施方式中,按照行重标定值或列重标定值构造目标第二移位因子矩阵,包括:
[0120] 检测所述第二移位因子矩阵的初始矩阵中每行的行重是否满足行重标定值;或,检测所述第二移位因子矩阵的初始矩阵中每列的列重是否满足列重标定值;若所述第二移位因子矩阵的初始矩阵每行的行重不满足行重标定值,或者每列的列重不满足列重标定值时,执行添加移位因子策略;直至得到的第二移位因子矩阵的每列的列重均满足列重标定值或者每列的行重均满足行重标定值,且该第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵均为单位循环位移的格式或全零子矩阵时,将当前的第二移位因子矩阵作为目标第二移位因子矩阵。
[0121] 在实际实施的过程中,可以选择以列为粒度添加移位因子,也可以选择以行为粒度添加移位因子。
[0122] 参照图3,示出了本申请实施例提供的添加移位因子策略的执行流程图,在一种可行的实施方式中,以列为粒度添加移位因子时,执行添加移位因子策略包括以下过程:
[0123] 检查当前列中列重,若所述当前列的列重小于列重标定值时,在所述当前列中随机选择任一位置;当该位置为全零因子时,示例地,如果位置为‑1时,随机生成移位因子对该位置进行赋值;当该位置不为全零因子时,表明该位置已经非零项了,如果对该位置进行移位因子的赋值,等于减少了一个非零项,从而不会使得当前列的列重增加,因此重新随机选择一个位置进行赋值,直到所述当前列的列重等于列重标定值。
[0124] 当通过添加移位因子使得当前列的列重等于列重标定值时,对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0125] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,则重新为当前列添加移位因子,示例地,可以对当前列赋值的位置重新生成新的移位因子进行赋值,或者对当前列赋值的位置撤销所赋的值,然后选择新的位置随机赋值移位因子。
[0126] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一列作为当前列,再次执行所述添加移位因子策略。
[0127] 如此循环,直到得到的第二移位因子矩阵的每列的列重均满足列重标定值且该第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵均为单位循环位移的格式或全零子矩阵时,将当前的第二移位因子矩阵作为目标第二移位因子矩阵。
[0128] 在另一种可行的实施方式中,以行为粒度添加移位因子时,执行添加移位因子策略包括以下过程:
[0129] 检查当前行中行重,若所述当前行的行重小于行重标定值时,在所述当前行中随机选择任一位置;当该位置为全零因子时,随机生成移位因子对该位置进行赋值;当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前行的行重等于行重标定值。
[0130] 对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0131] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前行添加移位因子。
[0132] 若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一行作为当前行,执行所述添加移位因子策略。
[0133] 本实施例,在构造目标第二移位因子矩阵时,采用随机构造和逆矩阵校验的方式,可以保证构造后的H2矩阵的逆矩阵依然保留子矩阵为单位循环阵的格式,使得目标第二移位因子矩阵对应的第二矩阵可以利用单位循环阵的循环特性进行矩阵计算,可以降低矩阵运算复杂度,从而降低LDPC编码复杂度。
[0134] S104:根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵。
[0135] 当构建好目标第二移位因子矩阵后,可以在目标第二移位因子矩阵的基础上,构造目标第一移位因子矩阵,具体地,可以根据所述待生成的校验矩阵预设的行重目标值和所述目标第二移位因子矩阵的行重标定值,确定所述第一移位因子矩阵的行重余量;或者根据所述待生成的校验矩阵预设的列重目标值和所述目标第二移位因子矩阵的列重标定值,确定所述第一移位因子矩阵的列重余量。
[0136] 然后随机选择所述第一移位因子矩阵的位置,并随机添加移位因子,直到所述第一移位因子矩阵的行重等于所述行重余量,或所述第一移位因子矩阵的列重等于所述列重余量。
[0137] 在实际实施的过程中,可以在行和列中选择任一种方式进行构造即可,然后将所有行均满足所述行重余量或所有列均满足所述列重余量的第一移位因子矩阵作为目标第一移位因子矩阵。
[0138] S105:根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0139] 在生成目标第一移位因子矩阵和所述目标第二移位因子矩阵后,将移位因子和全零因子进行替换。
[0140] 具体地,获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一移位因子,根据该移位因子的值,确定移位量等于所述移位因子的值的单位循环子矩阵,并用该单位循环子矩阵替换该移位因子;然后获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一全零因子,用全零子矩阵替换全零因子,从而得到目标第一移位因子矩阵对应的第一矩阵,目标第二移位因子矩阵对应的第二矩阵,最后根据第一矩阵和第二矩阵可以生成最终的校验矩阵。
[0141] 本方法中,在生成校验矩阵时,采用了随机构造原则,相比于存在格式限制的校验矩阵的构造方式,可以保证LDPC码字的纠错能力,使得LDPC码字纠错能力不会因为H矩阵格式的限制而有所降低。
[0142] 而通过将校验矩阵分为第一矩阵和第二矩阵,并构建第一移位因子矩阵和第二移位因子矩阵,首先对第二移位因子矩阵按照随机构造和逆矩阵校验的结合方式,使得构造得到的第二矩阵的逆矩阵依然保留有单位循环子矩阵的格式,可以根据单位循环子矩阵的循环特性进行矩阵计算,进而了降低矩阵运算复杂度,也降低了LDPC编码复杂度。
[0143] 在实际实施的过程中,通常需要存储第二矩阵的逆矩阵,本实施例生成的第二矩阵可以保证其逆矩阵由单位循环子矩阵和全零子矩阵组成,因此在对第二矩阵的逆矩阵进行存储时,只需要存储非零项的移位因子即可,从而还可以显著降低存储所需要的存储空间。
[0144] 参照图4,示出了本申请实施例提供的一种纠错编码的校验矩阵生成装置的功能模块图,所述装置包括:
[0145] 获取模块100,用于获取准循环低密度奇偶校验码的码字的参数信息,确定待生成的校验矩阵的维度,并将所述待生成的校验矩阵划分为与码字中有效位对应的第一矩阵和与校验位对应的第二矩阵;
[0146] 构建模块200,用于构建所述第一矩阵对应的第一移位因子矩阵和所述第二矩阵对应的第二移位因子矩阵,所述第一移位因子矩阵和所述第二移位因子矩阵中的元素为移位因子或全零因子,所述移位因子用于确定单位循环子矩阵的移位量;
[0147] 目标第二移位因子矩阵构建模块300,用于采用随机构造和逆矩阵格式校验的方式,按照预设的行重标定值或列重标定值构造目标第二移位因子矩阵,所述目标第二移位因子矩阵对应的所述第二矩阵的逆矩阵中所有子矩阵为单位循环子矩阵或全零子矩阵,所述目标第二移位因子矩阵中至少有一列中包含两个以上不同的非零移位因子;
[0148] 目标第一移位因子矩阵构建模块400,用于根据所述待生成的校验矩阵预设的行重目标值或者列重目标值,以及所述目标第二移位因子矩阵的行重标定值或者列重标定值,采用全随机方式生成目标第一移位因子矩阵;
[0149] 校验矩阵生成模块500,用于根据所述目标第一移位因子矩阵和所述目标第二移位因子矩阵中各自包含的移位因子和全零因子,用每个所述移位因子对应的单位循环子矩阵替换该移位因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0150] 可选地,所述获取模块包括:
[0151] 获取单元,用于获取准循环低密度奇偶校验码的码字的参数信息,所述参数信息包括码长、单位循环子矩阵和全零子矩阵的维度、有效位的长度以及校验位的长度;
[0152] 第二矩阵划分单元,用于根据所述校验位的长度,在待生成的校验矩阵中划分出第二矩阵,所述第二矩阵是维度为校验位的长度的方阵;
[0153] 第一矩阵划分单元,用于将所述待生成的校验矩阵中除所述第二矩阵的部分作为所述第一矩阵,所述第一矩阵的行数为所述校验位的长度,所述第一矩阵的列数为所述有效位的长度。
[0154] 可选地,所述构建模块包括:
[0155] 第一维度确定单元,用于根据所述第二矩阵的维度除以所述子矩阵的维度,确定所述第二移位因子矩阵的维度;
[0156] 第二维度确定单元,用于根据所述第二移位因子矩阵的维度和所述有效位的长度,确定所述第一移位因子矩阵的行数和列数,其中,所述第一移位因子矩阵的行数和所述第二移位因子矩阵的行数相同。
[0157] 可选地,所述目标第二移位因子矩阵构建模块包括:
[0158] 初始矩阵构建单元,用于采用随机构造的方法,生成所述第二移位因子矩阵的初始矩阵,所述第二移位因子矩阵的初始矩阵对应的第二矩阵中每行或每列只包含一个非零项;
[0159] 转换单元,用于根据所述第二移位因子矩阵的初始矩阵中的移位因子和全零因子,转换生成所述初始矩阵对应的第二矩阵;
[0160] 目标第二移位因子矩阵生成单元,用于当所述初始矩阵对应的第二矩阵满秩,且所述初始矩阵对应的第二矩阵的逆矩阵中任一子矩阵为单位循环位移的格式或全零子矩阵时,按照行重标定值或列重标定值构造目标第二移位因子矩阵。
[0161] 可选地,所述初始矩阵构建单元包括:
[0162] 对角线赋值子单元,用于采用随机构造的方法,对所述第二移位因子矩阵的对角线上的多有元素位置均用随机生成的移位因子进行赋值,其余位置用全零因子标记,生成所述第二移位因子矩阵的初始矩阵。
[0163] 可选地,所述转换单元包括:
[0164] 转换子单元,用于根据所述第二移位因子矩阵的初始矩阵中的任一移位因子,用该移位因子对应的单位循环子矩阵替换该移位因子的位置,所述每个全零因子用全零子矩阵替换,生成所述第二移位因子矩阵的初始矩阵对应的第二矩阵。
[0165] 可选地,所述装置还包括:
[0166] 检验模块,用于校验所述第二移位因子矩阵的初始矩阵对应的第二矩阵是否满秩;当所述初始矩阵对应的第二矩阵满秩时,采用逆矩阵格式校验的方式,确定该第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0167] 可选地,所述装置还包括:
[0168] 第一重新生成模块,用于当所述初始矩阵对应的第二矩阵不满秩时,重新生成所述第二移位因子矩阵的初始矩阵。
[0169] 可选地,所述装置还包括:
[0170] 第二重新生成模块,用于若该第二矩阵的任一子矩阵不是单位循环位移的格式或全零子矩阵时,重新生成所述第二移位因子矩阵的初始矩阵。
[0171] 可选地,所述目标第二移位因子矩阵生成单元包括:
[0172] 行重或列重检测单元,用于检测所述第二移位因子矩阵的初始矩阵中每行的行重是否满足行重标定值;或,检测所述第二移位因子矩阵的初始矩阵中每列的列重是否满足列重标定值;
[0173] 执行单元,用于若所述第二移位因子矩阵的初始矩阵每行的行重不满足行重标定值,或者每列的列重不满足列重标定值时,执行添加移位因子策略;
[0174] 输出单元,用于直至得到的第二移位因子矩阵的每列的列重均满足列重标定值或者每列的行重均满足行重标定值,且该第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵均为单位循环位移的格式或全零子矩阵时,将当前的第二移位因子矩阵作为目标第二移位因子矩阵。
[0175] 可选地,所述执行单元用于执行添加移位因子策略,所述移位因子策略包括以下过程:
[0176] 检查当前列中列重,若所述当前列的列重小于列重标定值时,在所述当前列中随机选择任一位置;当该位置为全零因子时,随机生成移位因子对该位置进行赋值;当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前列的列重等于列重标定值;对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0177] 可选地,所述执行单元还用于若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前列添加移位因子。
[0178] 可选地,所述执行单元还用于若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一列作为当前列,再次执行所述添加移位因子策略。
[0179] 可选地,所述执行单元用于执行添加移位因子策略,所述移位因子策略包括以下过程:
[0180] 检查当前行中行重,若所述当前行的行重小于行重标定值时,在所述当前行中随机选择任一位置;当该位置为全零因子时,随机生成移位因子对该位置进行赋值;当该位置不为全零因子时,重新随机选择一个位置进行赋值,直到所述当前行的行重等于行重标定值;对当前的第二移位因子矩阵对应的第二矩阵进行校验,确定所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是否为单位循环位移的格式或全零子矩阵。
[0181] 可选地,所述执行单元还用于若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵不是单位循环位移的格式或全零子矩阵,重新为当前行添加移位因子。
[0182] 所述执行单元还用于若所述当前的第二移位因子矩阵对应的第二矩阵的逆矩阵中任一子矩阵是单位循环位移的格式或全零子矩阵,则将当前的第二移位因子矩阵的下一行作为当前行,执行所述添加移位因子策略。
[0183] 可选地,所述目标第一移位因子矩阵构建模块包括:
[0184] 行重余量确定单元,用于根据所述待生成的校验矩阵预设的行重目标值和所述目标第二移位因子矩阵的行重标定值,确定所述第一移位因子矩阵的行重余量;
[0185] 列重余量确定单元,用于根据所述待生成的校验矩阵预设的列重目标值和所述目标第二移位因子矩阵的列重标定值,确定所述第一移位因子矩阵的列重余量;
[0186] 随机生成单元,用于随机选择所述第一移位因子矩阵的位置,并随机添加移位因子,直到所述第一移位因子矩阵的行重等于所述行重余量,或所述第一移位因子矩阵的列重等于所述列重余量;将所有行均满足所述行重余量或所有列均满足所述列重余量的第一移位因子矩阵作为目标第一移位因子矩阵。
[0187] 可选地,所述校验矩阵生成模块包括:
[0188] 第一替换单元,用于获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一移位因子,根据该移位因子的值,确定移位量等于所述移位因子的值的单位循环子矩阵,并用该单位循环子矩阵替换该移位因子;
[0189] 第二替换单元,用于获取所述目标第一移位因子矩阵或所述目标第二移位因子矩阵中任一全零因子,用全零子矩阵替换全零因子,生成最终的校验矩阵。
[0190] 本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求实施例所述的纠错编码的校验矩阵生成方法。
[0191] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0192] 本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0193] 本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0194] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0195] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0196] 尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
[0197] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0198] 本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
QQ群二维码
意见反馈