LDPC: LDPC simulator

LDPC decoder


The LDPC decoder allows you to simulate the performance of LDPC codes for various channels and various decoding algorithms. The idea is the following: Using a parameter file, you pass parameters such as a description of an LDPC graph, channel parameters, the number of iterations and realizations. The output will be either given on the screen in terms of bit- and block error probability or as a file which contains the number of errors for each realization. The code is organized in a modular form such that it can easily be extended for additional channel types and decoding algorithms.

Source Download

We provide the program as downloadable source code.


You can download and unpack the package. In the main directory, you’ll find a README file with basic examples. The directory \programfiles contains the sourcefiles for the simulator and a postprocessing program (only for UNIX). Examples of parameterfiles, graphs and corresponding output can be found in the directory samplefiles. To compile, go to directory programfiles/simfiles or programfiles/ppfiles (only on UNIX) and type make. You’ll find the program sim (and pp) in the main directory.

First Steps

To get familiar with the program, run some of the examples given in the README file. You’ll also find the explanation of parameters. For more advanced usage of the program, it is convenient to edit the parameter file by scripts. As sample graphs, we use some of the well-known Tanner – and MacKay graphs as well as some of our owns. In order to tranform a graph description from the webpage from MacKay (www.inference.phy.cam.ac.uk/mackay/codes/data.html) to our format, use the program mackay2lth in the directory programfiles/sim. You will also find sample output for random graphs, generated based on a specified degree distribution.