Commit fb8156bf authored by Stefan Westerfeld's avatar Stefan Westerfeld

Fix bias while estimating sync quality from raw received bits.

Signed-off-by: Stefan Westerfeld's avatarStefan Westerfeld <stefan@space.twc.de>
parent fe5978c1
......@@ -820,9 +820,19 @@ class SyncFinder
dmag += fft_out_db[index + down[bit][i]];
}
}
const int expect_data_bit = bit & 1; /* expect 010101 */
/* convert avoiding bias, raw_bit < 0 => 0 bit received; raw_bit > 0 => 1 bit received */
double raw_bit;
if (umag < dmag)
{
raw_bit = 1 - umag / dmag;
}
else
{
raw_bit = dmag / umag - 1;
}
const double q = expect_data_bit ? (1 - umag / dmag) : (umag / dmag - 1);
const int expect_data_bit = bit & 1; /* expect 010101 */
const double q = expect_data_bit ? raw_bit : -raw_bit;
sync_quality += q;
}
sync_quality /= Params::sync_bits;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment