## 4.2.2 Transport block concatenation and code block segmentation

25.2223GPPMultiplexing and channel coding (TDD)Release 17TS

All transport blocks in a TTI are serially concatenated. If the number of bits in a TTI is larger than the maximum size of a code block, then code block segmentation is performed after the concatenation of the transport blocks. The maximum size of the code blocks depends on whether convolutional, turbo coding or no coding is used for the TrCH.

#### 4.2.2.1 Concatenation of transport blocks

The bits input to the transport block concatenation are denoted by where *i* is the TrCH number, *m* is the transport block number, and *B _{i}* is the number of bits in each block (including CRC). The number of transport blocks on TrCH

*i*is denoted by

*M*. The bits after concatenation are denoted by , where

_{i}*i*is the TrCH number and

*X*. They are defined by the following relations:

_{i}=M_{i}B_{i} *k = *1, 2*, …, B _{i}*

*k = B _{i}*

*+*1

*, B*

_{i}*+*2

*, …,*2

*B*

_{i} *k = *2*B _{i}*

*+*1, 2

*B*

_{i}*+*2

*, …,*3

*B*

_{i} *k = *(*M _{i}* – 1)

*B*

_{i}*+*1

*,*(

*M*– 1)

_{i}*B*

_{i}*+*2

*, …, M*

_{i}B_{i}#### 4.2.2.2 Code block segmentation

Segmentation of the bit sequence from transport block concatenation is performed if *X _{i}>Z*. The code blocks after segmentation are of the same size. The number of code blocks on TrCH

*i*is denoted by

*C*. If the number of bits input to the segmentation,

_{i}*X*, is not a multiple of

_{i}*C*, filler bits are added to the beginning of the first block. If turbo coding is selected and

_{i}*X*< 40, filler bits are added to the beginning of the code block. The filler bits are transmitted and they are always set to 0. The maximum code block sizes are:

_{i}– convolutional coding: *Z *= 504;

– turbo coding: *Z* = 5114;

– no channel coding: *Z = unlimited*.

The bits output from code block segmentation, for *C _{i}* 0, are denoted by , where

*i*is the TrCH number,

*r*is the code block number, and

*K*is the number of bits per code block.

_{i}Number of code blocks:

Number of bits in each code block (applicable for *C _{i}* 0 only):

if *X _{i}* < 40 and Turbo coding is used, then

*K _{i}* = 40

else

*K _{i} = X_{i} / C_{i}*

end if

Number of filler bits: *Y _{i} = C_{i}K_{i} – X_{i}*

for *k =* 1 to *Y _{i }*— Insertion of filler bits

end for

for *k = Y _{i}+*1 to

*K*

_{i}end for

*r =* 2 — Segmentation

while *r* *C _{i}*

for *k =* 1 to *K _{i}*

end for

r = r+1

end while