Christophe Jacquet

Décodeur RDS

Je viens de concrétiser un projet de longue date : réaliser un décodeur RDS. J’avais travaillé sur ce projet en 2001, sans aboutir, et je l’avais ensuite remis à plus tard. Voyons en quoi cela consiste, et ce qui m’a enfin permis d’avancer.

Accéder directement à RDS Surveyor, mon projet open source de décodeur RDS

Le RDS, pour Radio Data System, permet aux émetteurs de radiodiffusion en bande FM de transmettre des informations telles que le nom de la station, des fréquences alternatives, des signaux horaires, des textes, ou encore des informations plus complexes qui permettent le basculement sur d’autres réseaux lors de la diffusion d’informations routières. D’un point de vue technique, le RDS ajoute une porteuse à 57 kHz au signal multiplexe des stations (le signal multiplexe de base est constitué du signal mono non modulé et d’un signal stéréo « différentiel » modulé en AM sur une porteuse à 38 kHz, supprimée), laquelle est modulée en amplitude, porteuse supprimée, par des symboles biphase correspondant aux bits, au débit de 1187,5 bits par seconde. Les données binaires sont structurées en « groupes » de 104 bits, composés de 4 blocs de 26 bits. Un bloc contient lui-même 16 bits de données et 10 bits qui servent à la synchronisation et à la détection/correction des erreurs. Il est possible d’acquérir la synchronisation au niveau bloc.

20090913_montage.jpg

Pourquoi est-il intéressant de disposer d’un décodeur RDS ? La plupart des récepteurs de radio un tant soit peu évolués savent afficher le nom RDS de la station (service PS) et synchroniser leur horloge (service CT). Plus rares sont ceux qui savent afficher le radiotexte, les fréquences alternatives, les informations routières TMC ou les données de basculement entre réseaux. Un récepteur maison sera par contre capable de fournir l’ensemble de ces données, de même que permettre l’étude des types de groupes employés, de leur fréquence, etc.

Comment réaliser un tel décodeur ? Il y a plusieurs sous-problèmes à résoudre :

Réalisation. Malgré une forte quantité de bruit générée par mon montage, le résultat est déjà assez satisfaisant. Lors de tests réalisés chez moi, où la réception de la radio FM est très mauvaise, mon système décode en quelques secondes les informations RDS de base (notamment le nom de la station), là où le décodeur intégré à mon Sangean PR-D1 patauge pendant de longues minutes. Cela est, je pense, en bonne partie dû à la conception particulière de mon logiciel de décodage. Je suppose que dans la plupart des décodeurs, notamment embarqués, un groupe n’est traité que si chacun des quatre blocs qui le composent a été reçu correctement. Or, quand les conditions de réception font qu’un bloc a une probabilité oscillant entre 0 et 50 % d’être reçu (jamais plus !), un groupe a une probabilité maximale d’environ 6 % d’être reçu intact. Si on prend en considération moins de 6 % des blocs, on comprend que le décodage des informations soit difficile… En revanche, mon décodeur est capable de traiter même les groupes incomplets, et d’en extraire des informations utiles. Par exemple, on se rend compte qu’il suffit de disposer de deux blocs bien précis dans les groupes n°0A pour pouvoir décoder le nom de la station… On peut ainsi passer de 6 % à 25 % des groupes exploités dans les hypothèses ci-dessus…

20090913_rdsdecoder.jpg

L’image ci-dessus est une capture d’écran de mon prototype de logiciel de décodage, lors d’une session sur France Info en Île-de-France. On voit le code PI, le nom de la station (PS), les fréquences alternatives de France Info, ainsi que le détail des informations EON (basculement sur d’autres réseaux) : fréquences de basculement, et même noms des stations concernées (ce qui n’est jamais exploité par les récepteurs du commerce). On note que les informations sur les noms des autres réseaux (notés ON, other networks) sont parfois incomplètes, car ces noms sont transmis à très basse fréquence, contrairement au nom de la station en cours de réception. Le site du CSA permet de vérifier les codes PI.

Il me reste à régler les points suivants :

Je reviendrai sur ce projet, et je détaillerai notamment :

Liens vers d’autres décodeurs RDS maison :

HTML5 valide ? © . ✍ Contact. Mentions légales.