diff options
-rw-r--r-- | interfaces.tex | 20 | ||||
-rw-r--r-- | scenarios.tex | 87 |
2 files changed, 104 insertions, 3 deletions
diff --git a/interfaces.tex b/interfaces.tex index a008819..ef8fb71 100644 --- a/interfaces.tex +++ b/interfaces.tex @@ -1,5 +1,6 @@ \section{Interfacing the Tools} \subsection{Files} +\label{sec-files} The first versions of these tools used files and pipes to exchange data. For offline generation of a multiplex or a modulated I/Q, it is possible to generate all files separately, one after the other. @@ -111,6 +112,10 @@ This network connection is based on ZeroMQ, a library that permits the creation connection with automatic connection management (connection, disconnection, error handling). ZeroMQ uses a TCP/IP connection, and can therefore be used over any kind of IP networks. +This connection makes it possible to put the different tools on different computers, but it is not +necessary. It is also possible, and even encouraged to use this interconnection locally on the same +machine. + \subsubsection{Between Encoder and Multiplexer} Between fdk-aac-dabplus and ODR-DabMux, the ZeroMQ connection transmits AAC superframes, with @@ -121,8 +126,6 @@ makes more sense to calculate this in the encoder. The toolame-dab encoder also can send MPEG frames over ZeroMQ, but is not yet able to calculate and transmit audio level metadata yet. -\sidenote{Add configuration example for encoders} - On the multiplexer, the subchannel must be configured for ZeroMQ as follows: \begin{lstlisting} sub-fb { @@ -186,7 +189,7 @@ available in fdk-aac-dabplus, which insures that the encoder outputs the AAC bit nominal rate, aligned to the NTP-synchronised system time, and not to the sound card clock. The sound card clock error is compensated for inside the encoder. - +Complete examples of such a setup are given in the Scenarios. \subsubsection{Authentication Support} In order to be able to use the Internet as contribution network, some form of protection has to be @@ -207,4 +210,15 @@ to set up keys and to distribute them to the encoder and the multiplexer. \subsubsection{Between Multiplexer and Modulator} +The ZeroMQ connection can also be used to connect ODR-DabMux to one or more instances of ODR-DabMod. +One ZeroMQ frame contains four ETI frames, which guarantees that the modulator always assembles the +transmission frame in a correct way, even in Transmission Mode I, where four ETI frames are used +together. + \subsection{Pipes} + +Pipes are an older real-time method to connect several encoders to one multiplexer on the same +machine. It uses the same configuration as the file input but instead of using files, FIFOs, also +called ``named pipes'' are created first using \texttt{mkfifo}. + +This setup is deprecated in favour of the ZeroMQ interface. diff --git a/scenarios.tex b/scenarios.tex index 108d5a0..9362551 100644 --- a/scenarios.tex +++ b/scenarios.tex @@ -1,10 +1,97 @@ \section{Usage Scenarios} \subsection{Experimentation} \subsubsection{Creation of Non-Realtime Multiplex} +The creation of a ETI file containing two programmes, one DAB and one \dabplus{} is covered in +section \ref{sec-files}. + \subsubsection{Modulation of ETI for Offline Processing} +The ETI file generated before can then be used with ODR-DabMod to generate a file containing I/Q +samples. Here, we must chose between using the command line or the configuration file. For a very +simple example, using the command line makes sense, but for more advanced features it is preferable +to use a configuration file. For illustration, we will present both. + +To modulate the file \texttt{myfirst.eti} into \texttt{myfirst.iq}, with the default options, the +command is simply + +\begin{lstlisting} +odr-dabmod myfirst.eti -f myfirst.iq +\end{lstlisting} + +This will create a file containing 16-bit interleaved I/Q at $2048000$ samples per second. The +transmission mode is defined by the ETI file. + +The equivalent configuration file would be +\begin{lstlisting} +[input] +transport=file +source=myfirst.eti + +[output] +output=file + +[fileoutput] +filename=myfirst.iq +\end{lstlisting} + +This is a very minimal file that defines only the necessary settings equivalent to the above command +line options. The configuration file however supports more options that the command line, and +becomes easier to manager once the set becomes more complex. It is best to use the example +configuration availble in the \texttt{doc/} folder. \subsection{Interfacing Hardware Devices} \subsubsection{Ettus USRP} +ODR-DabMod integrates support for the UHD library that can interface with all USRP devices from +Ettus. The following configuration file illustrates how to send the \texttt{myfirst.eti} over a USRP +B200 on channel 13C: + +\begin{lstlisting} +[remotecontrol] +telnet=1 +telnetport=2121 + +[input] +transport=file +source=myfirst.eti +loop=1 + +[modulator] +gainmode=2 +digital_gain=0.8 + +[firfilter] +enabled=1 +filtertapsfile=simple_taps.txt + +[output] +output=uhd + +[uhdoutput] +master_clock_rate=32768000 +type=b200 +txgain=40 +channel=13C +\end{lstlisting} + +This example also shows more options that the example for the file output: + +\begin{itemize} + \item \texttt{remotecontrol telnet=1} enables the Telnet server that can be used to set + parameters while the modulator is running. + \item \texttt{loop=1} rewinds the input file when the end is reached. The same ETI file will be + transmitted over and over. + \item \texttt{gainmode=2} sets the GainMode to VAR, which reduces overshoots in the output. + \item \texttt{digital\_gain=0.8} reduces the output sample deviation, to reduce compression in + the USRP. + \item \texttt{firfilter enabled=1} enables an additional FIR filter to improve the spectrum + mask. + \item \texttt{master\_clock\_rate=32768000} sets the USRP internal clock to a multiple of + $2048000$, which is required if we want to use the native DAB sample rate. + \item \texttt{txgain=40} Sets the analog transmit gain of the USRP to 40dB, which is specific to + the B200. +\end{itemize} + +Some of these options are not necessary for the system to work, but they improve the performance. + \subsubsection{Other Hardware} \subsection{Audio sources} |