windytan / redsea

Command-line FM-RDS decoder with JSON output.
MIT License
390 stars 36 forks source link

Residual phase error #28

Closed windytan closed 7 years ago

windytan commented 8 years ago

There's a residual phase error of around 6° in the liquid-dsp symbol synchronizer. Probably not a big deal, but not perfect either; it could potentially cause more bit flips than necessary in noisy conditions.

The relevant function is Subcarrier::demodulateMoreBits(). This phase error seems to come from the PLL NCO that follows the difference frequency between 57 kHz and the actual subcarrier (nco_exact_).

Here's the constellation of PSK symbols returned by the liquid-dsp functionsymsync_crcf_execute():

png image

windytan commented 7 years ago

Fixed in v0.7.4