Here are several programs written in C for analysis and simulation of
linear block codes over BSC, AWGN and Rayleigh fading channels. This is
the topic of Chapter 1 of the book.
In addition to the programs below, the following two directories contain,
respectively, the generator matrices and weight distributions of all binary
extended BCH codes of length up to 128:
Matrices_BCH
Weights
Simulation of a (6,3,3) linear code, over BSC, AWGN and Rayleigh
fading channels:
633_awgn.c
633_awgn_hdd.c
633_rayleigh.c
Compute the distribution of a linear code given its generator matrix
in an input file:
WD_linear_code.c
An example is the binary linear (6,3,3) code discussed in the book, for which the file should contain the following 3 lines:
100110
010011
001101
Another program to find the weight distribution of a binary linear
code given a generator matrix (better user interface, no prompt):
find_weights.c
Bounds on the probability of a block error (WER) and a bit error
(BER) for binary linear codes with binary transmission over a Rayleigh
fading channel:
WER_Chernoff.c
WER_MC_union.c
BER_Chernoff.c
BER_MC_union.c
Union bound on the word error probability (WER) for a binary
linear block code over a BSC channel:
bound_pe.c
Bounds on the probability of a bit error for a linear code with soft-decision
and hard-decision decoding with binary transmission over an AWGN channel:
bound_awgn_ebno.c
bound_hdd_awgn.c
Bounds on the bit error probability of the memory-2 rate-1/2 convolutional
code discussed in the book:
bound_rate12_bsc.c
bound_rate12_bsc_best.c
bound_rate12_bsc_meeberg.c
Evaluation of the undetected error probability of a binary linear
(4,2,2) code, Equation (1.27) in the book:
bound_undetect_422.c
Bounds on the probability of error of a repetition code over an AWGN
channel and a Rayleigh fading channel, with soft decision decoding, as
well as probability of error with hard-decision over an AWGN channel:
bound_313.c
pe313_rayleigh.c
pe_313_hd_awgn.c
Simulation of a repetition (3,1,3) code over a binary symmetric channel:
simulation313.c
Probability of decoding error (block error) for a binary code with
binary transmission over an AWGN channel and hard-decision decoding:
pe_hdd_awgn.c
Exact probability of error with standard array decoding of binary
linear codes:
pe_std_array.c
Evaluate error probabilities for an RS code:
prob_error_RScode.c
prob_dec_error_rs.c