aboutsummaryrefslogtreecommitdiffstats
path: root/introduction.tex
diff options
context:
space:
mode:
Diffstat (limited to 'introduction.tex')
-rw-r--r--introduction.tex53
1 files changed, 50 insertions, 3 deletions
diff --git a/introduction.tex b/introduction.tex
index b80fb93..849849d 100644
--- a/introduction.tex
+++ b/introduction.tex
@@ -3,6 +3,18 @@ This is the official documentation for the \mmbtools. These tools can be used to
experiment with DAB modulation, learn the techniques behind it and setup a DAB
or \dabplus transmitter.
+This documentation assumes that you are already familiar with base concepts of
+the DAB system. To get started with the \mmbtools, understanding how the DAB
+transmission chain is structured is a prerequisite. The ``DAB Bible'' by Hoeg
+and Lauterbach~\cite{hoeg} and the ``Guide to DAB standards'' from the
+ETSI~\cite{etsidabguide} can be used as a starting point.
+
+In this document, the terms ``DAB'' and ``\dabplus'' are used somewhat
+interchangeably, since many parts of the transmission chain are identical
+between the two variants. In most cases, ``DAB'' will be used, and ``\dabplus''
+when talking about specific details about the newer version of the standard.
+
+
\section{Purpose}
The different programs that are part of the \mmbtools each have their own
documentation regarding command-line options and configuration settings, and the
@@ -68,13 +80,48 @@ The \mmbtools contain the tools \mbox{ODR-DabMux}, \mbox{ODR-DabMod},
that are useful for the setup of a transmission chain.
\subsubsection{ODR-DabMux}
-ODR-DabMux implements a multiplexer that is conforming to the DAB
-standard~\cite{etsidab}.
+ODR-DabMux implements a DAB multiplexer that combines all audio and data inputs
+into an ETI output. It can be used off-line (i.e.~not real-time) to generate ETI
+data for later processing, or in a real-time streaming scenario (e.g.~in a
+transmitter).
+
+It can read input audio or data from files (``.mp2'' for DAB, ``.dabp'' for
+\dabplus), FIFOs (also called ``named pipes'') or a network connection. The
+network connection can use UDP or ZeroMQ. The CURVE authentication mechanism
+from ZeroMQ can also be used to authenticate the encoder, in order to avoid that
+a third-party can disrupt or hijack a programme.
+
+The ensemble configuration can be specified on the command line using the
+options described in the manpage, or using a configuration file. The command
+line options are kept to be compatible with CRC-DABMUX, but using the
+configuration file is preferred, because it supports more options.
+
\subsubsection{ODR-DabMod}
+ODR-DabMod is a software-defined DAB modulator that receives or reads ETI, and
+generates modulated I/Q data usable for transmission.
+
+This I/Q data which is encoded as complex floats (32bits per complex sample) can
+be written to a file or pipe, or sent to a USRP device using the integrated UHD
+output. Other SDR platforms can be used if they are able to accept the I/Q data.
+The output of the modulator can also be used in GNURadio if format conversion or
+graphical analysis (spectrum) is to be done.
+
\subsubsection{toolame-dab}
+TooLAME is a MPEG-1 Layer II audio encoder that is used to encode audio for the
+DAB standard. The original project has been unmaintained since 2003, but the
+twolame fork that pursues the development removed the DAB framing.
+
+The toolame-dab fork includes the ZeroMQ output and PAD insertion support, but
+the audio coder is the same as the one in tooLAME.
+
\subsubsection{fdk-aac-dabplus}
-\subsubsection{mmbtools-aux}
+The fdk-aac-dabplus encoder can be used to encode for \dabplus. The encoder
+itself comes from the Android sources, and was written by Fraunhofer.
+
+The necessary framing and error-correction that \dabplus mandates, the PAD
+insertion, the ZeroMQ output and the ALSA input were then added by different
+parties.