.
βββ 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 variableVERBOSEfrom this file.table_probability.pyβ test that demonstrates the error probability table witht = (d-1)/2andt + 1errors 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). Inmainthere is a sample how to execute it with multiprocessing: one process on each Eb/N0 value performs 10,000 simulations. FlagPRE_DEFINEDmeans to use precomputed result. FlagPLOTis 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.