Channel Interleaver
The channel interleaver is used by rate matcher of Polar codec after bit Selection. Its a triangular interleaver which creates a isosceles triangular buffer and insert data into this buffer row-wise and reads it column wise. This interleaver is include in 5G only for uplink channels to improve the performance of Polar codes for higher order QAM constellations.
Important
Channel Interleaver improves the coding performance of Polar codec for higher order QAM constellation in uplink..
Note
In 5G, Channel Interleaver is used in uplink (PUSCH and PUCCH) only.
Channel Interleaver
The details about the implementation, usage and application interface is provided in following sections.
- class toolkit5G.Ratematcher.PolarCoder.ChannelInterleaver[source]
This module implements the channel interleaver used by rate matcher of Polar codec detailed in section 5.4.1.3 of [3GPPTS38212Polar]. This module is enabled in 5G by setting \(\text{I}_\text{BIL}\) flag.
- Parameters:
None
- Input:
input_bits ([…,E], np.number) – Input bits to be interleaved.
- Output:
[…,E], np.number – Interleaver bits.
- Attributes:
interleavePattern ([E, 1], int where E is the number of bits passed as inputs for interleaving.) – Defines the Interleaving pattern as defined in section 5.4.1.3 of [3GPPTS38212Polar].
- Raises:
ValueError – “[Error-ChannelInterleaver]: ‘input_bits’ should be NumPy array of numbers!”
Channel De-interleaver
The details about the implementation, usage and application interface is provided in following sections.
- class toolkit5G.Ratematcher.PolarCoder.ChannelDeInterleaver[source]
This module implements the channel De-interleaver which is used to undo the effect of channel interleaver defined in section 5.4.1.3 of [3GPPTS38212Polar]. This module is enabled in 5G by setting \(\text{I}_\text{BIL}\) flag.
- Parameters:
None
- Input:
input_bits ([…,E], np.number) – Input bits to be de-interleaved.
- Output:
[…,E], np.number – De-interleaver bits.
- Attributes:
interleavePattern ([E, 1], int where E is the number of bits passed as inputs for de-interleaving.) – Defines the Interleaving pattern as defined in section 5.4.1.3 of [3GPPTS38212Polar].
- Raises:
ValueError – “[Error-ChannelDeInterleaver]: ‘input_bits’ should be NumPy array of numbers!”