Expand description
§comnum-fec — channel coding
Codes take information bits and return coded bits; decoders take log-likelihood
ratios (positive for a 0, the convention of the whole library) and return the
decided information bits. Every code implements block::BlockCode and the verb
traits Encode and Decode;
the LDPC, convolutional, turbo and NR LDPC codes (punctured or not) also give the a
posteriori LLRs of their information bits (block::SoftDecode).
| Module | Content |
|---|---|
crc | cyclic redundancy checks of 5G NR (CRC24A/B/C, CRC16, CRC11, CRC6) |
scrambling | the Gold scrambler of 3GPP TS 38.211 (its sequences are comnum_math::sequences) |
interleaving | block, random and QPP interleavers |
conv | convolutional codes: trellis, Viterbi (soft and hard), BCJR (log-MAP, max-log) |
turbo | turbo codes (two $(13, 15)_{8}$ recursive codes, LTE) with iterative decoding |
ldpc | LDPC codes: progressive edge growth, repeat-accumulate codes, alist files, belief propagation, (normalised and offset) min-sum, layered scheduling |
ccdm | constant-composition distribution matching (uniform bits to a shaped symbol sequence) |
bch | shortened binary BCH codes (the outer code of DVB-S2) with Berlekamp–Massey decoding, over the fields of comnum_math::gf2m |
rs | Reed–Solomon codes: systematic encoding, errors-and-erasures decoding, shortening, closed-form error rates |
puncture | puncturing of the convolutional and turbo codes (802.11, DVB-S patterns), the bit selection of a rate matching, free distance of punctured codes |
polar | polar codes: Gaussian-approximation construction, SC and CRC-aided SC-list decoding |
ccsds | the codes of CCSDS 131.0-B (TM synchronization and channel coding): Reed–Solomon in the dual basis with interleaving and virtual fill, the (8160, 7136) and AR4JA LDPC codes, the 16-state turbo codes |
nr | the codes of 5G NR (TS 38.212): the LDPC code of the data channels and the polar code of the control channels, with their rate matching |
bounds | the capacity of the binary-input AWGN channel and the normal approximation of the error probability at finite length |
block | the BlockCode interface and the soft output SoftDecode |
Modules§
- bch
- Binary BCH codes, shortened: the outer code of DVB-S2 (
comnum_systems::dvbs2). - block
- The interface shared by the block codes.
- bounds
- Information-theoretic limits of binary codes on the AWGN channel.
- ccdm
- Constant-composition distribution matching (CCDM): uniform bits to sequences of
symbols of a prescribed distribution, the shaping stage of probabilistic amplitude
shaping (
comnum_systems::pas). - ccsds
- The channel codes of CCSDS 131.0-B-5 (TM Synchronization and Channel Coding): the Reed–Solomon codes in the dual basis with their interleaving and virtual fill, the (8160, 7136) LDPC code, the AR4JA LDPC codes and the turbo codes.
- conv
- Convolutional codes: trellis, Viterbi and BCJR decoders.
- crc
- Cyclic redundancy checks.
- interleaving
- Interleavers: permutations of the coded bits (or of their LLRs).
- ldpc
- Low-density parity-check (LDPC) codes.
- nr
- The channel codes of 5G NR (3GPP TS 38.212): the LDPC code of the data channels
(
NrLdpc) and the polar code of the control and broadcast channels (NrPolar), with their rate matching, from the tables of the standard (tables). - polar
- Polar codes.
- puncture
- Puncturing of the convolutional and turbo codes: rate-compatible patterns, the punctured block codes and the free distance of a punctured code.
- rs
- Reed–Solomon codes over $\mathrm{GF}(2^{m})$: systematic encoding, errors-and-erasures decoding, shortening.
- scrambling
- Scrambling by the length-31 Gold sequence of 3GPP.
- turbo
- Turbo codes: two recursive systematic codes in parallel, decoded iteratively.