From d1cea95eb41f6f5c3b55972a345a2513cb98e988 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Thu, 27 Aug 2020 22:35:49 +0200 Subject: [PATCH] use 16bit agc for freedv and dsd modes, refs #126 --- csdr/csdr.py | 18 +++++++++++------- docker/scripts/install-dependencies.sh | 4 ++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/csdr/csdr.py b/csdr/csdr.py index c94ff60..e97da05 100644 --- a/csdr/csdr.py +++ b/csdr/csdr.py @@ -212,8 +212,11 @@ class dsp(object): chain += ["dsd -fd -i - -o - -u {unvoiced_quality} -g -1 "] elif which == "nxdn": chain += ["dsd -fi -i - -o - -u {unvoiced_quality} -g -1 "] - chain += ["CSDR_FIXED_BUFSIZE=32 csdr convert_s16_f"] - max_gain = 50 + chain += [ + "digitalvoice_filter", + "CSDR_FIXED_BUFSIZE=32 csdr agc_s16 --max 50 --initial 5", + "sox -t raw -r 8000 -e signed-integer -b 16 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ", + ] # digiham modes else: chain += ["rrc_filter", "gfsk_demodulator"] @@ -225,11 +228,11 @@ class dsp(object): elif which == "ysf": chain += ["ysf_decoder --fifo {meta_pipe}", "mbe_synthesizer -y -f -u {unvoiced_quality}"] max_gain = 0.005 - chain += [ - "digitalvoice_filter -f", - "CSDR_FIXED_BUFSIZE=32 csdr agc_ff --max {max_gain} --initial {initial_gain}".format(max_gain=max_gain, initial_gain=max_gain / 10), - "sox -t raw -r 8000 -e floating-point -b 32 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ", - ] + chain += [ + "digitalvoice_filter -f", + "CSDR_FIXED_BUFSIZE=32 csdr agc_ff --max 0.005 --initial 0.0005", + "sox -t raw -r 8000 -e floating-point -b 32 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ", + ] elif which == "am": chain += ["csdr amdemod_cf", "csdr fastdcblock_ff"] chain += last_decimation_block @@ -245,6 +248,7 @@ class dsp(object): "csdr agc_ff", "csdr convert_f_s16", "freedv_rx 1600 - -", + "csdr agc_s16", "sox -t raw -r 8000 -e signed-integer -b 16 -c 1 --buffer 32 - -t raw -r {output_rate} -e signed-integer -b 16 -c 1 - ", ] elif which == "ssb": diff --git a/docker/scripts/install-dependencies.sh b/docker/scripts/install-dependencies.sh index e0a9073..bdffc7d 100755 --- a/docker/scripts/install-dependencies.sh +++ b/docker/scripts/install-dependencies.sh @@ -54,8 +54,8 @@ cmakebuild itpp bb5c7e95f40e8fdb5c3f3d01a84bcbaf76f3676d git clone https://github.com/jketterl/csdr.git cd csdr -# develop as of 2020-08-26, includes agc rework -git checkout a308c6b369d3eb47242e644c0c41dd27c6a4ec47 +# develop as of 2020-08-27 +git checkout 3ebba68e956379c6e906e48777fbdcd950839d80 autoreconf -i ./configure make