一种LDPC编码方法、编码装置及通信设备
技术领域
本发明涉及通信技术领域,尤其涉及一种LDPC(Low Density Parity CheckCode,低密度奇偶校验码)编码方法、编码装置及通信设备。
背景技术
5G new radio(5G新空口)讨论中新增加了eMMB(Enhanced Mobile Broadband,增强型行动宽频应用,)、mMTC(Massive Machine Type Communication,大量连结机器型通讯)、URLLC(Ultra-reliable and Low Latency Communications,超可靠及低延迟通讯)等多种场景,针对这些新的应用场景3GPP要求设计新型纠错编码。
5G新空口针对eMMB场景要求下行峰值吞吐量达到20Gbps,URLLC场景对高可靠性提出很高要求,mMTC场景则对功耗要求很高。而LTE(Long Term Evolution,长期演进)现有turbo码方案其译码具有较低的并行度,达到eMMB场景20Gbps的设计目标很困难;turbo码的error floor(误码平台)也难以达到URLLC场景的要求;同时turbo码的译码复杂度对于mMTC场景也不是很合适。LDPC编码与turbo码具有相似的性能这早已经被证明,但是LDPC码的结构非常适合并行或者部分并行译码,达到eMMB的20Gbps设计目标没有任何问题,而且恰当设计的LDPC码具有很低的error floor,完全可以满足URLLC场景的要求,LDPC译码复杂度比较低,这对mMTC场景也具有一定的吸引力,此外LDPC已经被IEEE的众多标准采纳,实践证明是可靠的,因此LDPC成为5G新空口的纠错编码方案的强力竞争者。
但4G时代采用的turbo码,非常适用于移动通信场景,首先是turbo码提供了188种的QPP(二次置换多项式)交织器长度,如下表1所示,可以提供最小8个比特最大64个比特的颗粒度,这等价于提供了188种信息比特长度的码率为1/3的turbo码,即对应188种码长,由188个QPP交织器参数决定。如表1所示,通过对这188种码长的turbo码进行随机打孔或者重复的方法去匹配不同的TBsize与调度的不同传输资源,所以turbo码在码长上的灵活性与其他候选方案相比具有明显的优势。
表1:Turbo code internal interleaver parameters(Turbo码内部交织参数)
i |
K |
f<sub>1</sub> |
f<sub>2</sub> |
i |
K |
f<sub>1</sub> |
f<sub>2</sub> |
i |
K |
f<sub>1</sub> |
f<sub>2</sub> |
i |
K |
f<sub>1</sub> |
f<sub>2</sub> |
1 |
40 |
3 |
10 |
48 |
416 |
25 |
52 |
95 |
1120 |
67 |
140 |
142 |
3200 |
111 |
240 |
2 |
48 |
7 |
12 |
49 |
424 |
51 |
106 |
96 |
1152 |
35 |
72 |
143 |
3264 |
443 |
204 |
3 |
56 |
19 |
42 |
50 |
432 |
47 |
72 |
97 |
1184 |
19 |
74 |
144 |
3328 |
51 |
104 |
4 |
64 |
7 |
16 |
51 |
440 |
91 |
110 |
98 |
1216 |
39 |
76 |
145 |
3392 |
51 |
212 |
5 |
72 |
7 |
18 |
52 |
448 |
29 |
168 |
99 |
1248 |
19 |
78 |
146 |
3456 |
451 |
192 |
6 |
80 |
11 |
20 |
53 |
456 |
29 |
114 |
100 |
1280 |
199 |
240 |
147 |
3520 |
257 |
220 |
7 |
88 |
5 |
22 |
54 |
464 |
247 |
58 |
101 |
1312 |
21 |
82 |
148 |
3584 |
57 |
336 |
8 |
96 |
11 |
24 |
55 |
472 |
29 |
118 |
102 |
1344 |
211 |
252 |
149 |
3648 |
313 |
228 |
9 |
104 |
7 |
26 |
56 |
480 |
89 |
180 |
103 |
1376 |
21 |
86 |
150 |
3712 |
271 |
232 |
10 |
112 |
41 |
84 |
57 |
488 |
91 |
122 |
104 |
1408 |
43 |
88 |
151 |
3776 |
179 |
236 |
11 |
120 |
103 |
90 |
58 |
496 |
157 |
62 |
105 |
1440 |
149 |
60 |
152 |
3840 |
331 |
120 |
12 |
128 |
15 |
32 |
59 |
504 |
55 |
84 |
106 |
1472 |
45 |
92 |
153 |
3904 |
363 |
244 |
13 |
136 |
9 |
34 |
60 |
512 |
31 |
64 |
107 |
1504 |
49 |
846 |
154 |
3968 |
375 |
248 |
14 |
144 |
17 |
108 |
61 |
528 |
17 |
66 |
108 |
1536 |
71 |
48 |
155 |
4032 |
127 |
168 |
15 |
152 |
9 |
38 |
62 |
544 |
35 |
68 |
109 |
1568 |
13 |
28 |
156 |
4096 |
31 |
64 |
16 |
160 |
21 |
120 |
63 |
560 |
227 |
420 |
110 |
1600 |
17 |
80 |
157 |
4160 |
33 |
130 |
17 |
168 |
101 |
84 |
64 |
576 |
65 |
96 |
111 |
1632 |
25 |
102 |
158 |
4224 |
43 |
264 |
18 |
176 |
21 |
44 |
65 |
592 |
19 |
74 |
112 |
1664 |
183 |
104 |
159 |
4288 |
33 |
134 |
19 |
184 |
57 |
46 |
66 |
608 |
37 |
76 |
113 |
1696 |
55 |
954 |
160 |
4352 |
477 |
408 |
20 |
192 |
23 |
48 |
67 |
624 |
41 |
234 |
114 |
1728 |
127 |
96 |
161 |
4416 |
35 |
138 |
21 |
200 |
13 |
50 |
68 |
640 |
39 |
80 |
115 |
1760 |
27 |
110 |
162 |
4480 |
233 |
280 |
22 |
208 |
27 |
52 |
69 |
656 |
185 |
82 |
116 |
1792 |
29 |
112 |
163 |
4544 |
357 |
142 |
23 |
216 |
11 |
36 |
70 |
672 |
43 |
252 |
117 |
1824 |
29 |
114 |
164 |
4608 |
337 |
480 |
24 |
224 |
27 |
56 |
71 |
688 |
21 |
86 |
118 |
1856 |
57 |
116 |
165 |
4672 |
37 |
146 |
25 |
232 |
85 |
58 |
72 |
704 |
155 |
44 |
119 |
1888 |
45 |
354 |
166 |
4736 |
71 |
444 |
26 |
240 |
29 |
60 |
73 |
720 |
79 |
120 |
120 |
1920 |
31 |
120 |
167 |
4800 |
71 |
120 |
27 |
248 |
33 |
62 |
74 |
736 |
139 |
92 |
121 |
1952 |
59 |
610 |
168 |
4864 |
37 |
152 |
28 |
256 |
15 |
32 |
75 |
752 |
23 |
94 |
122 |
1984 |
185 |
124 |
169 |
4928 |
39 |
462 |
29 |
264 |
17 |
198 |
76 |
768 |
217 |
48 |
123 |
2016 |
113 |
420 |
170 |
4992 |
127 |
234 |
30 |
272 |
33 |
68 |
77 |
784 |
25 |
98 |
124 |
2048 |
31 |
64 |
171 |
5056 |
39 |
158 |
31 |
280 |
103 |
210 |
78 |
800 |
17 |
80 |
125 |
2112 |
17 |
66 |
172 |
5120 |
39 |
80 |
32 |
288 |
19 |
36 |
79 |
816 |
127 |
102 |
126 |
2176 |
171 |
136 |
173 |
5184 |
31 |
96 |
33 |
296 |
19 |
74 |
80 |
832 |
25 |
52 |
127 |
2240 |
209 |
420 |
174 |
5248 |
113 |
902 |
34 |
304 |
37 |
76 |
81 |
848 |
239 |
106 |
128 |
2304 |
253 |
216 |
175 |
5312 |
41 |
166 |
35 |
312 |
19 |
78 |
82 |
864 |
17 |
48 |
129 |
2368 |
367 |
444 |
176 |
5376 |
251 |
336 |
36 |
320 |
21 |
120 |
83 |
880 |
137 |
110 |
130 |
2432 |
265 |
456 |
177 |
5440 |
43 |
170 |
37 |
328 |
21 |
82 |
84 |
896 |
215 |
112 |
131 |
2496 |
181 |
468 |
178 |
5504 |
21 |
86 |
38 |
336 |
115 |
84 |
85 |
912 |
29 |
114 |
132 |
2560 |
39 |
80 |
179 |
5568 |
43 |
174 |
39 |
344 |
193 |
86 |
86 |
928 |
15 |
58 |
133 |
2624 |
27 |
164 |
180 |
5632 |
45 |
176 |
40 |
352 |
21 |
44 |
87 |
944 |
147 |
118 |
134 |
2688 |
127 |
504 |
181 |
5696 |
45 |
178 |
41 |
360 |
133 |
90 |
88 |
960 |
29 |
60 |
135 |
2752 |
143 |
172 |
182 |
5760 |
161 |
120 |
42 |
368 |
81 |
46 |
89 |
976 |
59 |
122 |
136 |
2816 |
43 |
88 |
183 |
5824 |
89 |
182 |
43 |
376 |
45 |
94 |
90 |
992 |
65 |
124 |
137 |
2880 |
29 |
300 |
184 |
5888 |
323 |
184 |
44 |
384 |
23 |
48 |
91 |
1008 |
55 |
84 |
138 |
2944 |
45 |
92 |
185 |
5952 |
47 |
186 |
45 |
392 |
243 |
98 |
92 |
1024 |
31 |
64 |
139 |
3008 |
157 |
188 |
186 |
6016 |
23 |
94 |
46 |
400 |
151 |
40 |
93 |
1056 |
17 |
66 |
140 |
3072 |
47 |
96 |
187 |
6080 |
47 |
190 |
47 |
408 |
155 |
102 |
94 |
1088 |
171 |
204 |
141 |
3136 |
13 |
28 |
188 |
6144 |
263 |
480 |
表中f1和f2是决定QPP交织器的两个参数,该参数与Turbo码QPP交织器输入比特的个数K有关。
对LDPC码来说,为了降低编码器与译码器的存储量以及编译码复杂度,目前国内或者国际标准采用的LDPC码,主要为准循环LDPC码,3GPP#85会议形成的结论是5G新空口的LDPC码也会采用准循环LDPC码,其校验矩阵H可以表示为如下形式:
其中Ai,j是一个列重量为0或者1的z×z循环矩阵。矩阵H表征的码字称为(N,K)LDPC码,其中N=c×z为码长,K=(c-ρ)×z表示编码信息比特的长度,其编码码率为R=K/N。
对于准循环LDPC码有多种构造方法,2003年VTC会议Tong Zhang等在Design ofVLSI Implementation-Oriented LDPC Codes一文中提出:
首先,构造一个大小为ρ×c的Base matrix(基矩阵)B,该矩阵的元素非0即1,举例来说基矩阵B可以如下所示:
然后,将该基矩阵B的每个1元素扩展为一个z×z循环置换矩阵(CPM,CircularPermutation Matrix),基矩阵B的0元素则扩展为一个z×z的全0矩阵。
后来的802.11n也采用此种方法描述LDPC码的校验矩阵。用Pi表示每个z×z循环置换矩阵,i是循环移位标号。其中,矩阵P就是单位阵(P0)循环右移动一位得到的矩阵,举例来说矩阵P可以如下所示:
如下所示为一个循环置换矩阵Pi(子分组大小为8×8,即z=8)的实例。
因此,每个循环置换矩阵Pi实际上为单位阵I循环右移i次数,循环置换矩阵的循环移位标号i满足0≤i<z,i∈¢。为了获得多种形式的码长,802.11n将循环置换矩阵的大小z分别取值为27,54和81,对应3种码长分别是1944、1296和648。
需要说明的是,上面描述的准循环LDPC码对应的子循环矩阵(CM,CircularMatrix),列重可以大于1,如列重为2或者更大的值,此时子循环矩阵不再是一个CPM。
对于LDPC码来说,速率匹配可以通过打孔获得,也可以通过高码率母码的校验矩阵扩展或者分裂等方法实现。这些方法可以实现,根据一种码长可以得到多种码率,从而得到多种信息比特长度;或者根据固定的信息比特数,获得不同的码率的码字,当然由于信息比特固定,每种码率对应固定码长。所以可以看出,对于LDPC来说,若想处理不同的信息比特长度,一种方法是可以通过对一种码长的码字进行打孔得到,但是只对一种码长进行打孔去适应各种长度的信息比特,与LTE采用的有一百多种码长的turbo码相比明显处于劣势;另外一种途径是构造多种码长的LDPC码,这完全类似于turbo码具有一百多种交织器长度,但是与turbo码每一种交织长度仅由两个自然数f1与f2确定完全不同,每种码长的LDPC码都必须对应一个N行、M列的校验矩阵,而且不同的码长的校验矩阵是互不相同的,所以188种码长需要对应188个校验矩阵,这需要很大的存储量,且难以描述,实际中无法标准化,这也是著名的802.11n标准只设计了3种长度的LDPC码的原因。如果提供的LDPC码长比较少,这时导致信息比特颗粒度过大,编码灵活性不好。如很短的数据为适应特定码长,需要补多个0,造成较大开销,编码时为了降低开销,需要匹配zero padding(补零)最少的码长,导致不能根据性能最优码长编码。这一问题目前是制约了LDPC码在5G进行应用的最大瓶颈之一。
也就是说,现有LDPC编码方案,无法类似turbo码那样对码长或信息比特提供灵活的颗粒度,从实现角度只能提供几种(或者数量很少)码长的校验矩阵,如此以来对信息比特用补零的方法去适应不同的信息比特长度将无法避免,这明显降低了资源利用率,也远远不如turbo码更灵活。
发明内容
有鉴于此,本发明提供一种LDPC编码方法、编码装置及通信设备,以解决现有技术构造的不同码长的LDPC码需要分别存储,在数量很大时复杂度高,且无法标准化的问题。
为解决上述技术问题,本发明提供一种LDPC编码方法,
获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
优选地,所述根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵的步骤包括:
从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵。
优选地,所述所需码长的LDPC码校验矩阵基于所述选取的预设LDPC码校验矩阵的基矩阵和子循环矩阵而生成。
优选地,所述所需码长的LDPC码校验矩阵采用的基矩阵与所述选取的预设LDPC码校验矩阵采用的基矩阵相同;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是所述选取的预设LDPC码校验矩阵采用的基矩阵的子集;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是由所述选取的预设LDPC码校验矩阵采用的基矩阵扩展而得到。
优选地,所述基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵的步骤包括:
对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵。
优选地,所述对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵的步骤包括:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行缩短,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,所述根据第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵的步骤包括:
对预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
优选地,所述对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵的步骤包括:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行扩展,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,所述第一数值为至少两个,所述基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵的步骤包括:
当所需码长的LDPC码校验矩阵的码长位于相邻的两个预设LDPC码校验矩阵的码长之间时,从所述相邻的两个预设LDPC码校验矩阵中选取出与所需码长的LDPC码校验矩阵的码长最接近的预设LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长大于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长小于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
本发明还提供一种LDPC编码装置,包括:
获取模块,用于获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
生成模块,用于根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
编码模块,用于基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
优选地,所述生成模块包括:
选取子模块,用于从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
处理子模块,用于基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵。
优选地,所述所需码长的LDPC码校验矩阵基于所述选取的预设LDPC码校验矩阵的基矩阵和子循环矩阵而生成。
优选地,所述所需码长的LDPC码校验矩阵采用的基矩阵与所述选取的预设LDPC码校验矩阵采用的基矩阵相同;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是所述选取的预设LDPC码校验矩阵采用的基矩阵的子集;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是由所述选取的预设LDPC码校验矩阵采用的基矩阵扩展而得到。
优选地,所述处理子模块用于对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵。
优选地,所述处理子模块用于:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行缩短,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,所述处理子模块用于对预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
优选地,所述处理子模块用于:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行扩展,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
优选地,所述第一数值为至少两个,所述处理子模块用于:
当所需码长的LDPC码校验矩阵的码长位于相邻的两个预设LDPC码校验矩阵的码长之间时,从所述相邻的两个预设LDPC码校验矩阵中选取出与所需码长的LDPC码校验矩阵的码长最接近的预设LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长大于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长小于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
本发明还提供一种通信设备,包括上述LDPC编码装置。
本发明的上述技术方案的有益效果如下:
在使用LCPD码编码时,只需要存储第一数值个预设LDPC码校验矩阵,根据该第一数值个预设LDPC码校验矩阵,就可以生成任意可用码长的LDPC码校验矩阵,可提供灵活的码长颗粒度,且新生成的LDPC码校验矩阵不需要存储,从而极大地降低了编码装置的存储量,性能优异,易于标准化,可完全满足5G新空口场景的需求。
附图说明
图1为本发明实施例一的LDPC编码方法的流程示意图;
图2为本发明实施例二的LDPC编码方法的流程示意图;
图3为本发明实施例三的LDPC编码方法的流程示意图;
图4为本发明实施例四的LDPC编码方法的流程示意图;
图5为本发明实施例五的LDPC编码方法的流程示意图;
图6为本发明实施例六的LDPC编码方法的流程示意图;
图7为本发明实施例七的LDPC编码装置的结构框图;
图8为本发明实施例八的基站的结构框图;
图9为本发明实施例八的终端的结构框图;
图10和图11为本发明实施例的LDPC编码方法的性能示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参考图1,图1为本发明实施例一的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤101:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
所述第一数值可以为1,也可以大于1。
步骤102:根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
步骤103:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
本发明实施例中,在使用LCPD码编码时,只需要存储第一数值个预设LDPC码校验矩阵,根据该第一数值个预设LDPC码校验矩阵,就可以生成任意可用码长的LDPC码校验矩阵,可提供灵活的码长颗粒度,且新生成的LDPC码校验矩阵不需要存储,从而极大地降低了编码装置的存储量,性能优异,易于标准化,可完全满足5G新空口场景的需求。
优选地,所述根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵的步骤包括:
步骤1021:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤1022:基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵。
从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵的选取准则可以是:选取与所需码长的LDPC码校验矩阵的码长最接近的预设LDPC码校验矩阵。
当然,也不排除采用其他方式选取,例如随机选取一预设LDPC码校验矩阵。
本发明实施例中,所述所需码长的LDPC码校验矩阵基于所述选取的预设LDPC码校验矩阵的基矩阵和子循环矩阵而生成。
更具体的,生成的所需码长的LDPC码校验矩阵是所述选取的预设LDPC码校验矩阵的基矩阵和子循环矩阵的函数。
其中,所述所需码长的LDPC码校验矩阵采用的基矩阵可以与所述选取的预设LDPC码校验矩阵采用的基矩阵相同;
或者,所述所需码长的LDPC码校验矩阵采用的基矩阵也可以是所述选取的预设LDPC码校验矩阵采用的基矩阵的子集;即,所需码长的LDPC码校验矩阵的基矩阵中非零元素(1)的位置是选取的预设LDPC码校验矩阵的基矩阵中非零元素位置的子集。
或者,所述所需码长的LDPC码校验矩阵采用的基矩阵也可以是由所述选取的预设LDPC码校验矩阵采用的基矩阵扩展而得到。
本发明实施例中,当预设LDPC码校验矩阵的个数第一数值大于1时,所述第一数值个预设LDPC码校验矩阵可以分为多组。其中,所述预设LDPC码校验矩阵可以依据不同码率不同分组,属于同一组的预设LDPC码校验矩阵的码率相同;或者属于同一组的预设LDPC码校验矩阵由同一矩阵扩展而得到。
考虑到性能与复杂度的折中,较佳的,可以仅设置一种码率的预设几种码长的LDPC码校验矩阵,所预设的几种码长较佳的具有较大的颗粒区分度,以能够覆盖典型应用场景。
实施例二
请参考图2,图2为本发明实施例二的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤201:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
步骤202:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤203:对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵。
即,所需码长的LDPC码校验矩阵的基矩阵中每个非零元素(1)所对应的子循环矩阵由选取的预设LDPC码校验矩阵的基矩阵中相应位置的非零元素的子循环矩阵采用缩短的方法得到。
其中,得到的所需码长的LDPC码校验矩阵的码长小于所述选取的预设LDPC码校验矩阵的码长。
步骤204:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
本发明实施例中,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵,实现方式简单。
本发明实施例中,可以采用多种缩短方法,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行缩短,从而得到所需码长的LDPC码校验矩阵,下面举例进行说明。
实施例三
请参考图3,图3为本发明实施例三的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤301:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
步骤302:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤303:获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
步骤304:根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行缩短,生成所需码长的LDPC码校验矩阵的子循环矩阵;
步骤305:根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
步骤306:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
本发明实施例中,利用将预设LDPC码校验矩阵的子循环矩阵(CM)缩短的方法得到具有更短码长的LDPC码校验矩阵,性能优异,方法简单,只需要存储预设LDPC码校验矩阵,非常有利于标准化。
上述实施例中,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重可以等于1,也可以大于1。
上述缩短方法的一简单例子可以是:选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,可以根据预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的循环移位标号,确定所需码长的LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的循环移位标号。
具体的,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j可以通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
上述实施例的具体执行方法可以包括以下步骤:
步骤3051:对选取的预设LDPC码校验矩阵的基矩阵进行逐行搜索,即从第一行逐行搜索至最后一行;
步骤3052:对于选取的预设LDPC码校验矩阵的基矩阵的第r行的每个非零元素,按照以下方法,构造所需码长的LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
本发明实施例中,利用预设LDPC码校验矩阵构造所需码长的LDPC码校验矩阵时,不排除额外附加少量辅助信息,例如,上述offset指示信息(如约定offset为固定值,则不需要指示)。
上面描述仅是缩短方法的一个简单例子,当然,本发明不排除采用其它缩短方法。举例来说,上述方法中预设LDPC码校验矩阵与所需码长的LDPC码校验矩阵采用了相同的基矩阵,在本发明的其他一些实施例中,也可以根据性能需求如girth最大化准则,仅缩短LDPC码校验矩阵的基矩阵中的部分非零元素。
上面的实施例仅描述了预设LDPC码校验矩阵对应的子循环矩阵列重为1的情形,对于列重大于1的情形,上述缩短方法同样适用,例如可将上述的i修改为z×z子循环矩阵第一行中第一个1所处的列数,按照上述方法同样处理可以得到t×t的子循环矩阵。当然并不排除其他方法。
在本发明的一优选实施例中,当选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j可以通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。下面以802.11n所构造的LDPC为例,说明上述方法的可行性与有效性。802.11n码率为1/2,N=1944、1296、648三种码长的(1944,972)、(1296,648)、(648,324)LDPC码对应的校验矩阵视为预设LDPC码校验矩阵,offset取值为0,预设LDPC码校验矩阵与所需码长的LDPC码校验矩阵采用相同的基矩阵。根据上述方法构造的LDPC码性能如图10和图11所示。
请参考图10,缩短(shortende)(1296,648)LDPC码由预设的802.11n(1944,972)缩短得到,子循环矩阵的大小由81x81缩短得到54x54。请参考图11,缩短(648,324)LDPC由预设的802.11n(1296,648)缩短得到,子循环矩阵的大小由54x54缩短得到27x27。
本发明实施例中,尽管没有对offset及其基矩阵进行优化,即取最简单的offset=0,所需码长的LDPC码校验矩阵与预设LDPC码校验矩阵具有相同的基矩阵,且子循环矩阵缩短的尺度达到50%,缩短的LDPC码与802.11n精心细设计的LDPC码相比在BLER=10-3以上性能几乎一样,在高信噪比时才有略有损失,由于5G的EMBB场景采用HARQ(混合自动重传请求,Hybrid Automatic Repeat reQuest)重传机制,需要关心的码字性能的设计目标是BLER=10-1,此时缩短的LDPC码与精心优化的LDPC码性能几乎一致,因此本方案提供的缩短码长的方法,在保证缩短矩阵不需要存储的前提下,还提供了优异的BLER(块差错率)性能,很低的缩短校验矩阵生成复杂度。
实施例四
请参考图4,图4为本发明实施例四的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤401:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
步骤402:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤403:对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
即,所需码长的LDPC码校验矩阵的基矩阵中每个非零元素(1)所对应的子循环矩阵由选取的预设LDPC码校验矩阵的基矩阵中相应位置的非零元素的子循环矩阵采用扩展的方法得到。
所谓扩展是指将选取的预设LDPC码校验矩阵的子循环矩阵扩展为更大的子循环矩阵,从而得到所需码长的LDPC码校验矩阵。
步骤404:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
本发明实施例中,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵,实现方式简单。
实施例五
请参考图5,图5为本发明实施例五的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤501:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
步骤502:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤503:获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
步骤504:根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行扩展,生成所需码长的LDPC码校验矩阵的子循环矩阵;
步骤505:根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
步骤506:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
本发明实施例采用的扩展方法,实现方式简单,成本较低。
上述实施例中,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重可以等于1,也可以大于1。
上述扩展方法的一简单例子可以是:选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,可以根据预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的循环移位标号,确定所需码长的LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的循环移位标号。
具体的,所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
上述实施例的具体执行方法可以包括以下步骤:
步骤5051:对选取的预设LDPC码校验矩阵的基矩阵进行逐行搜索,即从第一行逐行搜索至最后一行;
步骤5052:对于选取的预设LDPC码校验矩阵的基矩阵的第r行的每个非零元素,按照以下方法,构造所需码长的LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
本发明实施例中,利用预设LDPC码校验矩阵构造所需码长的LDPC码校验矩阵时,不排除额外附加少量辅助信息,例如,上述offset指示信息(如约定offset为固定值,则不需要指示)。
上面描述仅是扩展方法的一个简单例子,当然,本发明不排除采用其它扩展方法。举例来说,上述方法中预设LDPC码校验矩阵与所需码长的LDPC码校验矩阵采用了相同的基矩阵,在本发明的其他一些实施例中,也可以根据性能需求如girth最大化准则,仅扩展LDPC码校验矩阵的基矩阵中的部分非零元素,或者优化offset值。
上面的实施例仅描述了预设LDPC码校验矩阵对应的子循环矩阵列重为1的情形,对于列重大于1的情形,上述扩展方法同样适用,例如可将上述的i修改为z×z子循环矩阵第一行中第一个1所处的列数,按照上述方法同样处理可以得到t×t的子循环矩阵。当然并不排除其他方法。
在本发明的一优选实施例中,当选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中某个非零元素的位置j可以通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的维数为z×z的子循环矩阵的第一行某个非零元素的位置为i,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
由上述实施例可以看到,利用预设LDPC码校验矩阵的缩短或者扩展都可以构造得到码长可变的不需要额外存储有利于标准化的LDPC码,但一个明显的事实是预设LDPC码校验矩阵的数目是非常有限的,要获得非常灵活的码长有时需要缩短或者扩展很大的尺度,以缩短为例,当子循环矩阵缩短的尺度越小得到新码长的码字,其性能好的概率就越大,所以为了避免缩短过多的比特数,可以同时运用采用缩短与扩展方法。下面将详细说明。
实施例六
请参考图6,图6为本发明实施例六的LDPC编码方法的流程示意图,所述LDPC编码方法包括以下步骤:
步骤601:获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;所述第一数值为至少两个;
所述第一数值可以为1,也可以大于1。
步骤602:从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
步骤603:将所需码长的LDPC码校验矩阵的码长与所述预设LDPC码校验矩阵的码长进行比较;
步骤604:当所需码长的LDPC码校验矩阵的码长位于相邻的两个预设LDPC码校验矩阵的码长之间时,从所述相邻的两个预设LDPC码校验矩阵中选取出与所需码长的LDPC码校验矩阵的码长最接近的预设LDPC码校验矩阵;
步骤605:当选取预设LDPC码校验矩阵的码长大于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵;
步骤606:当选取预设LDPC码校验矩阵的码长小于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
步骤607:基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
还以802.11n为例,如所需码长的LDPC码码长落在1944与1296之间时,其数值靠近1944就采用校验矩阵缩短的方法,靠近1296就采用校验矩阵扩展的方法,当然究竟采用扩展还是缩短完全取决于最终构造的码字性能。
上述实施例中的适用于LDPC编码方法尤其适用于5G new radio。
实施例七
与上述LDPC编码方法同一发明构思,请参考图7,本发明实施例七还提供一种LDPC编码装置,包括:
获取模块71,用于获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
生成模块72,用于根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
编码模块73,用于基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
优选地,所述生成模块72包括:
选取子模块,用于从所述第一数值个不同码长的预设LDPC码校验矩阵中,选取一预设LDPC码校验矩阵;
处理子模块,用于基于选取的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵。
优选地,所述所需码长的LDPC码校验矩阵基于所述选取的预设LDPC码校验矩阵的基矩阵和子循环矩阵而生成。
优选地,
所述所需码长的LDPC码校验矩阵采用的基矩阵与所述选取的预设LDPC码校验矩阵采用的基矩阵相同;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是所述选取的预设LDPC码校验矩阵采用的基矩阵的子集;或者
所述所需码长的LDPC码校验矩阵采用的基矩阵是由所述选取的预设LDPC码校验矩阵采用的基矩阵扩展而得到。
在一实施例中,所述处理子模块用于对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵。
在一缩短方法对应的具体实施例中,所述处理子模块用于:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行缩短,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
在一缩短方法对应的具体实施例中,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
在另一实施例中,所述处理子模块用于对预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
在一扩展方法对应的具体实施例中,所述处理子模块用于:
获取选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的第一行中非零元素所在的位置;
根据所述子循环矩阵的第一行中非零元素所在的位置以及所需码长的LDPC码校验矩阵的子循环矩阵的维数,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵进行扩展,生成所需码长的LDPC码校验矩阵的子循环矩阵;
根据所需码长的LDPC码校验矩阵的所有子循环矩阵,生成所需码长的LDPC码校验矩阵。
优选地,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重大于或等于1。
在一缩短方法对应的具体实施例中,选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵的列重等于1时,所述所需码长的LDPC码校验矩阵的子循环矩阵的第一行中非零元素的位置j通过下述方法得到:
j=i;或者
其中,选取的预设LDPC码校验矩阵的基矩阵的非零元素对应的子循环矩阵为Pi,Pi的维数为z×z,0≤i<z,所需码长的LDPC码校验矩阵的子循环矩阵为P1 j,P1 j的维数为t×t,0≤j<t<z,mod为求余函数,N为自然数,i、j、t、z均为整数,offset为预设的一个非负的整数偏置值。
在另一实施例中,所述第一数值为至少两个,所述处理子模块用于:
当所需码长的LDPC码校验矩阵的码长位于相邻的两个预设LDPC码校验矩阵的码长之间时,从所述相邻的两个预设LDPC码校验矩阵中选取出与所需码长的LDPC码校验矩阵的码长最接近的预设LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长大于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用缩短的方法,得到所需码长的LDPC码校验矩阵;
当选取预设LDPC码校验矩阵的码长小于所需码长的LDPC码校验矩阵的码长时,对选取的预设LDPC码校验矩阵的基矩阵的非零元素的子循环矩阵采用扩展的方法,得到所需码长的LDPC码校验矩阵。
本发明还提供一种通信设备,包括上述任一实施例中的LDPC编码装置。
请参考图8,本发明的实施例八还提供一种基站,包括:处理器81,存储器82,总线接口83以及收发机84。
其中,处理器81通过总线接口83余存储器82连接,用于读取存储器82中的程序,执行下列过程:
获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
收发机84,通过总线接口与处理器81连接,用于在处理器81的控制下接收和发送数据。
其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器81代表的一个或多个处理器和存储器82代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机84可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器81负责管理总线架构和通常的处理,存储器82可以存储处理器81在执行操作时所使用的数据。
处理器81负责管理总线架构和通常的处理,存储器82可以存储处理器71在执行操作时所使用的数据。
请参考图9,本发明的实施例九还提供一种终端,包括:处理器91,存储器92,总线接口93、收发机94以及用户接口95。
其中,处理器91通过总线接口93与存储器92连接,用于读取存储器92中的程序,执行下列过程:
获取第一数值个不同码长的预设LDPC码校验矩阵,所述第一数值个不同码长的预设LDPC码校验矩阵属于包含全部可用码长的LDPC码校验矩阵的集合,所述集合中LDPC码校验矩阵的个数为第二数值,第一数值和第二数值均为正整数,所述第一数值小于第二数值;
根据所述第一数值个不同码长的预设LDPC码校验矩阵,生成所需码长的LDPC码校验矩阵,所述所需码长的LDPC码校验矩阵为所述集合中除所述预设LDPC码校验矩阵之外的任一LDPC码校验矩阵;
基于所述所需码长的LDPC码校验矩阵,对信息进行编码。
收发机94,通过总线接口与处理器91连接,用于在处理器91的控制下接收和发送数据。
其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器91代表的一个或多个处理器和存储器92代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机94可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口95还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器91负责管理总线架构和通常的处理,存储器92可以存储处理器91在执行操作时所使用的数据。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。