freedv-gui/codec2-1.2.0/stm32/unittest/scripts/tst_api_demod_setup

152 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
#
# tst_api_demod_setup
#
# Setup input and reference data for one of several versions of this test.
# Find the scripts directory
SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
# Setup common variables
source $SCRIPTS/run_tests_common.sh
# RUN_DIR - Directory where test will be run
RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}"
# Call common setup function to make the directory
setup_common "${RUN_DIR}"
# Change to test directory
cd "${RUN_DIR}"
#####################################################################
## Test SETUP actions:
case "${TEST_OPT}" in
700D_plain_test )
# Config is <mode>, <teswtframes>
echo "71000010" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=100 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700D spch_in.raw stm_in.raw --testframes --txbpf 0 \
>> setup.log 2>&1
#
# Reference
freedv_rx 700D stm_in.raw ref_demod.raw -v --testframes \
> ref_gen.log 2>&1
;;
700D_AWGN_test )
# Config is <mode>, <teswtframes>
echo "71000010" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=96 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700D spch_in.raw mod_bits.raw --testframes --txbpf 0 \
>> setup.log 2>&1
ch mod_bits.raw stm_in.raw --No -20 -f -5 2>&1 | tee setup.log
# Reference: - When the OFDM modem initially syncs, it often
# has residual freq offset that causes abnormally
# high LDPC decoder bit errors forthe first few
# seconds. This leads to a high coded BER being
# reported for short duration tests. This
# settles down after a few seconds, and we get
# the expected coded BER when averaging over
# longer periods (e.g. 60s). However this
# particular test is necessarily short due to the
# slow speed of the semihosting system. It is
# therefore sufficient to check that the
# performance is similar to the x86 C version,
# rather than expecting a low coded BER for a
# short run.
freedv_rx 700D stm_in.raw ref_demod.raw -v --testframes 2>&1 --discard | tee ref_gen.log
;;
700D_AWGN_codec )
# Config is <mode>, <teswtframes>
echo "70000020" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=48 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700D spch_in.raw mod_bits.raw --txbpf 0 \
>> setup.log 2>&1
#
# Reference - give it a hard time with some noise to exercise the LDPC codec and get us to max CPU
ch mod_bits.raw stm_in.raw --No -20 -f -5 2>&1 | tee setup.log
freedv_rx 700D stm_in.raw ref_demod.raw -v \
> ref_gen.log 2>&1
;;
700E_plain_test )
# Config is <mode>, <teswtframes>
echo "81000010" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=100 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700E spch_in.raw stm_in.raw --testframes --txbpf 1 \
>> setup.log 2>&1
#
# Reference
freedv_rx 700E stm_in.raw ref_demod.raw -v --testframes \
> ref_gen.log 2>&1
;;
700E_AWGN_test )
# Config is <mode>, <teswtframes>
echo "81000010" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=96 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700E spch_in.raw mod_bits.raw --testframes --txbpf 1 \
>> setup.log 2>&1
ch mod_bits.raw stm_in.raw --No -22 -f -5 2>&1 | tee setup.log
freedv_rx 700E stm_in.raw ref_demod.raw -v --testframes 2>&1 --discard | tee ref_gen.log
;;
700E_AWGN_codec )
# Config is <mode>, <teswtframes>
echo "80000020" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=1280 count=48 if=../../../../raw/hts1.raw of=spch_in.raw \
> setup.log 2>&1
freedv_tx 700E spch_in.raw mod_bits.raw --txbpf 1 \
>> setup.log 2>&1
#
# Reference - give it a hard time with some noise to exercise the LDPC codec and get us to max CPU
ch mod_bits.raw stm_in.raw --No -20 -f -5 2>&1 | tee setup.log
freedv_rx 700E stm_in.raw ref_demod.raw -v \
> ref_gen.log 2>&1
;;
1600_plain_codec )
# Config is <mode>, <teswtframes>
echo "00000010" > stm_cfg.txt
#
# Copy N frames of a raw audio file to stm_in.raw.
dd bs=320 count=100 if=../../../../raw/hts1.raw of=spch_in.raw > setup.log 2>&1
freedv_tx 1600 spch_in.raw stm_in.raw >> setup.log 2>&1
#
# Reference
freedv_rx 1600 stm_in.raw ref_demod.raw -v \
> ref_gen.log 2>&1
;;
*)
printf "ERROR: invalid test option. Valid options are:\n 700[DE]_plain_test\n 700[DE]_AWGN_test\n 700[DE]_AWGN_codec\n 1600_plain_codec\n"
exit 1
;;
esac