fsk: AVOID_TRANSIENTS allows for miniscule FSK_MIN_CONFIDENCE

This commit is contained in:
Kamal Mostafa 2011-06-04 14:15:54 -07:00
parent 71baa6f916
commit 08654e8466
1 changed files with 14 additions and 3 deletions

View File

@ -197,6 +197,15 @@ debug_log("\t\tstop ");
return 0.0; return 0.0;
v += pM - pS; v += pM - pS;
#define AVOID_TRANSIENTS 0.7
#ifdef AVOID_TRANSIENTS
/* Compare strength of stop bit and start bit, to avoid detecting
* a transient as a start bit, as often results in a single false
* character when the mark "leader" tone begins. */
if ( fabs( (sS - sM) - (pM - pS) ) > fabs(sS-sM) * AVOID_TRANSIENTS )
return 0.0;
#endif
debug_log("\t\tidle "); debug_log("\t\tidle ");
fsk_bit_analyze(fskp, samples+begin_i_idlebit, bit_nsamples, &iM, &iS); fsk_bit_analyze(fskp, samples+begin_i_idlebit, bit_nsamples, &iM, &iS);
bit = iM > iS; bit = iM > iS;
@ -392,7 +401,10 @@ debug_log( "--------------------------\n");
unsigned int try_max_nsamples = nsamples_per_bit; unsigned int try_max_nsamples = nsamples_per_bit;
// FIXME: explain // FIXME: explain
unsigned int try_step_nsamples = nsamples_per_bit / 4; // THIS BREAKS ONE OF THE 1200 TESTS, WHEN I USE AVOID_TRANSIENTS...
//unsigned int try_step_nsamples = nsamples_per_bit / 4;
// BUT THIS FIXES IT AGAIN:
unsigned int try_step_nsamples = nsamples_per_bit / 8;
if ( try_step_nsamples == 0 ) if ( try_step_nsamples == 0 )
try_step_nsamples = 1; try_step_nsamples = 1;
@ -409,8 +421,7 @@ debug_log( "--------------------------\n");
&frame_start_sample &frame_start_sample
); );
#define FSK_MIN_CONFIDENCE 0.41 #define FSK_MIN_CONFIDENCE 0.05
// #define FSK_MIN_CONFIDENCE 0.13
unsigned int advance; unsigned int advance;