MCPcopy Create free account
hub / github.com/aff3ct/aff3ct

github.com/aff3ct/aff3ct @v4.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.5.0 ↗ · + Follow
4,307 symbols 6,311 edges 835 files 55 documented · 1% updated 16d agov4.5.0 · 2026-06-28★ 59064 open issues

Browse by type

Functions 2,508 Types & classes 1,799
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AFF3CT: A Fast Forward Error Correction Toolbox!

GitLab Pipeline Status SonarQube Code Coverage Documentation Build Status Latest Release DOI License: MIT

AFF3CT is a simulator and a library dedicated to the Forward Error Correction (FEC or channel coding). It is written in C++ 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. AFF3CT can be used as a command line program and it simulates communication chains based on a Monte Carlo method.

Communication Chain

It is very easy to use, for instance, to estimate the BER/FER decoding performances of the (2048,1723) Polar code from 1.0 to 4.0 dB:

aff3ct -C "POLAR" -K 1723 -N 2048 -m 1.0 -M 4.0 -s 1.0

And the output will be:

# ----------------------------------------------------
# ---- A FAST FORWARD ERROR CORRECTION TOOLBOX >> ----
# ----------------------------------------------------
# Parameters :
# [...]
#
# The simulation is running...
# ---------------------||------------------------------------------------------||---------------------
#  Signal Noise Ratio  ||   Bit Error Rate (BER) and Frame Error Rate (FER)    ||  Global throughput
#         (SNR)        ||                                                      ||  and elapsed time
# ---------------------||------------------------------------------------------||---------------------
# ----------|----------||----------|----------|----------|----------|----------||----------|----------
#     Es/N0 |    Eb/N0 ||      FRA |       BE |       FE |      BER |      FER ||  SIM_THR |    ET/RT
#      (dB) |     (dB) ||          |          |          |          |          ||   (Mb/s) | (hhmmss)
# ----------|----------||----------|----------|----------|----------|----------||----------|----------
       0.25 |     1.00 ||      104 |    16425 |      104 | 9.17e-02 | 1.00e+00 ||    4.995 | 00h00'00
       1.25 |     2.00 ||      104 |    12285 |      104 | 6.86e-02 | 1.00e+00 ||   13.678 | 00h00'00
       2.25 |     3.00 ||      147 |     5600 |      102 | 2.21e-02 | 6.94e-01 ||   14.301 | 00h00'00
       3.25 |     4.00 ||     5055 |     2769 |      100 | 3.18e-04 | 1.98e-02 ||   30.382 | 00h00'00
# End of the simulation.

Features

The simulator targets high speed simulations and extensively uses parallel techniques like SIMD, multi-threading and multi-nodes programming models. Below, a list of the features that motivated the creation of the simulator:

  1. reproduce state-of-the-art decoding performances,
  2. explore various channel code configurations, find new trade-offs,
  3. prototype hardware implementation (fixed-point receivers, hardware in the loop tools),
  4. reuse tried and tested modules and add yours,
  5. alternative to MATLAB, if you seek to reduce simulations time.

BER/FER Performances

AFF3CT was first intended to be a simulator but as it developed, the need to reuse sub-parts of the code intensified: the library was born. Below is a list of possible applications for the library:

  1. build custom communication chains that are not possible with the simulator,
  2. facilitate hardware prototyping,
  3. enable various modules to be used in SDR contexts.

If you seek for using AFF3CT as a library, please refer to the dedicated documentation page.

Installation

First make sure to have installed a C++11 compiler, CMake and Git. Then install AFF3CT by running:

git clone --recursive https://github.com/aff3ct/aff3ct.git
mkdir aff3ct/build
cd aff3ct/build
cmake .. -DCMAKE_BUILD_TYPE="Release"
make -j4

Contribute

Support

If you are having issues, please let us know on our issue tracker.

License

The project is licensed under the MIT license.

How to cite AFF3CT

We recommend you to cite the SoftwareX journal article: A. Cassagne et al., “AFF3CT: A Fast Forward Error Correction Toolbox!,“ Elsevier SoftwareX, 2019 [Bibtex Entry].

External Links

Core symbols most depended-on inside this repo

Shape

Method 2,391
Class 1,736
Function 117
Enum 63

Languages

C++97%
Python3%

Modules by API surface

include/Tools/Code/Polar/API/internal_functions/functions_polar_intra_8bit.h60 symbols
include/Tools/Code/Polar/API/internal_functions/functions_polar_intra_16bit.h51 symbols
include/Tools/Code/Polar/API/internal_functions/functions_polar_intra_32bit.h42 symbols
src/Module/Monitor/BFER/Monitor_BFER.cpp38 symbols
include/Tools/Code/Polar/API/internal_functions/functions_polar_inter_8bit_bitpacking.h34 symbols
src/Module/Monitor/MI/Monitor_MI.cpp31 symbols
src/Module/Decoder/LDPC/BP/Horizontal_layered/ONMS/Decoder_LDPC_BP_horizontal_layered_ONMS_inter.cpp29 symbols
src/Module/Decoder/Polar_MK/SCL/Decoder_polar_MK_SCL_naive.cpp26 symbols
src/Module/Monitor/EXIT/Monitor_EXIT.cpp24 symbols
src/Simulation/BFER/Iterative/Simulation_BFER_ite.cpp23 symbols
scripts/gui/aff3ct_gui.py23 symbols
scripts/gui/gui_argument.py22 symbols

For agents

$ claude mcp add aff3ct \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page