cai_cyclic 0.1.2

Encoding and decoding of (17, 9, 5) cyclic code
Documentation
  • Coverage
  • 100%
    3 out of 3 items documented0 out of 2 items with examples
  • Size
  • Source code size: 11.93 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.24 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 12s Average build duration of successful builds.
  • all releases: 12s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • kchmck/cai_cyclic.rs
    2 1 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • kchmck

Encoding and decoding of the base (17, 9, 5) cyclic code used by DMR and P25.

The generator polynomial for the base code is given by

g(x) = x8 + x5 + x4 + x3 + 1

It can detect up to 4 errors or correct up to 2 errors.

DMR "quadrature residue" code

The DMR air interface extends this code to (18, 9, 6) with an extra parity check bit in the LSB, then shortens it to (16, 7, 6) by deleting two MSB data bits. The extra parity bit is computed over the data bits using the mask 1010111.

P25 "shortened cyclic" code

The P25 air interface shortens this code to (16, 8, 5) by deleting the MSB data bit.

References

The decoding algorithm is based on the algorithm described in Lin and Costello's Error Control Coding (1983) and Roman's Coding and Information Theory (1992), p345.