Sub Block Interleaver for Polar Coder
The sub-block interleaver divides the encoded bits into sub-blocks of size 32 and these sub-blocks are interleaved before bit-selection.
Note
The sub-block interleaver divides the input blocks into sub-blocks of size 32 each.
Sub-block Interleaver
The details about the input-output interface of the sub-block interleaver is provided in following module:
- class toolkit5G.Ratematcher.PolarCoder.Subblock_Interleaver[source]
This module implements the sub block interleaver used by rate matcher of Polar codec detailed in section 5.4.1.1 of [3GPPTS38212Polar].
- Parameters:
None
- Input:
input_bits ([…,N], np.number) – Input bits to be interleaved.
Warning
The number of input bits must be a multiple of 32!
- Output:
[…,N], np.number – Interleaver bits.
- Attributes:
interleavePattern ([N, 1], int where N is the number of bits passed as inputs for interleaving.) – Defines the Interleaving pattern as defined in Table 5.4.1.1-1 of [3GPPTS38212Polar].
- Raises:
ValueError – [Error-Subblock_Interleaver]: ‘input_bits’ should be NumPy array of numbers!
AssertionError – [Error-Subblock_Interleaver]: ‘If length of
u
is not a multiple of 32.
Sub-block De-interleaver
The details about the input-output interface of the sub-block de-interleaver used at the decoder is provided in following module:
- class toolkit5G.Ratematcher.PolarCoder.Subblock_DeInterleaver[source]
This module implements the opposite of sub block interleaver to undo its effect at receiver. The details of sub block interleaver is provided in section 5.4.1.1 of [3GPPTS38212Polar].
- Parameters:
None
- Input:
input_bits ([…,N], np.number) – Input bits to be interleaved.
Warning
The number of input bits must be a multiple of 32!
- Output:
[…,N], np.number – Interleaver bits.
- Attributes:
interleavePattern ([N, 1], int where N is the number of bits passed as inputs for interleaving.) – Defines the De-interleaving pattern. It is complementary to permutation defined in Table 5.4.1.1-1 of [3GPPTS38212Polar].
- Raises:
ValueError – [Error-Subblock_DeInterleaver]: ‘input_bits’ should be NumPy array of numbers!
AssertionError – [Error-Subblock_DeInterleaver]: ‘If length of
u
is not a multiple of 32.