3.2.3. CRC parameters¶
The following parameters concern the Cyclic Redundancy Check (CRC) module. CRC bits can be concatenated to the information bits in order to help the decoding process to know if the decoded bit sequence is valid or not.
Note
The CRC is only available for some specific decoders that have been designed to take advantage of the CRC like in [Crc-LST12, Crc-TLLeGal+16].
Warning
Using a CRC does not guarantee to know if the decoded frame is the good one, it can be a false positive. It is important to adapt the size of the CRC with the frame size and the targeted FER.
3.2.3.1. --crc-type, --crc-poly
¶
- Type
text
- Default
NO
- Examples
--crc-type "32-GZIP"
--crc-poly "0x04C11DB7" --crc-size 32
Select the CRC type you want to use among the predefined (or not) polynomials.
Table 3.1 shows a list of the predefined polynomials. If
you want a specific polynomial that it is not available in the table you can
directly put the polynomial in hexadecimal. In this case you have to specify
explicitly the size of the polynomial with the --crc-size parameter.
The type NO
deactivates the CRC.
Type |
Polynomial |
Size |
32-GZIP |
0x04C11DB7 |
32 |
32-CASTAGNOLI |
0x1EDC6F41 |
32 |
32-AIXM |
0x814141AB |
32 |
32-KOOPMAN |
0x32583499 |
32 |
30-CDMA |
0x2030B9C7 |
30 |
24-LTEA |
0x864CFB |
24 |
24-RADIX-64 |
0x864CFB |
24 |
24-FLEXRAY |
0x5D6DCB |
24 |
24-5GA |
0x864CFB |
24 |
24-5GB |
0x800063 |
24 |
24-5GC |
0xB2B117 |
24 |
21-CAN |
0x102899 |
21 |
17-CAN |
0x1685B |
17 |
16-IBM |
0x8005 |
16 |
16-CCITT |
0x1021 |
16 |
16-PROFIBUS |
0x1DCF |
16 |
16-OPENSAFETY-B |
0x755B |
16 |
16-OPENSAFETY-A |
0x5935 |
16 |
16-DNP |
0x3D65 |
16 |
16-T10-DIF |
0x8BB7 |
16 |
16-DECT |
0x0589 |
16 |
16-CDMA2000 |
0xC867 |
16 |
16-ARINC |
0xA02B |
16 |
16-CHAKRAVARTY |
0x2F15 |
16 |
16-5G |
0x1023 |
16 |
15-MPT1327 |
0x6815 |
15 |
15-CAN |
0x4599 |
15 |
14-DARC |
0x0805 |
14 |
13-BBC |
0x1CF5 |
13 |
12-CDMA2000 |
0xF13 |
12 |
12-TELECOM |
0x80F |
12 |
11-FLEXRAY |
0x385 |
11 |
11-5G |
0x621 |
11 |
10-CDMA2000 |
0x3D9 |
10 |
10-ATM |
0x233 |
10 |
8-WCDMA |
0x9B |
8 |
8-SAE-J1850 |
0x1D |
8 |
8-DARC |
0x39 |
8 |
8-DALLAS |
0x31 |
8 |
8-CCITT |
0x07 |
8 |
8-AUTOSAR |
0x2F |
8 |
8-DVB-S2 |
0xD5 |
8 |
7-MVB |
0x65 |
7 |
7-MMC |
0x09 |
7 |
6-CDMA2000-A |
0x27 |
6 |
6-CDMA2000-B |
0x07 |
6 |
6-DARC |
0x19 |
6 |
6-ITU |
0x03 |
6 |
5-ITU |
0x15 |
5 |
5-EPC |
0x09 |
5 |
5-USB |
0x05 |
5 |
4-ITU |
0x3 |
4 |
1-PAR |
0x1 |
1 |
3.2.3.2. --crc-size
¶
- Type
integer
- Range
\(]0 \to \infty[\)
- Examples
--crc-size 8
Size the CRC (divisor size in bits minus one), required if you selected an unknown CRC.
3.2.3.3. --crc-implem
¶
- Type
text
- Allowed values
STD
FAST
INTER
- Default
FAST
- Examples
--crc-implem FAST
Select the CRC implementation you want to use.
Description of the allowed values:
Value |
Description |
---|---|
|
The standard implementation is generic and support any size of CRCs. On the other hand the throughput is limited. |
|
This implementation is much faster than the standard one. This speedup is achieved thanks to the bit packing technique: up to 32 bits can be computed in parallel. This implementation does not support polynomials higher than 32 bits. |
|
The inter-frame implementation should not be used in general cases. It allow to compute the CRC on many frames in parallel that have been reordered. |
3.2.3.4. References¶
- Crc-LST12
B. Li, H. Shen, and D. Tse. An adaptive successive cancellation list decoder for polar codes with cyclic redundancy check. IEEE Communications Letters (COMML), 16(12):2044–2047, December 2012. doi:10.1109/LCOMM.2012.111612.121898.
- Crc-TLLeGal+16
T. Tonnellier, C. Leroux, B. Le Gal, B. Gadat, C. Jégo, and N. Van Wambeke. Lowering the error floor of turbo codes with CRC verification. IEEE Wireless Communications Letters (WCL), 5(4):404–407, August 2016. doi:10.1109/LWC.2016.2571283.