4.2.1 CRC attachment
25.2223GPPMultiplexing and channel coding (TDD)Release 17TS
Error detection is provided on transport blocks through a Cyclic Redundancy Check (CRC). The size of the CRC is 24, 16, 12, 8 or 0 bits and it is signalled from higher layers what CRC size that should be used for each transport channel.
4.2.1.1 CRC calculation
The entire transport block is used to calculate the CRC parity bits for each transport block. The parity bits are generated by one of the following cyclic generator polynomials:
gCRC24(D) = D24 + D23 + D6 + D5 + D + 1
gCRC16(D) = D16 + D12 + D5 + 1
gCRC12(D) = D12 + D11 + D3 + D2 + D + 1
gCRC8(D) = D8 + D7 + D4 + D3 + D + 1
Denote the bits in a transport block delivered to layer 1 by , and the parity bits by
. Ai is the size of a transport block of TrCH i, m is the transport block number, and Li is the number of parity bits. Li can take the values 24, 16, 12, 8, or 0 depending on what is signalled from higher layers.
The encoding is performed in a systematic form, which means that in GF(2), the polynomial:
yields a remainder equal to 0 when divided by gCRC24(D), polynomial:
yields a remainder equal to 0 when divided by gCRC16(D), polynomial:
yields a remainder equal to 0 when divided by gCRC12(D) and the polynomial:
yields a remainder equal to 0 when divided by gCRC8(D).
If no transport blocks are input to the CRC calculation (Mi = 0), no CRC attachment shall be done. If transport blocks are input to the CRC calculation (Mi 0) and the size of a transport block is zero (Ai = 0), CRC shall be attached, i.e. all parity bits equal to zero.
4.2.1.2 Relation between input and output of the CRC attachment block
The bits after CRC attachment are denoted by , where Bi = Ai + Li. The relation between aimk and bimk is:
k = 1, 2, 3, …, Ai
k = Ai + 1, Ai + 2, Ai + 3, …, Ai + Li