From 2327fe8094e5321cd8c2f782f31637c06dc345ae Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 31 Jan 2016 16:15:39 +0000 Subject: [PATCH] More related to ecc comparisons. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6453 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/ldpc/jtmode_codes/160-80-sf4.results | 14 ++++++++ lib/ldpc/jtmode_codes/compare.lab | 2 ++ lib/ldpc/jtmode_codes/fig_compare.gnuplot | 20 +++++++++++ lib/ldpc/jtmode_codes/jtmskcode.results | 12 +++++++ lib/ldpc/jtmode_codes/ldpc-160-80 | 32 ++++++++++++++++++ .../jtmode_codes/ldpc-160-80-2x3-8x4-sf4.pchk | Bin 0 -> 2768 bytes 6 files changed, 80 insertions(+) create mode 100644 lib/ldpc/jtmode_codes/160-80-sf4.results create mode 100644 lib/ldpc/jtmode_codes/compare.lab create mode 100644 lib/ldpc/jtmode_codes/fig_compare.gnuplot create mode 100644 lib/ldpc/jtmode_codes/jtmskcode.results create mode 100755 lib/ldpc/jtmode_codes/ldpc-160-80 create mode 100644 lib/ldpc/jtmode_codes/ldpc-160-80-2x3-8x4-sf4.pchk 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 0000000000000000000000000000000000000000..3785404219e1f6449d906b4f53d5863e5cb0997f GIT binary patch literal 2768 zcmXZchgX+n6u@zui5o}mLia$C=kaqc=e?KbeV%)tm%x;;F#d-H@gM)%6QeK(#n^~y{7bGK zF#+c0V?B1_Ho30EXbi!~BSh)TOq`-ab#|`rKV-RLy z83L%nALM2bbFl!P<#(PnBf7>`xWB`=&hrRj9FpK#v#=e$=Qr{#i32ej*|2vd*aX-4 zm72js`#TI9um`{JyaCa^-U;`bj3PKcXS5GLQ`eN}d!o?~%drkS;68q$#-2N;yWw6k z;98})M!pTP2l~L?4Z&ECRV_?en-9+(X;rTR20H*;#+bph;bMR?~31oXE}&(LivgOJO%b|CEVv4 zTp-_&*ae=&o_j~V1NXzV?1{5GPpz}JuajUtfNFeAu0GLkz?rAP_vPUMEWuaQ)Fs-} zu84(uc5iF38Rw{}M@+yt*oV2Wcl&Ubd;{VgNQZNs4txG3xt_$S@ON_YAa>y~d_g`X z^vwP^7klBmtFQ+L@Hur!#PRTq?!5%1@OyS2pHWkX==*xZdu-3{g}>)LITNaB$VW!Q{I;r*$_N7OYZ`Yvacg{`Q8ef^Mp4AHaMFW0i~<=BKu zd_awR_nyWh6A!`Ou7>;aov!yjwRMS+@ZQ_cS;&JkdM~se?~!NsTpO_i?)P2t-Y@Tk zy;ue3dkF84OC+XY0y5y*eha?a`FrlSscTK_fG)5m8=h-5e5dQZMV&o#E%)Nx^S#!V z;Z5?+GZlUhIk3mh{S9)S)9=lDGZyJE?|EJ)?>%pVVX(&DyI1>qihLhpKe)bU@y-{( zUY;c1l-LT^d1u_`Y%GMmUyll$pte5IZ>v2z!MmM+AsC6}D8X@Ror}2{@SbkK7C6V( z$VU?WCi){83s8maa89pMSE@Xl1izXu0!7%x*hfH)i@ zFb4K956-F-p7SN@8WHX1PO@hZm^xZj6R&`Ft(bp&HMV_uK>FI^&Ru#jxf%^6ta_xKIC9c^+rK8~gDrHFb#2 zxieznI^KEjfIWJKns8!Un0G(kHSfV3EJXlMQ`d