]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
V.27ter modem modified to make it a little less tolerant of poor SNR, and a
authorSteve Underwood <steveu@coppice.org>
Sun, 31 May 2015 21:38:33 +0000 (05:38 +0800)
committerBrian <brian@freeswitch.org>
Mon, 1 Jun 2015 14:15:26 +0000 (09:15 -0500)
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

index 6959d27ef21e3296f97e7bfce2125ab4a3e3e3b7..93d3b4680db6521513210ee93d24bf7c28d988d5 100644 (file)
@@ -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;