aboutsummaryrefslogtreecommitdiff
path: root/script/test_2020x.sh
diff options
context:
space:
mode:
Diffstat (limited to 'script/test_2020x.sh')
-rwxr-xr-xscript/test_2020x.sh166
1 files changed, 0 insertions, 166 deletions
diff --git a/script/test_2020x.sh b/script/test_2020x.sh
deleted file mode 100755
index 541091c..0000000
--- a/script/test_2020x.sh
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/bin/bash -x
-# test_2020x.sh
-# David Rowe Feb 2022
-#
-# Script to support testing experimental 2020A and 2020B modes and 700E control.
-
-CODEC2_PATH=$HOME/codec2
-PATH=$PATH:$CODEC2_PATH/build_linux/src:$CODEC2_PATH/build_linux/misc
-FADING_DIR=$CODEC2_PATH/build_linux/unittest
-No_AWGN=-20
-No_AWGN_LOW=-17
-No_Multipath=-25
-serial=0
-compressor_gain=6
-
-# Approximation of Hilbert clipper analog compressor
-function analog_compressor {
- input_file=$1
- output_file=$2
- gain=$3
- cat $input_file | ch - - 2>/dev/null | \
- ch - - --No -100 --clip 16384 --gain $gain 2>/dev/null | \
- # final line prints peak and CPAPR for SSB
- ch - - --clip 16384 |
- # manually adjusted to get similar peak levels for SSB and FreeDV
- sox -t .s16 -r 8000 -c 1 -v 0.85 - -t .s16 $output_file
-}
-
-function run_sim_ssb() {
- fullfile=$1
- filename=$(basename -- "$fullfile")
- extension="${filename##*.}"
- filename="${filename%.*}"
- channel=$2
- No=-100
- if [ "$channel" == "awgn" ]; then
- channel_opt=""
- No=$No_AWGN
- fi
- if [ "$channel" == "awgnlow" ]; then
- channel_opt=""
- No=$No_AWGN_LOW
- fi
- if [ "$channel" == "mpp" ] || [ "$channel" == "mpd" ]; then
- channel_opt='--'${channel}
- No=$No_Multipath
- fi
- fn=${filename}_ssb_${channel}.wav
- analog_compressor ${fullfile} ${filename}_ssb.raw ${compressor_gain}
- tmp=$(mktemp)
- ch ${filename}_ssb.raw $tmp --No $No ${channel_opt} --fading_dir ${FADING_DIR} 2>t.txt
- cat $tmp | sox -t .s16 -r 8000 -c 1 - ${fn} trim 0 6
- snr=$(cat t.txt | grep "SNR3k(dB):" | tr -s ' ' | cut -d' ' -f3)
-
- echo "<tr>"
- echo "<td><a href=\"${fn}\">${serial}</a></td><td>ssb</td><td></td><td></td><td>${channel}</td><td>${snr}</td>"
- echo "</tr>"
- serial=$((serial+1))
-}
-
-function run_sim() {
- fullfile=$1
- filename=$(basename -- "$fullfile")
- extension="${filename##*.}"
- filename="${filename%.*}"
- mode=$2
- if [ "$mode" == "700E" ] || [ "$mode" == "700D" ]; then
- rateHz=8000
- else
- rateHz=16000
- fi
- clip=$3
- if [ "$clip" == "clip" ]; then
- clipflag=1
- clip_html="yes"
- else
- clipflag=0
- clip_html="no"
- fi
- channel=$4
- No=-100
- if [ "$channel" == "awgn" ]; then
- channel_opt=""
- No=$No_AWGN
- fi
- if [ "$channel" == "awgnlow" ]; then
- channel_opt=""
- No=$No_AWGN_LOW
- fi
- if [ "$channel" == "mpp" ] || [ "$channel" == "mpd" ]; then
- channel_opt='--'${channel}
- No=$No_Multipath
- fi
-
- indopt=$5
- indopt_flag=""
- indopt_html="no"
- indopt_str=""
- if [ "$indopt" == "indopt" ]; then
- indopt_flag="--indopt 1"
- indopt_str="_indopt"
- indopt_html="yes"
- fi
- if [ "$indopt" == "no_indopt" ]; then
- indopt_flag="--indopt 0"
- indopt_str="_no_indopt"
- fi
-
- fn=${filename}_${mode}_${clip}_${channel}${indopt_str}.wav
- tmp=$(mktemp)
- # note we let ch finish to get SNR stats (trim at end of sox causes an early termination)
- freedv_tx ${mode} ${fullfile} - --clip ${clipflag} ${indopt_flag} | \
- ch - $tmp --No $No ${channel_opt} --fading_dir ${FADING_DIR} 2>t.txt
- freedv_rx ${mode} ${indopt_flag} $tmp - | \
- sox -t .s16 -r ${rateHz} -c 1 - ${fn} trim 0 6
- snr=$(cat t.txt | grep "SNR3k(dB):" | tr -s ' ' | cut -d' ' -f3)
-
- echo "<tr>"
- echo "<td><a href=\"${fn}\">${serial}</a></td><td>${mode}</td><td>${clip_html}</td><td>${indopt_html}</td><td>${channel}</td><td>${snr}</td>"
- echo "</tr>"
- serial=$((serial+1))
-}
-
-# convert speech input file to format we need
-SPEECH_IN_16k_WAV=~/Downloads/speech_orig_16k.wav
-SPEECH_IN_16k_RAW=speech_orig_16k.raw
-SPEECH_IN_8k_RAW=speech_orig_8k.raw
-sox $SPEECH_IN_16k_WAV -t .s16 $SPEECH_IN_16k_RAW
-sox $SPEECH_IN_16k_WAV -t .s16 -r 8000 $SPEECH_IN_8k_RAW
-
-echo "<html><table>"
-echo "<tr><th>Serial</th><th>Mode</th><th>Clip</th><th>index_opt</th><th>Channel</th><th>SNR (dB)</th></tr>"
-
-# run simulations
-
-run_sim_ssb $SPEECH_IN_8k_RAW awgn
-run_sim_ssb $SPEECH_IN_8k_RAW mpp
-run_sim_ssb $SPEECH_IN_8k_RAW mpd
-
-run_sim $SPEECH_IN_16k_RAW 2020 noclip clean
-run_sim $SPEECH_IN_8k_RAW 700E clip clean
-
-run_sim $SPEECH_IN_16k_RAW 2020 noclip awgn
-run_sim $SPEECH_IN_16k_RAW 2020 noclip mpp
-run_sim $SPEECH_IN_16k_RAW 2020 noclip mpd
-run_sim $SPEECH_IN_16k_RAW 2020 clip awgn
-run_sim $SPEECH_IN_16k_RAW 2020 clip mpp
-run_sim $SPEECH_IN_16k_RAW 2020 clip mpd
-
-run_sim $SPEECH_IN_16k_RAW 2020B clip awgn indopt
-run_sim $SPEECH_IN_16k_RAW 2020B clip mpp indopt
-run_sim $SPEECH_IN_16k_RAW 2020B clip mpp no_indopt
-run_sim $SPEECH_IN_16k_RAW 2020B clip mpd indopt
-run_sim $SPEECH_IN_16k_RAW 2020B clip mpd no_indopt
-
-run_sim $SPEECH_IN_8k_RAW 700E clip awgn
-run_sim $SPEECH_IN_8k_RAW 700E clip mpp
-run_sim $SPEECH_IN_8k_RAW 700E clip mpd
-
-# Low SNR samples
-run_sim_ssb $SPEECH_IN_8k_RAW awgnlow
-run_sim $SPEECH_IN_8k_RAW 700E clip awgnlow
-run_sim $SPEECH_IN_16k_RAW 2020 clip awgnlow
-run_sim $SPEECH_IN_16k_RAW 2020A clip awgnlow indopt
-
-exit