mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-18 05:32:27 -04:00
Merge in ldpc work.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6468 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
3b206b4fa8
commit
39ae2d156f
@ -1,4 +1,4 @@
|
|||||||
sf4 160,80 ldpc, Eb/N0_dB, ngood, nundet, 10^6 trials
|
sf4 160,80 ldpc 2x3/8x4 seed=3, Eb/N0_dB, ngood, nundet, 10^6 trials
|
||||||
columns 2,3 decoder uses variable sigma, columns 4,5 decoder uses fixed sigma=0.9
|
columns 2,3 decoder uses variable sigma, columns 4,5 decoder uses fixed sigma=0.9
|
||||||
-0.5 2906 0 10862 5
|
-0.5 2906 0 10862 5
|
||||||
0.0 18899 1 34663 6
|
0.0 18899 1 34663 6
|
||||||
|
@ -1,2 +1,4 @@
|
|||||||
5.1 0.005 "(198,72) JTMSK"
|
3.9 0.15 "(198,72) JTMSK"
|
||||||
3.1 0.0003 "(160,80) LDPC"
|
2.7 0.003 "(174,87) LDPC"
|
||||||
|
5.6 0.00003 "(160,80) LDPC"
|
||||||
|
5.6 0.00008 "(140,80) LDPC"
|
||||||
|
@ -15,11 +15,13 @@ set logscale y
|
|||||||
plot [-1:6] [1e-6:1] \
|
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:(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, \
|
"160-80-sf4.results" using 1:($3/1000000) with linespoints lt 2 lw 2 pt 2, \
|
||||||
"160-80-sf4.results" using 1:(1000000-$4)/1000000 with linespoints lt 3 lw 2 pt 4, \
|
"jtmskcode.results" using 1:(100000-$2)/100000 with linespoints lt 1 lw 2 pt 7, \
|
||||||
"160-80-sf4.results" using 1:($5/1000000) with linespoints lt 2 lw 3 pt 4, \
|
|
||||||
"ldpc-144-72-sf2.results" using 1:(1000000-$2)/1000000 with linespoints lt 3 lw 2 pt 5, \
|
|
||||||
"ldpc-144-72-sf2.results" using 1:($3/1000000) with linespoints lt 3 lw 2 pt 5, \
|
|
||||||
"jtmskcode.results" using 1:(1000000-$4)/1000000 with linespoints lt 1 lw 2 pt 7, \
|
|
||||||
"jtmskcode.results" using 1:($5/1000000) 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, \
|
||||||
"compare.lab" with labels
|
"compare.lab" with labels
|
||||||
exit
|
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, \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
rate 1/2 constraint len 13, bpsk, ngood, nbad 10^5 trials, 10^6 trials
|
rate 1/2 constraint len 13, bpsk, ngood, nbad 10^5 trials, 10^6 trials
|
||||||
-0.50 1470 4
|
-0.50 1470 4
|
||||||
0.00 4403 2 43968 30
|
0.00 4403 2 43968 30
|
||||||
0.50 11167 2 111824 33
|
0.50 11167 2 111824 33
|
||||||
1.00 24082 1 238157 21
|
1.00 24082 1 238157 21
|
||||||
@ -7,7 +7,7 @@ rate 1/2 constraint len 13, bpsk, ngood, nbad 10^5 trials, 10^6 trials
|
|||||||
2.00 63417 0 634824 14
|
2.00 63417 0 634824 14
|
||||||
2.50 81290 1 812206 2
|
2.50 81290 1 812206 2
|
||||||
3.00 92388 0 924507 2
|
3.00 92388 0 924507 2
|
||||||
3.50 97560 0
|
3.50 97560 0 975836 0
|
||||||
4.00 99390 0
|
4.00 99390 0 993832 0
|
||||||
4.50 99864 0
|
4.50 99864 0 998695 0
|
||||||
5.00 99977 0
|
5.00 99977 0 999771 0
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
#!/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
|
|
BIN
lib/ldpc/jtmode_codes/ldpc-174-87-sf6.pchk
Normal file
BIN
lib/ldpc/jtmode_codes/ldpc-174-87-sf6.pchk
Normal file
Binary file not shown.
22
lib/ldpc/jtmode_codes/ldpc-search
Executable file
22
lib/ldpc/jtmode_codes/ldpc-search
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# search for a good code
|
||||||
|
n=160
|
||||||
|
k=72
|
||||||
|
m=$((n-k))
|
||||||
|
|
||||||
|
set -e # Stop if an error occurs
|
||||||
|
|
||||||
|
rand-src ldpc.src 2 "$k"x1000000
|
||||||
|
|
||||||
|
for i in `seq 1 1000`
|
||||||
|
do
|
||||||
|
seed=$i
|
||||||
|
echo seed $seed
|
||||||
|
make-ldpc ldpc.pchk $m $n $seed evenboth 2x3/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
|
||||||
|
verify ldpc.pchk ldpc.dec ldpc.gen ldpc.src
|
||||||
|
done
|
||||||
|
|
38
lib/ldpc/jtmode_codes/ldpc-waterfall
Executable file
38
lib/ldpc/jtmode_codes/ldpc-waterfall
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# this script characterizes a single code over a range of Eb/N0
|
||||||
|
# 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
|
||||||
|
|
||||||
|
set -e # Stop if an error occurs
|
||||||
|
#set -v # Echo commands as they are read
|
||||||
|
|
||||||
|
n=174
|
||||||
|
k=87
|
||||||
|
m=$((n-k))
|
||||||
|
seed=4
|
||||||
|
ntrials=1000000
|
||||||
|
|
||||||
|
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-gen ldpc.pchk ldpc.gen dense
|
||||||
|
rand-src ldpc.src 1 "$k"x"$ntrials"
|
||||||
|
encode ldpc.pchk ldpc.gen ldpc.src ldpc.enc
|
||||||
|
|
||||||
|
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.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
|
||||||
|
|
||||||
|
done
|
Loading…
x
Reference in New Issue
Block a user