#!/bin/sh # Example of a (10000,5000) LDPC code with 3 checks per bit and 6 bits per # check, tested on Additive White Gaussian Noise channels with noise standard # deviations varying from 0.80 to 0.95. # # Testing is done by transmitting random messages, with pipes used so that # intermediate files are avoided. Decoding is done using a maximum of 250 # iterations of probability propagation. set -e # Stop if an error occurs set -v # Echo commands as they are read make-ldpc ex-ldpc36-5000a.pchk 5000 10000 2 evenboth 3 no4cycle make-gen ex-ldpc36-5000a.pchk ex-ldpc36-5000a.gen dense rand-src ex-ldpc36-5000a.src 1 5000x100 # NOISE STANDARD DEVIATION 0.80, Eb/N0 = 1.94 dB encode ex-ldpc36-5000a.pchk ex-ldpc36-5000a.gen ex-ldpc36-5000a.src - \ | transmit - - 1 awgn 0.80 \ | decode ex-ldpc36-5000a.pchk - - awgn 0.80 prprp 250 \ | verify ex-ldpc36-5000a.pchk - ex-ldpc36-5000a.gen ex-ldpc36-5000a.src # NOISE STANDARD DEVIATION 0.85, Eb/N0 = 1.41 dB encode ex-ldpc36-5000a.pchk ex-ldpc36-5000a.gen ex-ldpc36-5000a.src - \ | transmit - - 1 awgn 0.85 \ | decode ex-ldpc36-5000a.pchk - - awgn 0.85 prprp 250 \ | verify ex-ldpc36-5000a.pchk - ex-ldpc36-5000a.gen ex-ldpc36-5000a.src # NOISE STANDARD DEVIATION 0.90, Eb/N0 = 0.92 dB encode ex-ldpc36-5000a.pchk ex-ldpc36-5000a.gen ex-ldpc36-5000a.src - \ | transmit - - 1 awgn 0.90 \ | decode ex-ldpc36-5000a.pchk - - awgn 0.90 prprp 250 \ | verify ex-ldpc36-5000a.pchk - ex-ldpc36-5000a.gen ex-ldpc36-5000a.src # NOISE STANDARD DEVIATION 0.95, Eb/N0 = 0.45 dB encode ex-ldpc36-5000a.pchk ex-ldpc36-5000a.gen ex-ldpc36-5000a.src - \ | transmit - - 1 awgn 0.95 \ | decode ex-ldpc36-5000a.pchk - - awgn 0.95 prprp 250 \ | verify ex-ldpc36-5000a.pchk - ex-ldpc36-5000a.gen ex-ldpc36-5000a.src