I managed to get gr-rds built tonight, and was able to test it planted
inside my FM receiver.
Even for a local station, there are lots of errors, and more distant
stations get even more.
I’m going to play around a bit with filter bandwidths, etc, to see if
I can improve it.
Looking at the modulation technique, it’s no big surprise–they use a
bi-phase baseband coding
(basically like differential Manchester), that drives a DSB-SC
modulator with a carrier at
57kHz. But that signal is generally about 20dB below the other audio
sub-channels on the
FM demodulator output. So the SNR is generally terrible.
I’m rather surprised, after looking at it, that anyone bother deploying
RDS. It seems utterly
crappy. It’s generally broadcast with fairly-low SNR, and there’s no
FEC built in, only CRC.
I re-jigged the XML for the demodulator part so you can reset the
demodulator state machine
from within a GRC flow-graph (there was a reset() method on the demod,
but it wasn’t exposed
within the XML framework for GRC).
Also, I may re-jig the decoder portion–it currently injects decoded
frames into a message queue and
to stdout. Might be useful to do other things with those messages.
Like is there a simple way to
have a message dequeuer within a GRC flow-graph so that one could stuff
messages into a variable?
Shirleys Bay Radio Astronomy Consortium