5.4 Rate matching
38.2123GPPMultiplexing and channel codingNRRelease 17TS
5.4.1 Rate matching for Polar code
The rate matching for Polar code is defined per coded block and consists of sub-block interleaving, bit collection, and bit interleaving. The input bit sequence to rate matching is . The output bit sequence after rate matching is denoted as .
5.4.1.1 Sub-block interleaving
The bits input to the sub-block interleaver are the coded bits . The coded bits are divided into 32 sub-blocks. The bits output from the sub-block interleaver are denoted as , generated as follows:
for to
;
;
;
end for
where the sub-block interleaver pattern is given by Table 5.4.1.1-1.
Table 5.4.1.1-1: Sub-block interleaver pattern
0 |
0 |
4 |
3 |
8 |
8 |
12 |
10 |
16 |
12 |
20 |
14 |
24 |
24 |
28 |
27 |
1 |
1 |
5 |
5 |
9 |
16 |
13 |
18 |
17 |
20 |
21 |
22 |
25 |
25 |
29 |
29 |
2 |
2 |
6 |
6 |
10 |
9 |
14 |
11 |
18 |
13 |
22 |
15 |
26 |
26 |
30 |
30 |
3 |
4 |
7 |
7 |
11 |
17 |
15 |
19 |
19 |
21 |
23 |
23 |
27 |
28 |
31 |
31 |
The sets of bit indices and are determined as follows, where , , and are defined in Clause 5.3.1
if
if — puncturing
for to
;
end for
if
;
else
;
end if
else — shortening
for to
;
end for
end if
end if
;
comprises most reliable bit indices in ;
;
5.4.1.2 Bit selection
The bit sequence after the sub-block interleaver from Clause 5.4.1.1 is written into a circular buffer of length .
Denoting by the rate matching output sequence length, the bit selection output bit sequence , , is generated as follows:
if — repetition
for to
;
end for
else
if — puncturing
for to
;
end for
else — shortening
for to
;
end for
end if
end if
5.4.1.3 Interleaving of coded bits
The bit sequence is interleaved into bit sequence , as follows:
If
Denote as the smallest integer such that ;
;
for to
for to
if
;
else
;
end if
;
end for
end for
;
for to
for to
if
;
end if
end for
end for
else
for to
;
end for
end if
The value of is no larger than 8192.
5.4.2 Rate matching for LDPC code
The rate matching for LDPC code is defined per coded block and consists of bit selection and bit interleaving. The input bit sequence to rate matching is . The output bit sequence after rate matching is denoted as .
5.4.2.1 Bit selection
The bit sequence after encoding from Clause 5.3.2 is written into a circular buffer of length for the -th coded block, where is defined in Clause 5.3.2.
For the -th code block, let if and otherwise, where, , is determined according to Clause 6.1.4.2 in [6, TS 38.214] for UL-SCH and Clause 5.1.3.2 in [6, TS 38.214] for DL-SCH/PCH, assuming the following:
For one TB for DL-SCH with PDSCH scheduled by DCI format 4_0/4_1/4_2,
– if the PDSCH is scheduled by DCI format 4_1/4_2,
– maximum number of layers is given by X, where
– if the higher layer parameter maxMIMO-Layers-Multicast of PDSCH-Config-Multicast is configured, X is given by that parameter;
– otherwise, X equals to 1;
– if the higher layer parameter mcs-Table given by a PDSCH-Config-Multicast for at least one common frequency resource (CFR) is set to ‘qam256’, maximum modulation order is assumed for DL-SCH; otherwise a maximum modulation order is assumed for DL-SCH;
– if the PDSCH is scheduled by DCI format 4_0,
– maximum number of layers is 1;
– if the higher layer parameter mcs-Table given by a PDSCH-Config-MCCH is set to ‘qam256’, maximum modulation order is assumed for DL-SCH; otherwise a maximum modulation order is assumed for DL-SCH;
– if the higher layer parameter mcs-Table given by a PDSCH-Config-MTCH is set to ‘qam256’, maximum modulation order is assumed for DL-SCH; otherwise a maximum modulation order is assumed for DL-SCH;
– is given by Table 5.4.2.1-1, where the value of for DL-SCH is determined according to the size of the CFR if only one CFR is configured to the UE;
– maximum coding rate of 948/1024;
– ;
– is the number of code blocks of the transport block determined according to Clause 5.2.2.
For one TB for UL-SCH, or for one TB for DL-SCH/PCH except for DL-SCH with PDSCH scheduled by DCI format 4_0/4_1/4_2,
– maximum number of layers for one TB for UL-SCH is given by X, where
– if the higher layer parameter maxMIMO-Layers of PUSCH-ServingCellConfig of the serving cell is configured, X is given by that parameter
– elseif the higher layer parameter maxRank of pusch-Config of the serving cell is configured, X is given by the maximum value of maxRank across all BWPs of the serving cell
– otherwise, X is given by the maximum number of layers for PUSCH supported by the UE for the serving cell
– maximum number of layers for one TB for DL-SCH/PCH is given by the minimum of X and 4, where
– if the higher layer parameter maxMIMO-Layers of PDSCH-ServingCellConfig of the serving cell is configured, X is given by that parameter
– otherwise, X is given by the maximum number of layers for PDSCH supported by the UE for the serving cell
– if the higher layer parameter mcs-Table-r17 or mcs-TableDCI-1-2-r17 given by a pdsch-Config for at least one DL BWP of the serving cell is set to ‘qam1024’, maximum modulation order is assumed for DL-SCH, else if the higher layer parameter mcs-Table or mcs-TableDCI-1-2 given by a pdsch-Config for at least one DL BWP of the serving cell is set to ‘qam256’, maximum modulation order is assumed for DL-SCH; otherwise a maximum modulation order is assumed for DL-SCH;
– if the higher layer parameter mcs-Table or mcs-TableTransformPrecoder or mcs-TableDCI-0-2 or mcs-TableTransformPrecoderDCI-0-2 given by a pusch-Config or the higher layer parameter mcs-Table or mcs-TableTransformPrecoder given by configuredGrantConfig for at least one UL BWP of the serving cell is set to ‘qam256’, maximum modulation order is assumed for UL-SCH; otherwise a maximum modulation order is assumed for UL-SCH
– maximum coding rate of 948/1024;
– is given by Table 5.4.2.1-1, where the value of for DL-SCH is determined according to the initial downlink bandwidth part if there is no other downlink bandwidth part configured to the UE;
– ;
– is the number of code blocks of the transport block determined according to Clause 5.2.2.
Table 5.4.2.1-1: Value of
Maximum number of PRBs across all configured DL BWPs and UL BWPs of a carrier for DL-SCH and UL-SCH, respectively, or Maximum number of PRBs across all CFRs of a carrier for DL-SCH with PDSCH scheduled by DCI format 4_0/4_1/4_2 |
|
Less than 33 |
32 |
33 to 66 |
66 |
67 to 107 |
107 |
108 to 135 |
135 |
136 to 162 |
162 |
163 to 217 |
217 |
Larger than 217 |
273 |
Denoting by the rate matching output sequence length for the -th coded block, where the value of is determined as follows:
Set
for to
if the -th coded block is not scheduled for transmission as indicated by CBGTI according to Clause 5.1.7.2 for DL-SCH and 6.1.5.2 for UL-SCH in [6, TS 38.214]
;
else
if
;
else
;
end if
;
end if
end for
where
– is the number of transmission layers that the transport block is mapped onto;
– is the modulation order;
– is the total number of coded bits available for transmission of the transport block;
– if CBGTI is not present in the DCI scheduling the transport block and is the number of scheduled code blocks of the transport block if CBGTI is present in the DCI scheduling the transport block.
Denote by the redundancy version number for this transmission ( = 0, 1, 2 or 3), the rate matching output bit sequence , , is generated as follows, where is given by Table 5.4.2.1-2 according to the value of and LDPC base graph:
;
;
while
if
;
;
end if
;
end while
Table 5.4.2.1-2: Starting position of different redundancy versions,
LDPC base graph 1 |
LDPC base graph 2 |
|
0 |
||
1 |
||
2 |
||
3 |
5.4.2.2 Bit interleaving
The bit sequence is interleaved to bit sequence , according to the following, where the value of is the modulation order.
for to
for to
;
end for
end for
5.4.3 Rate matching for channel coding of small block lengths
The input bit sequence to rate matching is . The output bit sequence after rate matching is denoted as , where is the rate matching output sequence length. The bit sequence is obtained by the following:
for to
;
end for