3.2.5. Interleaver parameters¶
The interleaving process is frequent in coding schemes. It can be found directly in the code definition (for instance in Turbo or Turbo Product codes) or in larger schemes like for the turbo demodulation in the receiver (see the iterative BER/FER chain in Fig. 3.5).
3.2.5.1. --itl-type
¶
- Type
text
- Allowed values
CCSDS
COL_ROW
DVB-RCS1
DVB-RCS2
GOLDEN
LTE
NO
RANDOM
RAND_COL
ROW_COL
USER
- Default
RANDOM
- Examples
--itl-type RANDOM
Select the interleaver type.
Description of the allowed values:
Value |
Description |
---|---|
|
Disable the interleaving process: the output is the input (Fig. 3.8). |
|
Fill the interleaver by column, read it by row (can be customized with the --itl-read-order parameter) (Fig. 3.9). |
|
Fill the interleaver by row, read it by column (can be customized with the --itl-read-order parameter) (Fig. 3.10). |
|
Generate a random sequence for the entire frame (based on the MT 19937 PRNG [Itl-MN98]) (Fig. 3.11). |
|
Generate multiple random sequences decomposed in independent columns (based on the MT 19937 PRNG [Itl-MN98]) (Fig. 3.12). |
|
Select the interleaver described in [Itl-CLGH99]. |
|
Select the interleaver defined in the CCSDS standard. |
|
Select the interleaver defined in the LTE standard. |
|
Select the interleaver defined in the DVB-RCS1 standard. |
|
Select the interleaver defined in the DVB-RCS2 standard. |
|
Select the interleaver sequence (LUT) from an external file (to use with the --itl-path parameter) (Fig. 3.13). |
Fig. 3.8 Interleaver NO
.¶
Fig. 3.9 Interleaver COL_ROW
.¶
Fig. 3.10 Interleaver ROW_COL
.¶
Fig. 3.11 Interleaver RANDOM
.¶
Fig. 3.12 Interleaver RAND_COL
.¶
Fig. 3.13 Interleaver USER
.¶
3.2.5.2. --itl-cols
¶
- Type
integer
- Default
4
- Examples
--itl-cols 1
Specify the number of columns used for the RAND_COL
, ROW_COL
or
COL_ROW
interleavers.
3.2.5.3. --itl-path
¶
- Type
file
- Rights
read only
- Examples
--itl-path conf/itl/GSM-LDPC_4224.itl
Set the file path to the interleaver LUT (to use with the USER
interleaver).
An ASCII file is expected:
# the number of LUTs contained in the file (only one LUT here)
1
# the frame size 'N'
16
# the LUT definition (here the frame is reversed, 0 becomes 15, 1 becomes 14, etc.)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
If there is more than one interleaved sequence then for each new frame a new LUT is used in the natural order given by the file. Here is an example with two LUTs:
# the number of LUTs contained in this file
2
# the frame size 'N'
16
# first and second LUTs definition
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8
Note
When the number of simulated frames exceeds the number of LUT contained in the files, the LUTs from the beginning of the file are reused and this is repeated until the end of the simulation.
3.2.5.4. --itl-read-order
¶
- Type
text
- Allowed values
BOTTOM_LEFT
BOTTOM_RIGHT
TOP_LEFT
TOP_RIGHT
- Examples
--itl-read-order BOTTOM_LEFT
Change the read order of the COL_ROW
and ROW_COL
interleavers.
The read starts from the given corner of the array to the diagonally opposite
one. The read is made row by row for the COL_ROW
interleaver and column by
column for the ROW_COL
one.
Description of the allowed values (see also the figures just bellow):
Value |
Description |
---|---|
|
Read is down from the top left corner to the bottom right corner. |
|
Read is down from the top right corner to the bottom left corner. |
|
Read is down from the bottom left corner to the top right corner. |
|
Read is down from the bottom right corner to the top left corner. |
Fig. 3.14 depicts the read order options on the
COL_ROW
interleaver.
Fig. 3.14 Interleaver COL_ROW
read orders.¶
Fig. 3.15 depicts the read order options on the
ROW_COL
interleaver.
Fig. 3.15 Interleaver ROW_COL
read orders.¶
3.2.5.5. --itl-seed
¶
- Type
integer
- Default
0
- Examples
--itl-seed 48
Select the seed used to initialize the PRNG.
All the threads/nodes have the same seed (except if a uniform interleaver is used, see the --itl-uni parameter).
Note
This parameter has no effect if the selected interleaver is not randomly generated.
3.2.5.6. --itl-uni
¶
Enable to generate a new LUT for each new frame (i.e. uniform interleaver).
By default, if this parameter is not used, the random interleavers generate the LUT only once for the whole simulation.
Note
This parameter has no effect if the selected interleaver is not randomly generated.
3.2.5.7. References¶
- Itl-CLGH99
S. Crozier, J. Lodge, P. Guinand, and A. Hunt. Performance of turbo codes with relative prime and golden interleaving strategies. In International Mobile Satellite Conference (IMSC), 268–275. 1999. URL: https://www.tib.eu/en/search/id/BLCP%3ACN033129464/Performance-of-Turbo-Codes-with-Relative-Prime/.
- Itl-MN98(1,2)
M. Matsumoto and T. Nishimura. Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation (TOMACS), 8(1):3–30, 1998. doi:10.1145/272991.272995.