mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-08-17 21:22:26 -04:00
39 lines
969 B
Plaintext
39 lines
969 B
Plaintext
|
#!/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
|