Low density parity check codes. Encoder and belief propagation decoder written in C++.
It supports:
-
generating parity check matrix: quasi-cyclic codes, regular array codes, irregular array codes, gallager codes, or codes from alist file from http://www.inference.phy.cam.ac.uk/mackay/codes/data.html.
-
encoding messages (bit-wise or message-wise) by a given parity check matrix.
-
decoding messages by a given parity check matrix using belief propagation. BEC and BSC channels are supported. For BSC, soft-decision decoding and hard-decision decoding are supported.
Although worked, this project still lacks performance optimizations.
The compiler must support C++11.