# DSP and FEC Library

fec-3.0.1.tar.bz2 (7 August 2007)

This library package provides several forward error correction (FEC)
decoders and accelerated primitives useful in digital signal
processing (DSP). Except for the Reed-Solomon codecs, these functions
take full advantage of the MMX, SSE and SSE2 SIMD instruction sets on
Intel/AMD IA-32 processors and the Altivec/VMX/Velocity Engine SIMD
instruction set on the G4 and G5 PowerPC.

Version 3.0.1, released 7 August 2007, fixes a bug in the CCSDS Reed-Solomon
encoder.

The new Intel Macs are not yet supported. Stay tuned.

The library includes Viterbi decoders for the following convolutional codes:

rate 1/2 k=7
rate 1/2 k=9
rate 1/3 k=9
rate 1/6 k=15 ("Cassini")
plus two Reed-Solomon encoder-decoders:

one optimized for the (255,223) CCSDS standard code
a general purpose encoder/decoder for arbitrary RS codes
and three low-level 16-bit DSP support routines:

signed dot product
peak detection
sum-of-squares (energy) computation
This library is licensed under the "lesser" GNU General Public License.

# Older FEC Software

###
Optimized Reed-Solomon encoder/decoder with x86asm assist for (255,223)
code on Intel CPUs

This is older code without CCSDS support. It is not yet integrated into the fec library above.
###
C++ class library for galois field arithmetic and algebra, with RS encoder/decoder

This is a class library for doing finite field arithmetic and algebra over
GF(256). Two classes are defined: **galois** and
**polynomial**,
implementing galois field elements and polynomials over galois field elements,
respectively. A (255,223) Reed-Solomon encoder and decoder functionally
equivalent (but much slower than) my C version is included to demonstrate
the use of the library. Because of its slow speed, the C++ version is primarily
intended for educational use; it was my first non-trivial C++ program.
(This version doesn't do the CCSDS standard).
###
Convolutional (Fano) decoder, version 1.1

*Last modified: 7 August 2007*