diff --git a/lib/ldpc/jtmode_codes/compare.lab b/lib/ldpc/jtmode_codes/compare.lab index a90fc637e..51a6ef5ef 100644 --- a/lib/ldpc/jtmode_codes/compare.lab +++ b/lib/ldpc/jtmode_codes/compare.lab @@ -1,4 +1,5 @@ -3.9 0.15 "(198,72) JTMSK" -2.7 0.003 "(174,87) LDPC" -5.6 0.00003 "(160,80) LDPC" -5.6 0.00008 "(140,80) LDPC" +5.7 0.0002 "CC/CRC15" +5.5 0.0001 "(128,82)" +5.7 0.0004 "(128,82)/20" +5.6 0.002 "(128,82)/5" +5.5 0.000007 "(160,80)" diff --git a/lib/ldpc/jtmode_codes/fig_compare.gnuplot b/lib/ldpc/jtmode_codes/fig_compare.gnuplot index 8ef39c12e..4fd4d9400 100644 --- a/lib/ldpc/jtmode_codes/fig_compare.gnuplot +++ b/lib/ldpc/jtmode_codes/fig_compare.gnuplot @@ -13,15 +13,17 @@ set mytics 10 set grid set logscale y plot [-1:6] [1e-6:1] \ + "jtmskcode.results" using 1:(100000-$2)/100000 with linespoints lt 1 lw 2 pt 1, \ + "jtmskcode.results" using 1:($5/1000000) with linespoints lt 1 lw 2 pt 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 2, \ - "jtmskcode.results" using 1:(100000-$2)/100000 with linespoints lt 1 lw 2 pt 7, \ - "jtmskcode.results" using 1:($5/1000000) with linespoints lt 1 lw 2 pt 7, \ - "140-80-sf5.results" using 1:(100000-$2)/100000 with linespoints lt 4 lw 2 pt 4, \ - "140-80-sf5.results" using 1:($3/100000) with linespoints lt 4 lw 2 pt 4, \ - "174-87-sf6.results" using 1:(1000000-$2)/1000000 with linespoints lt 5 lw 2 pt 5, \ - "174-87-sf6.results" using 1:($3/1000000) with linespoints lt 5 lw 2 pt 5, \ + "128-82-sf10.results" using 1:(1000000-$2)/1000000 with linespoints lt 3 lw 2 pt 3, \ + "128-82-sf10.results" using 1:($3/1000000) with linespoints lt 3 lw 2 pt 3, \ + "128-82-sf11.results" using 1:(1000000-$2)/1000000 with linespoints lt 4 lw 2 pt 4, \ + "128-82-sf11.results" using 1:($3/1000000) with linespoints lt 4 lw 2 pt 4, \ + "128-82-sf11.results" using 1:(1000000-$4)/1000000 with linespoints lt 4 lw 2 pt 4, \ + "128-82-sf11.results" using 1:($5/1000000) with linespoints lt 4 lw 2 pt 4, \ + "128-64.results" using 1:(1000000-$2)/1000000 with linespoints lt 5 lw 2 pt 5, \ + "128-64.results" using 1:($3/1000000) with linespoints lt 5 lw 2 pt 5, \ "compare.lab" with labels exit -# "160-80-sf4.results" using 1:(1000000-$4)/1000000 with linespoints lt 3 lw 2 pt 4, \ -# "160-80-sf4.results" using 1:($5/1000000) with linespoints lt 2 lw 3 pt 4, \ diff --git a/lib/ldpc/jtmode_codes/ldpc-search b/lib/ldpc/jtmode_codes/ldpc-search index bdbd7caf7..5591c3adb 100755 --- a/lib/ldpc/jtmode_codes/ldpc-search +++ b/lib/ldpc/jtmode_codes/ldpc-search @@ -1,22 +1,24 @@ #!/bin/sh # search for a good code -n=160 -k=72 +# make-ldpc ldpc.pchk $m $n $seed evenboth 2x3/8x4 no4cycle +n=128 +k=80 m=$((n-k)) +niterations=5 set -e # Stop if an error occurs -rand-src ldpc.src 2 "$k"x1000000 +rand-src ldpc.src 2 "$k"x100000 -for i in `seq 1 1000` +for i in `seq 1000 2000` do seed=$i echo seed $seed - make-ldpc ldpc.pchk $m $n $seed evenboth 2x3/8x4 no4cycle + make-ldpc ldpc.pchk $m $n $seed evenboth 120x3/8x4 no4cycle make-gen ldpc.pchk ldpc.gen dense encode ldpc.pchk ldpc.gen ldpc.src ldpc.enc - transmit ldpc.enc ldpc.rec 1 awgn 0.8 - decode ldpc.pchk ldpc.rec ldpc.dec awgn 0.80 prprp 250 + transmit ldpc.enc ldpc.rec 1 awgn 0.7 + decode ldpc.pchk ldpc.rec ldpc.dec awgn 0.70 prprp $niterations verify ldpc.pchk ldpc.dec ldpc.gen ldpc.src done diff --git a/lib/ldpc/jtmode_codes/ldpc-waterfall b/lib/ldpc/jtmode_codes/ldpc-waterfall index 75388d8be..502eb0bc6 100755 --- a/lib/ldpc/jtmode_codes/ldpc-waterfall +++ b/lib/ldpc/jtmode_codes/ldpc-waterfall @@ -1,24 +1,27 @@ #!/bin/sh # this script characterizes a single code over a range of Eb/N0 +# a baseband signal with mean power = 1 # 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 +# make-ldpc ldpc.pchk "$m" "$n" $seed evenboth 2x3/8x4 no4cycle set -e # Stop if an error occurs #set -v # Echo commands as they are read -n=174 -k=87 +n=128 +k=82 m=$((n-k)) -seed=4 -ntrials=1000000 +seed=182 +ntrials=10000 +niterations=10 rate=$(echo "scale=5; $k/$n" | bc) echo n=$n k=$k rate=$rate m=$m -make-ldpc ldpc.pchk "$m" "$n" $seed evenboth 2x3/8x4 no4cycle +make-ldpc ldpc.pchk "$m" "$n" $seed evenboth 9x3/1x4 no4cycle -make-gen ldpc.pchk ldpc.gen dense +make-gen ldpc.pchk ldpc.gen sparse rand-src ldpc.src 1 "$k"x"$ntrials" encode ldpc.pchk ldpc.gen ldpc.src ldpc.enc @@ -30,9 +33,6 @@ do echo db $db ebno $ebno sigma $sigma transmit ldpc.enc ldpc.rec 1 awgn $sigma - decode ldpc.pchk ldpc.rec ldpc.dec awgn $sigma\ - prprp 250 - verify ldpc.pchk ldpc.dec ldpc.gen \ - ldpc.src - + decode ldpc.pchk ldpc.rec ldpc.dec awgn $sigma prprp $niterations + verify ldpc.pchk ldpc.dec ldpc.gen ldpc.src done