diff --git a/lib/ldpc/jtmode_codes/160-80-sf4.results b/lib/ldpc/jtmode_codes/160-80-sf4.results new file mode 100644 index 000000000..c1d673709 --- /dev/null +++ b/lib/ldpc/jtmode_codes/160-80-sf4.results @@ -0,0 +1,14 @@ +sf4 160,80 ldpc, Eb/N0_dB, ngood, nundet, 10^6 trials +-0.5 2906 0 +0.0 18899 1 +0.5 78344 3 +1.0 220956 9 +1.5 447994 12 +2.0 694624 5 +2.5 876494 4 +3.0 965704 1 +3.5 993584 1 +4.0 999160 0 +4.5 999920 0 +5.0 999993 0 + diff --git a/lib/ldpc/jtmode_codes/compare.lab b/lib/ldpc/jtmode_codes/compare.lab new file mode 100644 index 000000000..cfab60b59 --- /dev/null +++ b/lib/ldpc/jtmode_codes/compare.lab @@ -0,0 +1,2 @@ +5.1 0.005 "(198,72) JTMSK" +3.1 0.0003 "(160,80) LDPC" diff --git a/lib/ldpc/jtmode_codes/fig_compare.gnuplot b/lib/ldpc/jtmode_codes/fig_compare.gnuplot new file mode 100644 index 000000000..dd81188b4 --- /dev/null +++ b/lib/ldpc/jtmode_codes/fig_compare.gnuplot @@ -0,0 +1,20 @@ +# run: gnuplot fig_compare.gnuplot +# then: pdflatex fig_compare.tex + +set term epslatex standalone size 6in,2*6/3in +set output "fig_compare.tex" +set xlabel "$E_b/N_0$ (dB)" +set ylabel "Word Error Rate" +set style func linespoints +set key off +set tics in +set mxtics 2 +set mytics 10 +set grid +set logscale y +plot [-1:6] [1e-6:1] \ + "160-80-sf4.results" using 1:(1000000-$2)/1000000 with linespoints lt 2 lw 2 pt 2, \ + "160-80-sf4.results" using 1:($3/1000000) with linespoints lt 2 lw 2 pt 3, \ + "jtmskcode.results" using 1:(100000-$2)/100000 with linespoints lt 1 lw 2 pt 7, \ + "compare.lab" with labels + diff --git a/lib/ldpc/jtmode_codes/jtmskcode.results b/lib/ldpc/jtmode_codes/jtmskcode.results new file mode 100644 index 000000000..0385ce0de --- /dev/null +++ b/lib/ldpc/jtmode_codes/jtmskcode.results @@ -0,0 +1,12 @@ +-0.50 1470 4 + 0.00 4403 2 + 0.50 11167 2 + 1.00 24082 1 + 1.50 42779 4 + 2.00 63417 0 + 2.50 81290 1 + 3.00 92388 0 + 3.50 97560 0 + 4.00 99390 0 + 4.50 99864 0 + 5.00 99977 0 diff --git a/lib/ldpc/jtmode_codes/ldpc-160-80 b/lib/ldpc/jtmode_codes/ldpc-160-80 new file mode 100755 index 000000000..a869650cf --- /dev/null +++ b/lib/ldpc/jtmode_codes/ldpc-160-80 @@ -0,0 +1,32 @@ +#!/bin/sh +# this script characterizes a single code over a narrow range of Eb/No +# note relationship between noise standard deviation, sigma, and Eb/No: +# Eb/No = 1/(2*R*sigma^2) +# If R=1/2, then Eb/No = 1/sigma^2 Right? Check this. + +set -e # Stop if an error occurs +set -v # Echo commands as they are read + +#make-ldpc ldpc-160-80.pchk 80 160 3 evenboth 2x3/8x4 no4cycle + +cp ldpc-160-80-2x3-8x4-sf4.pchk ldpc-160-80.pchk +make-gen ldpc-160-80.pchk ldpc-160-80.gen dense +rand-src ldpc-160-80.src 1 80x1000000 +encode ldpc-160-80.pchk ldpc-160-80.gen ldpc-160-80.src \ + ldpc-160-80.enc + +rate=0.5 +for i in `seq -1 10`; +do + db=$(echo "scale=5; $i/2.0" | bc) + ebno=$(echo "scale=5; e(0.1*$db*l(10.0))" | bc -l) + sigma=$(echo "scale=5; 1/sqrt(2*$rate*$ebno)" | bc) + echo db $db ebno $ebno sigma $sigma + + transmit ldpc-160-80.enc ldpc-160-80.rec 1 awgn $sigma + decode ldpc-160-80.pchk ldpc-160-80.rec ldpc-160-80.dec awgn 0.9\ + prprp 250 + verify ldpc-160-80.pchk ldpc-160-80.dec ldpc-160-80.gen \ + ldpc-160-80.src + +done diff --git a/lib/ldpc/jtmode_codes/ldpc-160-80-2x3-8x4-sf4.pchk b/lib/ldpc/jtmode_codes/ldpc-160-80-2x3-8x4-sf4.pchk new file mode 100644 index 000000000..378540421 Binary files /dev/null and b/lib/ldpc/jtmode_codes/ldpc-160-80-2x3-8x4-sf4.pchk differ