Tuesday 12 July 2016

Digital Radio Mondiale (DRM)

DRM is a digital radio standard based on the principle that bandwidth is limited, and computer processing power is cheap. It is designed for voice, music, images, text, data (and in future with higher QAM video). The system is defined by ES 201 980. DRM was designed in co-operation with the International Telecommunication Union (ITU). The bandwidth of a DRM30 signal is at most 20 kHz and is designed to operate at any frequency from DC to 30MHz.

Technical background, some general knowledge and details of how the system works under the hood (Not really needed, skip down to "How to use DRM")

At  the lowest level of transmission DRM is coded orthogonal frequency division multiplexing (COFDM), where every carrier is modulated with quadrature amplitude modulation (QAM) with a selectable error coding.

Numerical values of the OFDM parameters*

Robustness mode Duration Tu Carrier spacing 1/Tu Duration of guard interval Tg Duration of symbol Ts = Tu + Tg Tg/Tu Number of symbols per frame Ns
A 24 ms 41 2/3 Hz 2.66 ms 26.66 ms 1/9 15
B 21.33 ms 46 7/8  Hz 5.33 ms 26.66 ms 1/4 15
C 14.66 ms 68 2/11  Hz 5.33 ms 20 ms 4/11 20
D 9.33 ms 107 1/7  Hz 7.33 ms 16.66 ms 11/14 24
E 2.25 ms 444 4/9 Hz 0.25 ms 2.5 ms 1/9 40
(* - Source: ES 201 980, Table 82)


There are 5 Robustness Modes each with their own function:
  • Mode A (Spectral Occupancies 4.5, 5, 9, 10, 18, 20 kHz) This profile is suited for local or regional broadcasting (DRM30). Gaussian channels, with minor fading, very little multipath propagation and Doppler effect
  • Mode B (Spectral Occupancies 4.5, 5, 9, 10, 18, 20 kHz) This profile is suited for medium range transmission (DRM30). Time and frequency selective channels, with longer delay spread, multipath propagation channel.
  • Mode C (Spectral Occupancies 10, 20 kHz) This mode is suited for long distance transmission (DRM30). As robustness mode B, but with higher Doppler spread (more carrier spacing).
  • Mode D (Spectral Occupancies 10, 20 kHz) This mode is for adverse propagation conditions on very long distance transmissions. (DRM30). As robustness mode B, but with a resistance  to severe delay and Doppler spread. 
  • Mode E (Spectral Occupancy 100 kHz, well 96kHz with 4kHz guard bands, so that is could be used in the commercial FM band and still meet all requirements) Time and frequency selective channels (DRM+). It is used in VHF 30 and 300 MHz, commercially this means band I (47 to 68 MHz), band II (87.5 to 108 MHz) and band III (174 to 230 MHz).

Number of OFDM carriers*

RM \ SO 4.5 kHz 5 kHz 9 kHz 10 kHz 18 kHz 20 kHz 100 kHz
A 100 112 204 228 412 460 -
B 90 102 182 206 366 410 -
C - - - 138 - 280 -
D - - - 88 - 178 -
E - - - - - - 213
(* - derived from: ES 201 980, Table 84)

Each carrier can be either a reference, a pilot or a data carrier. The reference carriers cells are used by the receiver to detect the presence of the received signal and to estimate its frequency offset (For robustness mode E, no frequency reference cells are defined). The pilot (or gain) carriers are used for channel estimation for use in fading channels. Pilot carriers are broadcast with a known amplitude and phase sequence.

Approximate data throughput (kbits/sec) for each protection class and robustness mode at various spectral occupancy

( The lower the protection class the higher the level of error correction )

RM\SO modulation scheme Protection class
(code rate)
4.5 kHz 5 kHz 9 kHz 10 kHz 18 kHz 20 kHz 100 kHz
A 16-QAM 0 (0.5) 6.3 7.2 13.2 14.9 27.5 30.8 -
A 16-QAM 1 (0.62) 7.8 8.9 16.4 18.5 34.1 38.2 -
A 64-QAM 0 (0.5) 9.4 10.7 19.6 22.2 40.9 45.8 -
A 64-QAM 1 (0.6) 11.3 12.8 23.6 26.6 49.1 55 -
A 64-QAM 2 (0.71) 13.4 15.1 27.8 31.5 58.1 65.1 -
A 64-QAM 3 (0.78) 14.7 16.6 30.8 34.6 63.8 71.5 -
B 16-QAM 0 (0.5) 4.8 5.6 7.6 8.7 21.4 24 -
B 16-QAM 1 (0.62) 6 6.9 12.8 14.6 26.5 29.8 -
B 64-QAM 0 (0.5) 7.3 8.3 15.3 17.4 31.8 35.8 -
B 64-QAM 1 (0.6) 8.7 10 18.4 21 38.2 43 -
B 64-QAM 2 (0.71) 10.3 11.8 21.8 24.7 45.2 51 -
B 64-QAM 3 (0.78) 11.3 13 23.9 27.4 49.7 56 -
C 16-QAM 0 (0.5) - - - 6.8 - 19.4 -
C 16-QAM 1 (0.62) - - - 11.5 - 24.1 -
C 64-QAM 0 (0.5) - - - 13.7 - 29 -
C 64-QAM 1 (0.6) - - - 16.6 - 34.8 -
C 64-QAM 2 (0.71) - - - 19.4 - 41.2 -
C 64-QAM 3 (0.78) - - - 21.5 - 45.2 -
D 16-QAM 0 (0.5) - - - 4.5 - 13.1 -
D 16-QAM 1 (0.62) - - - 7.6 - 16.3 -
D 64-QAM 0 (0.5) - - - 9.1 - 19.5 -
D 64-QAM 1 (0.6) - - - 11 - 23.4 -
D 64-QAM 2 (0.71) - - - 12.9 - 27.7 -
D 64-QAM 3 (0.78) - - - 14.3 - 30.4 -
E 4-QAM 0 (0.25) - - - - - - 37.3
E 4-QAM 1 (0.333) - - - - - - 49.7
E 4-QAM 2 (0.4) - - - - - - 59.6
E 4-QAM 3 (0.5) - - - - - - 74.5
E 16-QAM 0 (0.333) - - - - - - 99.4
E 16-QAM 1 (0.411) - - - - - - 122.4
E 16-QAM 2 (0.5) - - - - - - 149.1
E 16-QAM 3 (0.625) - - - - - - 186.4
(* - derived from: ES 201 980, Annex H. HMSym and HMMix dropped to keep table smaller)


 The DRM system consists of three different Multiplexed channels, the FAC, SDC and MSC.
  • FAC (Fast Access Channel) channel of the multiplex data stream which contains the information that is necessary to find services and begin to decode the multiplex. This is always 4-QAM.

  • SDC (Service Description Channel) channel of the multiplex data stream which gives information to decode the MSC, how to find alternative sources of the same data, and gives the attributes of the services within the multiplex. This is 4-QAM or 16-QAM.

  • MSC (Main Service Channel) channel of the multiplex data stream which occupies the major part of the transmission frame and which carries all the digital audio services, together with possible supporting and additional data services. This is one of four possibilities 16-QAM, or 64-QAM with either Standard or Hierarchical modulation (SM, HMSym and HMMix). Can also be 4-QAM in Mode E.



