- Papers
- Pictorial demonstration of iterative decoding
- Matrices used for those demonstrations
- Database, under construction, containing performance results for many sparse graph codes; also includes some parity check matrices
- Source code for encoding, transmission and sum-product decoding
- Source code for lots of code-related functions: including "code6" for making Gallager codes; "mncN" for sum-product decoding and "fe" for decoding using
variational free energy minimization (not the best decoder; sum-product is better) Before making executables, you may need to create some directories in both . and ./ansi thus:
mkdir binsun5; mkdir bindec; mkdir binsun4; mkdir bini386; cd binsun5; ln -s ../_Makefile Makefile; cd ../binsun4; ln -s ../_Makefile Makefile; cd ../bindec; ln -s ../_Makefile Makefile; cd ../bini386; ln -s ../_Makefile Makefile ; cd ..

- Files with raw results on many codes
- Documentation for perl program `GH.p' which may be used to generate `alist matrices'
- "spec" files for GHG.p

- S Y Chung's profile optimizer and info.
- Igor's Matlab software for creating matrices, making generators, etc. Uses its own format, but can convert from alist.
- Radford Neal's software for low density parity check codes written to test out sparse encoding methods.
- VLSI-DSP group at Univ. of Minnesota: research on error control coding.
- Acknowledgements

- The briefest introduction to Gallager codes is Near Shannon Limit Performance of Low Density Parity Check Codes. (MacKay and Neal)
- Earlier work on Gallager codes and MN codes can be found in Good Error-Correcting Codes based on Very Sparse Matrices. (MacKay and Neal)
- The most comprehensive paper on Gallager codes, giving theory and results Good Error-Correcting Codes based on Very Sparse Matrices.
- More recent work extending these results can be found in Sensitivity of Low Density Parity Check Codes to Decoding Assumptions. (MacKay and Hesketh)
- Comparison of Constructions of Irregular Gallager Codes. (MacKay, Wilson and Davey)
- Further papers by Davey and MacKay:
- Low Density Parity Check Codes over GF(q) - perhaps the best error-correcting codes in the world.
- Monte Carlo simulations of infinite low density parity check codes over GF(q).
- Low Density Parity Check Codes over GF(q) - a conference paper.

Column Heading Meaning ============================================================ 1 ebno Literal value of Eb/No 2 (dB) Eb/No expressed in decibels 3 distance A crude measure of how far we are from the shannon limit 4 C The capacity of the present channel 5 R The Rate of the code (assumed value) 6 x s.n.r. of Gaussian channel. (The input to the channel is +/- x, and the added noise has standard deviation 1.) 7 errors Total number of blocks decoded erroneously 8 trials Number of blocks simulated 9 undet Number of UNDETECTED errors 10 blep Point estimate of block error probability 11 point Alternate point estimate of block error probability 12 upper Error bar 13 lower Error bar 14 bitsw Number of bits received in error ("bits wrong") 15 undet Number of bit errors in the "undetected" community. 16 bitep:point Bit error rate 17 upper Error bar 18 lower Error bar 19 maxloops Number of loops of sum-product at which algorithm halts and declares detected error 20 mean_lps Mean number of loops needed to get valid decoding 21 K K 22 N N 23-27 loop05:25:50:75:95 The 5th, 25th, 50th, 75th, 95th percentiles of the number of loops needed to get valid decoding.

David MacKay <mackay@mrao.cam.ac.uk> Last modified: Thu Apr 11 14:48:20 2002