A Fast Forward Error Correction Toolbox!

AFF3CT is an Open-source software (MIT license) dedicated to the Forward Error Correction (FEC or channel coding) simulations. It is written in C++11 and it supports a large range of codes: from the well-spread Turbo codes to the new Polar codes including the Low-Density Parity-Check (LDPC) codes. A particular emphasis is given to the simulation throughput performance (hundreds of Mb/s on today's CPUs) and the portability of the code.

The source code is freely available and hosted by GitHub.

Source code on GitHub » Download »

Run simulations on your computer. Experiment various configurations.

Choose between Polar, Turbo, LDPC (Low-Density Parity-Check), RSC (Recursive Systematic Convolutional), TPC (Turbo Product Code), BCH (Bose, Ray-Chaudhuri and Hocquenghem), RS (Reed-Solomon), Repetition and RA (Repeat and Accumulate) codes. Play with a set of decoders with different complexities and characteristics. See comparison with other FEC libraries.

AFF3CT run

Compare the decoding performance of BER/FER references. Available online.

Browse a large database of references that have been pre-simulated with AFF3CT. Many channel codes and configurations are available. Load your personal results from files and see how they perform. Start using the BER/FER comparator.

BER/FER comparator preview

Unleash the power of your CPU with fixed-point arithmetic.

AFF3CT takes advantage of the 8-bit and 16-bit built-in fixed-point and saturated arithmetic of your CPU. This enables high performance on General Purpose Processors while it gives you the opportunity to estimate the decoding performance on real hardware. See simulator throughput performances on modern architectures.

FER curves

A Cross-platform and Open-source software.

AFF3CT runs on Linux , macOS  and Windows . It has been optimized for x86 targets (with the SSE and AVX set of instructions) and for ARM devices (with the NEON set of instructions). The code SIMDization rest upon the MIPP wrapper. AFF3CT is Open-source and it is currently developed, the code is written in C++11 style where it intensively uses the template meta-programming technique.