.
βββ README.md
βββ bch.py
βββ finitefield.py
βββ table_probability.py
βββ awgn.py
βββ report
Β Β βββ tasks
βββ reports
This repository contains software implementation of the Bose-Chaudhuri-Hocquenghem (BCH) code systematic encoder with Berlekamp-Massey decoding algorithm over the GF(2α΅).
Program can be run on both Python3 and Python2 without any third-party libraries, only standard ones.
finitefield.py
β implementation of basic operations and basic polynomial operations in GF(2α΅).bch.py
β encoding and decoding. Verbose output can be enabled using global variableVERBOSE
from this file.table_probability.py
β test that demonstrates the error probability table witht = (d-1)/2
andt + 1
errors in received codewords for different BCH-codes. Carried out at 10,000 iterations.awgn.py
β simulation of data transmission over an additive white Gaussian noise channel (AWGN). Inmain
there is a sample how to execute it with multiprocessing: one process on each Eb/N0 value performs 10,000 simulations. FlagPRE_DEFINED
means to use precomputed result. FlagPLOT
is option for showing the result as plot.
It's highly recommended to run huge tests and AWGN simulations with pypy
, but not with common cpython
, for the sake of speed increasing.