The final layer is the data contained in the MSC, usually Audio, but trials have been carried out with video using Mode E. DRM unofficially supports the modern license free Opus codec. As well as the official four older slightly lower efficiency AAC licensed codecs.


Anyhow this post is getting far longer than I had intended, so I'm just going to skip details of the highest levels of the protocol, it is all explained in the very first link at the top of this post - "Digital Radio Mondiale (DRM) System Specification". And I haven't reallt gone through the four default protection classes (more redundancy less data/second) or the UEP/EEP (Unequal Error Protection/Equal Error Protection). There is a lot of very fine detail within DRM. Everything individually is simple enough, but when you add so many together it can appear extremely complex.

How to use DRM

There is an excellent program called Dream DRM Receiver. To transmit DRM launch the program with the "--transmitter" argument which will bring up the transmit interface. The default is the receiver interface. It supports five different codecs (AAC, CELP, HVXC, xHE_AAC, OPUS) one of which is not officially part of the DRM standard (yet - Opus, which is very modern and more efficient). The current version only has TX supports Robustness modes A, B, C and D. And by default because of licensing TX support does not include the official AAC codecs, so only the Opus codec will work out of the box. You can easily install the licensed codecs, but depending on your local laws you will probably need to pay licensing fees to use them.

If you are on a Windows OS the easiest way to set this up is to use VB-CABLE Virtual Audio Device I used 2 virtual audio cables in the following simulated setup:

Audio Source

So for my Audio source I played an audio file using VLC. I used a public domain file that I downloaded from http://www.openmusicarchive.org (The file that I downloaded may still be in copyright where you are in the world, investigate your local copyright laws before using).

Title         : Court House Blues
Written by    : Clara Smith (1894 - 1935)
Performed by  : Clara Smith. Piano and cornet accomp.
Recording date: n/a
Cat Number    : Columbia 14073D (78A)
Duration      : 03'18"
License       : Public Domain
Tags          : jail / cornet / female vocal / 1920s / piano / Clara Smith


In VLC I selected that the destination as "Audio->Audio Device->Speakers (VB-Audio Cable A)".

DRM Encoder

Then within "dream --transmitter" (DRM encoder), I selected that the audio source was configured as "Settings->Sound Card->Audio Input->Device->Cable-A Output (VB-Audio Cable A)". And again within "dream --transmitte" (DRM encoder) I selected that the audio destination was configured as "Settings->Sound Card->Signal Output->Device->Speakers (VB-Audio Cable B)".

DRM Decoder

For my DRM Decoder I ran a second copy of "dream" this time with no extra command line argument. This brings up the receiver interface, I also clicked on "View->Evaluation dialogue". And I selected the "Waterfall Input Spectrum" on the left hand side inside the "Chart Selector".
And for the audio source within "dream" (DRM Decoder) I selected "Settings->Sound Card->Signal Input->Device->Cable-B Output (VB-Audio Cable B)". And for my audio destination I selected "Settings->Sound Card->Audio Output->Device->[default]".

The above all sounds more complex than it actually is, just look at two images up from here. You are taking audio, encoding it, decoding it and then playing it out speakers. Which seems like a total waste of energy, and it totally is in this particular configuration.  But this configuration does allow you to artificially inject consistent noise into Virtual Audio cable B and slowly turn up the gain until uncorrectable errors start to occur. To experiment without, initially, needing to place equipment at tremendous distances apart for nature and man to generate real noise. It is not perfect, but it is a good starting point for evaluation basic error correction algorithms.



After evaluating a configuration like above the next step is to split the TX and RX parts into two separate functions. Using SDR hardware, like the LimeSDR, for shifting the baseband up to a high RF frequency and transmitting it.












And on the receiving side, bring the high RF frequency down to baseband and give it to a DRM demodulator to playback error corrected crystal clear audio.














The spectrogram for DRM signals look very unique, when compared to other forms of modulation:





(ref: https://en.wikipedia.org/wiki/Digital_Radio_Mondiale )
(ref: http://www.drm.org/ )
(ref: http://www.etsi.org/technologies-clusters/technologies/broadcast/drm )
(ref: http://www.bbc.co.uk/rd/publications

No comments:

Post a Comment