Home  |   Deutsch  |  Gordon  |  Radionetworkprocessor  |  Self Language  |  Engineering Consulting  

Mouse Homepage


Open DVB Implementation


Open DVB
Octave Frontend
Online STA Core-Generator



Open-DVB is an open implementation of digital video broadcasting (DVB) distributed under the BSD license . The purpose of this application is to serve as a benchmark for our compiler system.

Currently, the signal processing portion of terrestrial transmission (DVB-T) according to ETSI standard EN 300 744 V1.4.1 is implemented. The system is able to send and receive with 2k carriers in 16-QAM mode. It runs under Matlab , Octave , and our Octave-Frontend .


The current version 0.4 can be downloaded here .

Sample MPEG-2 transport streams for testing the algorithms can be found here .

Installation Instructions

  1. Unpack the code. The distribution contains the subdirectories called 'dvbt', 'kammeyer', 'common', 'octave', 'matlab', and 'ref'. The sample transport streams create additional subdirectories in 'ref'.
  2. For execution on Matlab, place 'dvbt', 'kammeyer', 'common', and 'matlab' on your search path. You may use the file 'startup.m' as a template.
  3. For execution on Octave or the Octave-Frontend, place 'dvbt', 'kammeyer', 'common', 'octave' on your search path. Edit the file '.octaverc'.
  4. Edit the file 'dvbt/dump_open.m'. 'ref_dir' is the location where testbenches look for reference data, it should point to the 'ref' directory included in the distribution. 'test_dir' is the place where many dump files will be created.

Now, you can run the following testbenches:

Testbench Name Description
The entire DVB-T send and receive pipeline. This test requires the MPEG transport streams as test data.
itx_tb.m This test checks the Open-DVB receiver against the sender by Giuseppe Baruffa . Does not run through at the moment.
scrambler_tb.m Tests the scrambler/descrambler subsystem.
rs_tb.m Tests the Reed/Solomon encoder and decoder.
outer_interleaver_tb.m Tests the outer interleaver/deinterleaver, a convolutional interleaving subsystem.
convolutional_tb.m Tests the convolutional coding subsystem. It works with Kammeyer's Viterbi implementation .
inner_interleaver_tb.m Tests the inner interleaver/deinterleaver, a block interleaving subsystem.
map_tb.m Test the mapper/demapper. It performs QAM coding.
reference_signals_tb.m Tests the insertion and removal of reference signals.
ofdm_tb.m Tests the OFDM encoder/decoder.
gf_tb.m Tests Galois arithmetics used by Reed/Solomon.
scrambler_prbs_tb.m Checks the pseudo-random bit sequence generator used by the scrambler.


Thanks to Prof. Kammeyer and Dr. Kühn for the contribution of their implementation of an Viterbi encoder and decoder.
A detailed explanation of the algorithm can be found in their book Matlab in der Nachrichtentechnik, J. Schlembach-Verlag, Weil der Stadt, Germany, 2001 . This book contains a well sorted library of standard signal-processing functions written in Matlab.
Thanks to Dr. Dagmar Schönfeld for her valuable help with the implementation of the Reed-Solomon decoder.
A comprehensive introduction into Reed-Solomon codes can be found in the book Informations- und Kodierungstheorie. B. G. Teubner Verlag, Stuttgart, Germany, 2003 . by Klimant, Piotraschke, and Schönfeld.


Contributions and feature enhancements are welcome. Please submit to gordoncichon@gmail.com.

You may also visit the freshmeat project page .

© 1997-2019 Gordon Cichon - Contact