Introduction on DAB/DAB+
DAB, DAB+ and T-DMB European digital radio and mobile television standards share the same transmission system. It's based on OFDM modulation and uses 1.5MHz of spectrum in the VHF television band 3 (or L-band in SHF). A transmitter is broadcasting a set of programmes, called a multiplex or ensemble. The system has been designed for mobile use and is robust up to 300km/h.
With the development of the mmbTools by CRC and opendigitalradio, it is now possible to run a full transmission infrastructure on a laptop running Linux and using a USRP as RF hardware (with gnuradio) or any other similar device.
The transmission chain can be divided in 4 parts:
- The Encoder encodes the audio source to MPEG-2 Layer II for DAB, MPEG-4 HE-AACv2 for DAB+ or video in MPEG-4 H.264 for T-DMB.
- The Multiplexer gathers different streams, produces necessary signalling and outputs a single 2048kbit/s stream in ETI format (Ensemble Transport Interface).
- The Modulator takes the ETI stream and produces a complex I/Q baseband OFDM signal ready for up-conversion to the desired radio frequency.
- The RF transmission is performed by the USRP, a HackRF One or a similar device.
The ODR-Tools comprises two encoders: Toolame and fdk-aac-dabplus; it includes a multiplexer ODR-DabMux and a modulator ODR-DabMod.
Thanks to the modular approach from these tools it is possible to interface them with other implementations and tools.
How to get started
Let's say you want to learn about DAB transmission and set up a laboratory transmitter that you can use to experiment, gain better understanding, test ideas, evaluate receivers or do measurements.
A will need:
- Some Linux system knowledge.
- A recent PC running Debian stable: http://debian.org
- A USRP (B200, B100, USRP2 and USRP1 are tested to work. The others should be fine too, no guarantees.)
- To read documentation:
- Read http://en.wikipedia.org/wiki/Digital_audio_broadcasting.
- Have a look at ETSI EN 300 401 to understand DAB better.
- Maybe also ETSI ETS 300 799 defines the ETI interface between multiplexer and modulator.
- Read the guide http://mpb.li/pub/mmbtools.pdf which is still a work in progress.
- Read the pages about the ODR-mmbTools listed below.
- To install the required tools on the Debian Linux PC. The Installer scripts will simplify this a lot.
- Have a look at the example mux and mod configurations in the respective doc/ folders and in mmbtools-aux.
- And of course, a DAB receiver.
The best way to discover these scripts is to start step-by-step. Once you have installed the tools, work your way up from the encoder to the multiplexer, and finally to the I/Q modulator.
- Using fdk-aac-dabplus, prepare one or more AAC-encoded .dabp audio files using some .wav files.
- Create a configuration file for ODR-DabMux, using doc/example.mux as a base. Use the .dabp files as input and limit the duration of the ETI file to a few thousand frames (a couple of minutes worth of data).
- Using ODR-DabMux with this configuration, create a RAW ETI file containing your multiplex.
- If you want, compile etisnoop and analyse the ETI file.
- Use ODR-DabMod to modulate this ETI file and create an I/Q file.
Once this works, try to get all tools running simultaneously, interconnected using ZeroMQ.
Good luck, and don't transmit without a license !
Other users and developers are reachable on the crc-mmbtools google group: https://groups.google.com/forum/#!forum/crc-mmbtools