Input Bit Interleaver

The input bit interleaver is used by all the downlink chains using polar codes chain before CRC encoder. It helps in reducing the complexity of the receiver by early termination. This interleaver places the parity bits immediately after the information bits which enables the receiver to sequentially check the parity bits without waiting to buffer the complete information block.

Important

Input Bit Interleaver reduces the complexity, improves false alarm rate and reduces decoding delays of a 5G user equipment.

Note

In 5G, Input Bit Interleaver is used in downlink (PBCH and PDCCH) only.

Input Bit Interleaver

The details about the implementation, usage and application interface is provided in following sections.

class toolkit5G.ChannelCoder.PolarCoder.InputBitInterleaver[source]

This module implements the Input BIt Interleaver defined in section 5.3.1.1. of [3GPPTS38212Polar]. This module is enabled in 5G by setting \(\text{I}_\text{IL}\) flag.

Parameters:

None

Input:

input_bits ([…,K], np.number) – Input bits to be interleaved.

Warning

The number of bits input passed to InputBitInterleaver should be less than 165.

Output:

[…,K], np.number – Interleaver bits.

Attributes:
  • K_IL_max (integer) – Defines the maximum numer of bits that can be interleaved.

  • interleavePattern ([164,], int) – Defines the Interleaving pattern as defined in Table 5.3.1.1-1 of [3GPPTS38212Polar].

Raises:
  • ValueError – “[Error-InputBitInterleaver]: ‘input_bits’ should be NumPy array of numbers!”

  • ValueError – “[Error-InputBitInterleaver]: number of ‘input_bits’ (0<K<165) should be less than 165 amd more than 0!”

Input Bit DeInterleaver

The details about the implementation, usage and application interface is provided in following sections.

class toolkit5G.ChannelCoder.PolarCoder.InputBitDeInterleaver[source]

This module implements the Input Bit De-interleaver which is used to undo the effect of Input Bit Interleaver as defined in section 5.3.1.1. of [3GPPTS38212Polar]. This module is enabled in 5G by setting \(\text{I}_\text{IL}\) flag.

Parameters:

None

Input:

input_bits ([…,K], np.number) – Input bits to be de-interleaved.

Warning

The number of bits input passed to InputBitDeInterleaver should be less than 165.

Output:

[…,K], np.number – De-interleaver bits.

Attributes:
  • K_IL_max (integer) – Defines the maximum numer of bits that can be interleaved.

  • interleavePattern ([164,], int) – Defines the Interleaving pattern as defined in Table 5.3.1.1-1 of [3GPPTS38212Polar].

Raises:
  • ValueError – “[Error-InputBitDeInterleaver]: ‘input_bits’ should be NumPy array of numbers!”

  • ValueError – “[Error-InputBitDeInterleaver]: number of ‘input_bits’ (0<K<165) should be less than 165 amd more than 0!”