From 15f6699aaac516caafaee55ee9a3b57a331c46fe Mon Sep 17 00:00:00 2001 From: Steve Underwood Date: Mon, 1 Jun 2015 05:38:33 +0800 Subject: [PATCH] V.27ter modem modified to make it a little less tolerant of poor SNR, and a little more tolerant of big timing errors between the symbols at the far end, and as they are received by us. --- libs/spandsp/src/v27ter_rx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/spandsp/src/v27ter_rx.c b/libs/spandsp/src/v27ter_rx.c index 6959d27ef2..93d3b4680d 100644 --- a/libs/spandsp/src/v27ter_rx.c +++ b/libs/spandsp/src/v27ter_rx.c @@ -497,14 +497,14 @@ static __inline__ void symbol_sync(v27ter_rx_state_t *s) s->gardner_integrate += (p + q > 0) ? s->gardner_step : -s->gardner_step; - if (abs(s->gardner_integrate) >= 256) + if (abs(s->gardner_integrate) >= 128) { /* This integrate and dump approach avoids rapid changes of the equalizer put step. Rapid changes, without hysteresis, are bad. They degrade the equalizer performance when the true symbol boundary is close to a sample boundary. */ //span_log(&s->logging, SPAN_LOG_FLOW, "Hop %d\n", s->gardner_integrate); - s->eq_put_step += (s->gardner_integrate/256); - s->total_baud_timing_correction += (s->gardner_integrate/256); + s->eq_put_step += (s->gardner_integrate/128); + s->total_baud_timing_correction += (s->gardner_integrate/128); if (s->qam_report) s->qam_report(s->qam_user_data, NULL, NULL, s->gardner_integrate); s->gardner_integrate = 0;