I'm new in radio, so I started with seemingly easy task - receive and decode RDS data. I use GnuRadio to understand the concept of working with RF signals. So according to standard RDS receiver looks this way:
As you can see I took 57kHz signal source to shift RDS spectrum to lower frequencies as in the standard, but what really confuses me is that in standard they use subcarrier recovery module.
As I understand if I don't use subcarrier recovery there will be a phase error in 2.4kHz signal so further demodulating will be impossible.
I tried to use costas loop, PLL carrier Tracking and PLL ref out blocks to recover this 57kHz carrier but I couldn't get any decent output after 2.4kHz low pass filter. Also these blocks have complex inputs but after WBFM receiver the signal is real. I tried to use Hilbert filter, but seems that is wrong.
Summarizing everything up, there are several questions:
Am I on the right way to decode RDS signal?
How can I use carrier recovery blocks when my signal is real?
What do I need to do next after 2.4kHz lowpass filtering? What blocks do I need to use to get a bitstream?
Thank you in advance!