Introduction to Digital Radio

Talking about DAB and talking about DRM means talking about Digital Radio. Of course the radio signals themselves are still analog, it is the content that is digital. The advantage of having digital content is obvious, anything that can be expressed as a sequence of bits - audio, video, pictures, websites etc etc - can be transmitted. In DAB, Digital Audio Broadcasting, audio services carry usually text, pictures and sometimes complete websites with them.

The downside is of course that the receiver is (far) more complex than that for e.g. AM or FM. Listening to digital radio with a crystal receiver, or an old fashioned receiver with glowing tubes does not make much sense then: radio technique is changing.

On the receiving side we have to do things on two levels. First of all we have to convert an analog signal into bits and second, we have to interpret the bits.

Of course there are different ways to implement digital radio. There are a few standards for the implementation of digital radio that are applied in different parts of the world. Europe and Australia have embraced the afore mentioned DAB (or better DAB+), some african and asian countries experiment - and implement - DRM, Digital Radio Mondiale, while the US have their own system.

Digital Radio: a note on the underlying technique

Most systems for digital radio share a single underlying principle for the transmitting of bits. The principle is based on OFDM, Orthogonal Frequency Division Modulation. While that sounds complicated, it is - at least in principle - simple.

We start with a vector of digital data (encoded as complex numbers). We consider the data elements to be "carriers", i.e. elements in the frequency domain. We apply an inverse FFT operation on these carriers. As known, applying an inverse FFT operation to elements in the frequency domain creates the FFT-ed elements in the time domain. Usually, the vector of carriers is extended by adding some null carriers at both sides.

For protection, basically to add redundancy, each vector resulting from the inverse FFT operation is extended (preceded)by a so called cyclic prefix. This prefix consists of copies of the last N elements of the vector.

So, as an example, if we started with a vector of say 1536 carriers, as is the case for DAB, we extend the vector to 2048 carriers by adding 256 carriers to each side of the vector. The FFT operation generates a vector of 2048 time domain elements. We make a copy of the last 504 elements of output of the FFT operation. put that in fromt of the vector of 2048 elements resulting in a vector of 2552 elements.

The extended vector, in this example 2552 complex values, are then fed into an DA converter, the result of which is mixed with a signal to shift the frequency. and the resulting analog signal is amplified and fed into some antenna system.


A receiver for digital radio obviously has to take the reverse route. We assume we have a device that is able to tune to a given frequency, shift the signal frequency to an IF of 0, and feed the signal to an AD converter. The software at the receiver side then collects the samples, in the example above 2552 samples per group, removed the cyclic prefix, feeds the vecctor - in the example 2048 complex values - into an FFT process, and takes from the result the 1536 carriers by eliminating the null carriers. The result then is the basis for extracting bits and interpreting the signal.

There are some details though that need some attention at the receiver side. The transmitter sends blocks of data, and on the receiver side we need to figure out where such block can be found in this samplestream. In most cases, we make use of the aforementioned cyclic prefix. Since the prefix elements are copies of elements at the end of the vector, we apply correlation to detect the start. As soon as the correlation between a sequence of elements with length of cyclic prefix with a sequence of elements furtheron is maximal, we "know" where the data in the block is starting.

Once we can identify the start of blocks in the incoming sample stream, we collect a vector of elements and apply an FFT transform to get carriers back.

One of the drawbacks of the OFDM approach is the sensitivity to frequency errors. Consider the case of a frequency error in the incoming data stream. If the offset of the frequency is sufficiently large, the carriers, resulting from the FFT operation are just wrong. It might be the case that the value found as value of carrier i is axrually the value for carrier i + 1. Such as error makes it obviously impossible to extract the right bits.

In the front end part of a receiver for digital radio, lots of attention is (to be) paid to synchronization, both time and frequency.

Of course, the the value of the carriers obtained from the FFT operation is modified by the transmission channel. Both amplitude and phase can be altered by the transmission. Therefore, quite some processing might have to be done in the actual extraction of bits. How this is done depends on the type of digital radio.

A note on decoding DAB

DAB decoding is based on processing 2048000 complex samples per second. The samplestream is logically partitioned in so-called DAB frames, each taking 199608 samples.

A DAB decoder first has to locate the position of the frames in the input stream. DAB makes that relatively easy by starting each DAB frame with a period of app 2600 samples with almost no signal, followed by 76 logical blocks of data, each consisting of 2552 samples. The software therefore has to look into the input stream for the point where the amplitude of the signal switches from very low to higher.

The first data block contains predefined data, such that the precise position of the first sample of the first datablock in the stream can be located by applying a form of correlation.

Using the result of the correlation, the position of the different data blocks is easy to determine. Using the data in these blocks, the offset in frequency can also be determined.

Of course the different data blocks have to be subjected to an FFT operation (after removal of the cyclic prefix), mapping the time domain samples into carriers.

For data decoding, DAB takes a - relatively - easy approach. The basic assumption is that the changes to the carriers is over a short period more or less the same, and the value from which the bits are extracted is the phase difference between carriers on the same position in subsequent blocks. Each phase difference is then translated into 2 bits.

A note on decoding DRM

DRM decoding is based on processing 12000 complex samples per second. The samplestream is logically partitioned in so-called DRM blocks, each taking, for the most common DRM mode, 320 samples.

Contrary to DAB, a DRM sample stream does not contain a marker such as DAB, where the amplitude of the signal gives a good hint where to look for the start of a frame or block. In DRm the position of the DRM blocks have to be determined using correlation. DRM has 4 modes, with different sizes for the cyclic prefix and the data segment and sometimes for the size of the DRM blocks.

Of course, having determined the start of a block makes it easy to find the following blocks. However, there might be a small difference in the clocks of the transmitter and the AD converter. Even with a difference of 1 micro second per sample means that after app a million samples the offset is at least one sample.

As with DAB, once the data blocks ar eidentified in the data stream, and once frequency correction - if needed - is applied, the data blocks are - after removal of the cyclic prefix - subjected to an FFT translation and mapped onto blocks with carriers.

For the data decoding uses DRM coherent demodulation. It can be expected that due to channel over which the data is transported, both the phase and the amplitude of the carriers differ from that what they were at the transmitter side. The software at the receiver side then should recreate the carrier value (both phase and amplitude) as it was at the transmitter's side. Carrier values in DRM are encoded as QAM4, QAM16 or QAM64, for resp. 2, 4 and 6 bits. This requires some processing.