Les logiciels open-source, l'actuariat, la radio, la musique sont des sujets qui m'intéressent fortement. as@langmeier.ch
   Accueil arrow Open source projects arrow RdsEnc
Menu principal
Curriculum vitae
Open source projects
Softwares - Logiciels
Radio locales
Gallerie photos
RdsEnc Convertir en PDF Version imprimable Suggérer par mail
SourceForge Logo



Prepare and send the RDS / RBDS bitstream encoded as biphase symbol on the soundcard in baseband frequency.

This bitstream should then modulate a double side band suppressed carrier with a frequency of 57kHz.

RDS basics

Clock frequency = 1187.5 bps
1 Group = 4 Blocks (104 bits)
1 Block = Information (16 bits) and Checkword (10 bits)
Checkword = Crc XOR offset word Transmitted msb to lsb
Differential coding (xor previous bit with the actual bit transmitted)
Each bit is biphase coded and pass thru a filtering.

In my project, this step is done by generating each bit directly on the soundcard, so there is no need for special circuit.


Obtaining the exact biphase encoded stream require some mathematical resolution. Steps involved to obtain audio samples are described in the following document (in french): "Génération du flux en bande de base au moyen d'une carte son"  PDF (187k) and the diagram of the RdsEnc test circuit   PDF (42k).

  • The first version of the test program was made with an approximation of biphase samples.
  • The second version of the test program with exact biphase samples RdsEnc.v1.00b.zip (93k).

There are many ways to obtain a 57kHz DSBSC modulated signal. I choose to use a CMOS switch at 57kHz that switch the biphase RDS signal generated by the soundcard. I had the idea of generating the RDS signal by a PC soundcard in September 2000 and after searching on the net I didn't find someone that already did it. So I start to write the program and finished a first version and built this test circuit in January 2001. You can see the test of this project on the Gallery.

In 1987, I started a project to generate (RDS was quite new at this time!) the RDS signal by hardware in conjuntion with an EPROM to store samples. I started the circuit but I didn't finished this project because I had a lot of work.

Today it's possible to generate the complete RDS signal and even the complete MPX signal digitally with the help of a soundcard that is able to handle at least twice the highest generated frequency (Nyquist frequency), by using a 192kHz sampling rates, you can achieve more than 90kHz bandwith and that's a lot more than needed. The mono (L+R) part of the MPX signal use 20-15'000Hz, followed by the 19kHz pilot and from 23kHz to 53kHz by the stereo information (L-R) modulated with a 38kHz DBSC. The RDS is modulated with a 57kHz DBSC and use a +/- 2.375kHz bandwith.

Arjen wrote a complete stereo encoder and add recently with my little contribution the RDS part. Airomate is a great soft and you can find it at http://www.heinecke.nl/.