This page contains links to several programs in C and Matlab for simulating
soft-decision decoding procedures of linear block codes. These are
discussed in Chapter 6 of the book.

**Soft-decision decoding of a first-order RM code with the Green machine:**

rm31_awgn.c

Careful examination of this decoding algorithm reveals that this is
exactly the same as ** trellis decoding** of this block code!

**Soft-decision decoding of a first-order RM code with the type-II
Chase algorithm:**

rm31_chase.c

**Soft-decision decoding of a binary linear code with the ordered statistics
decoding (OSD) algorithm: Binary transmission over an AWGN channel**

**ORDER=0 **osd_order0.c order0.c
**ORDER=1 **osd_order1.c order1.c
**ORDER=2 **osd_order2.c order2.c
**ORDER=3 **osd_order3.c order3.c
**ORDER=4 **osd_order4.c order4.c
**ORDER=5 **osd_order5.c order5.c

The OSD simulation programs for order N (N=0..5) should be compiled together:

gcc -O2 osd_orderN.c orderN.c -lm

Whenever the code parameters change, the file "def.h" needs to be modified . See also the README file.

*NOTE: Marc Fossorier has shown that for binary transmission over
an AWGN channel, reprocessing order equal to D/4 achieves practically optimum
MLD performance for a block code of minimum distance D.*

*Also, note that it is possible to make a single file with the reprocessing
order as a parameter in the routine...*

The generator matrix of the code is needed as input in the simulation. For binary BCH codes of length up to 128, generator matrices can be found at

Simulation of Viterbi decoding of a (5,4,2) SPC code using its syndrome trellis:

AWGN_VD_SPC.m