Skip to main content

Crate fec

Crate fec 

Source
Expand description

Forward error correction for SDR, space, and satellite links.

The two codecs each live in their own module. convolutional holds the Viterbi encoder and decoder. reed_solomon holds the Reed-Solomon codec, including the standard CCSDS (255,223) code.

Each module names its types plainly as Encoder and Decoder. The crate root also re-exports them under Conv- and Rs-prefixed aliases, so both codecs can be used in one scope without a name clash. Reach for convolutional::Encoder when you work with one codec, or ConvEncoder and RsEncoder when you want both.

The Reed-Solomon codec and the scalar convolutional codec build on stable Rust. The SIMD convolutional decoder is behind the simd feature, which needs a nightly compiler because it uses portable_simd.

Modules§

convolutional
Convolutional codes with a Viterbi decoder.
reed_solomon
Reed-Solomon error correction over GF(2^8).

Structs§

ConvDecoder
A Viterbi decoder for a convolutional code, with hard- and soft-decision decoding.
ConvEncoder
A convolutional encoder for a given (rate, order, polynomials).
ConvSimdDecodersimd
A SIMD Viterbi decoder for a convolutional code.
RsDecoder
Reed-Solomon decoder over GF(2^8).
RsEncoder
Reed-Solomon encoder over GF(2^8).

Enums§

ConvDecodeError
Error returned by the convolutional decoders.
ConvEncodeError
Error returned by Encoder::encode.
RsDecodeError
Error returned by Decoder::decode / Decoder::decode_with_erasures.
RsEncodeError
Error returned by Encoder::encode.