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