Skip to content
forked from aff3ct/aff3ct

A fast simulator and a library dedicated to the channel coding.

License

Notifications You must be signed in to change notification settings

coffeecupee/aff3ct

This branch is 552 commits behind aff3ct/aff3ct:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1ceddfc · Sep 24, 2019
Jul 9, 2019
Sep 6, 2019
Jul 2, 2019
Sep 11, 2019
Nov 6, 2018
Jul 2, 2019
Sep 24, 2019
Sep 23, 2019
Dec 10, 2018
Aug 28, 2019
Nov 6, 2018
Sep 19, 2019
Feb 14, 2019
Jan 8, 2019
Jul 31, 2019

Repository files navigation

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.

External Links

About

A fast simulator and a library dedicated to the channel coding.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 91.3%
  • Objective-C 4.6%
  • Python 1.7%
  • CMake 1.3%
  • C 0.6%
  • Shell 0.5%