Skip to content
This repository has been archived by the owner on Jan 22, 2021. It is now read-only.
/ BCH-codes Public archive

πŸ’Œ BCH codes encoder with Berlekamp-Massey decoder

Notifications You must be signed in to change notification settings

moehw/BCH-codes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Coding Theory

.
β”œβ”€β”€ 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 variable VERBOSE from this file.
  • table_probability.py – test that demonstrates the error probability table with t = (d-1)/2 and t + 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). In main there is a sample how to execute it with multiprocessing: one process on each Eb/N0 value performs 10,000 simulations. Flag PRE_DEFINED means to use precomputed result. Flag PLOT is option for showing the result as plot.

Recomendations

It's highly recommended to run huge tests and AWGN simulations with pypy, but not with common cpython, for the sake of speed increasing.

About

πŸ’Œ BCH codes encoder with Berlekamp-Massey decoder

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages