RDS decoder with graphuical interface


#1

Hello everyone, I have just finished testing with good results a new
implementation of RDS decoding. This work is based on the rds block
published on the list some time ago from Ronnie Gaensli, and later
adapted
by Ryan Shoff.

Main changes from the original version posted:

biphase_decoder:

  1. loss of sync implemented
  2. samples consumption fixed when aligning clock and signal

data_decoder_cc:

  1. sync is now based on syndrome calculation
  2. loss of sync implemented
  3. group decoding for all of the 30 possible group types (work in
    progress)
  4. message model implemented to send decoded information to graphical
    frontend

The solution is made up of a custom block gr-rds, contained in the
gr-rds-new.tgz archive, and some python files, stored in rds.tgz.

After compiling and installing the block, you will need to run
rds_scope.py to use the software. It makes use of rds_rx.py where the
rds
receiver chain is implemented, and rdspanel.py where the wxwidgets
panel.

As soon as valid RDS info is received and locked the appropriate fields
on
the interface will change accordingly - some fields as name of the
station, program type and so on will show the appropriate strings, while
the “flag” fields will light RED if the corresponding function is active
according to decoded RDS. The whole thing gets reset upon frequency
change.

This is still work in progress as not all the group types are currently
managed (there is a case in the switch, but no code into it). This is
the
link where you can download tgz archives from:
http://digilander.libero.it/iz2eeq/#rds

Reports, comments and suggestions are welcome as always.

Matteo iz2eeq