From 2137901f21cfe2eb1a65a95cd3cff8590e8831bf Mon Sep 17 00:00:00 2001 From: Mark Jessop Date: Thu, 28 Feb 2019 20:20:13 +1030 Subject: [PATCH] Update to latest dft_detect (with floating point bug fixes). --- auto_rx/test/test_demod.py | 2 +- scan/dft_detect.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/auto_rx/test/test_demod.py b/auto_rx/test/test_demod.py index 465fada..a01c760 100644 --- a/auto_rx/test/test_demod.py +++ b/auto_rx/test/test_demod.py @@ -98,7 +98,7 @@ processing_type = { # Decimate to a 24 kHz bandwidth, demodulator, then interpolate back up to 48 kHz. 'demod' : "| csdr fir_decimate_cc 4 0.005 HAMMING 2>/dev/null | csdr fmdemod_quadri_cf | csdr limit_ff | csdr rational_resampler_ff 2 1 0.005 HAMMING | csdr convert_f_s16 | sox -t raw -r 48k -e signed-integer -b 16 -c 1 - -r 48000 -t wav - highpass 20 2>/dev/null| ", # Decode using rs41ecc - 'decode': "../dft_detect3 2>/dev/null", + 'decode': "../dft_detect 2>/dev/null", # Grep out the line containing the detected sonde type. "post_process" : " | grep \:" }, diff --git a/scan/dft_detect.c b/scan/dft_detect.c index d61579c..7d421bd 100644 --- a/scan/dft_detect.c +++ b/scan/dft_detect.c @@ -547,8 +547,8 @@ static int init_buffers() { M -= 1; N_DFT <<= 1; #endif - LOG2N = log(N_DFT)/log(2); - //while ((1 << LOG2N) < N_DFT) LOGN++; + LOG2N = log(N_DFT)/log(2)+0.1; // 32bit cpu ... intermediate floating-point precision + //while ((1 << LOG2N) < N_DFT) LOG2N++; // better N_DFT = (1 << LOG2N) ... K = M-NN - delay; // N+K < M