My apologies if the answer to this question is too easy. I am a mathematics student and the subject of low density parity check codes is new to me.
In many papers on LDPC codes, there are plots showing BER (bit error rate) vs SNR (signal to noise ratio). I have designed some codes and I want to show their performance by giving one of these plots.
I noticed that most softwares which test these codes on the white gaussian noise channel take the code, max number of iterations, and the noise standard deviation as inputs, and then give the BER as an output.
My question is, how do I calculate the SNR (Eb/N0) given the code, max number of iterations, and noise standard deviation for making the plot?
For example, there is software that can be downloaded from: http://www.cs.toronto.edu/~radford/ftp/LDPC-2012-02-11/index.html which can build random LDPC codes and then test their performance on the white gaussian noise channel. The following is an example of some inputs for that software which comes included with the software. Before each test, it states the noise standard deviation, and then the corresponding snr value Eb/N0:\
#!/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
But the program takes the noise standard deviation as an input and not the snr value. I want to know how, given the code, max number of iterations, and noise standard deviation, how to calculate the snr value.
i.e. in the comments of the code given above, its says that when the noise standard deviation is .8, the value for Eb/N0 is 1.94. How is this correspondence made?
Thanks in advance.