DRM software: the SW receiver

The SW receiver

DRM, Digital Radio Mondiale, is digital radio on short and medium waves. On shortwave there is more to do than just DRM. As a matter of fact, there are only few DRM transmissions. Here we hear in the afternoon Kuwait radio, and in the evening RRI Radio Romenia International for an hour or so. The sw receiver was equipped with decoders for e.g. PSK, RTTY, etc well before a DRM decoder was built.

The currently implemented decoders are:
  1. am;
  2. ssb, with selection for usb or lsb;

  3. psk, with a wide selection of modes and settings and with a visual tuning aid;

  4. mfsk, with a visual tuning aid;

  5. rtty, with a wide selection of modes and settings;

  6. cw, with (almost) automatic selection of speed and a visual tuning aid;

  7. drm, limited to 10 k bandwidth;

  8. navtex (amtor), with a wide selection of options;

  9. weatherfax decoder, with selection of a variety of settings.

Sources for the sw receiver (and a windows installer) are to be found here

The drm decoder


The swradio accepts - obviously depending on the configuration - input from an SDRplay device, a HackRF device or an RTLSDR based DABstick. These devices can handle the range of frequencies in shortwave. Inputrate is 96 KHz - a version can be configured to use a soundcard as input device - the signal is decimated to 12 KHz for decoding purposes. (Settings are there for selecting a smaller band within this range of 12 KHz).

The two larger displays show the spectrum or a waterfall, selected by a simple mouseclick. The small display left at the bottom shows the audio spectrum.

When a decoder is selected. a widget will show with controls and displays for decoding. Operation for DRM is quite simple: up to a few 100 Hz the software is able to correct the frequency. A correct frequency is obviously needed for decoding. The widget shows 4 synchronization indicators, for time synchronization, meaning that the software has detected the mode and the start of the data blocks, for the FAC, meaning that the data in easy to decode data cells could be decoded correct, the SDC, meaning that the content description of the data blocks was decoded correctly, and finally, the AAC, meaning that the audio content could be decoded correctly. As soon as all 4 synchronization indicators are green, decoding is in progress and audio can be expected.


The widget for the DRM decoder shows at the bottom elements that were already discussed. The Mode and Spectrum that were detected are mode "B" and spectrum "3", i.e. 10 KHz. The frequency offset detected is - as mentioned - built up from two components, here 46 + 0.955, the other numbers relate to things like estimated clock error, timing error etc etc. The widget shows further that the signal is a 24000 Hz stereo signal, encoded as AAC, where the bits for the AAC were encoded QAM64.

The black field shows the constellation of the signal, a QAM64 signal has 64 positions for the values. The values shown are derived from the signal after processing.

In the middle of the widget one sees three numbers. These number indicate the quality of the signal, especially the 3-rd number tells the quality of the signal used for AAC decoding, a value less than app 8 means that detection is not possible or not error free. Here the value 8.27 is shown, and there was sound.

The software, can be found in this repository.