Difference between revisions of "ODR-DabMod"
| (20 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | ==About | + | ==About ODR-DabMod== |
| − | + | ODR-DabMod is the DAB OFDM modulator initially developed by Communication Research Center (CRC) from Canada, and subsequently forked | |
| − | + | by Opendigitalradio. | |
| − | Original version: | + | CRC have stopped releasing new versions. |
| + | The development is now pursued by opendigitalradio on [http://github.com/Opendigitalradio GitHub] with releases available as git tags. The git master branch always points to the latest release, the next branch is where development happens. | ||
| + | |||
| + | The main communication channel is the [https://groups.google.com/forum/#!forum/crc-mmbtools CRC-mmbTools Google Group mailing list] | ||
| + | |||
| + | Original CRC version [http://web.archive.org/web/20131031110313/http://mmbtools.crc.ca/content/view/44/71/ CRC-DabMod description and source code] archived on the MMBTools website | ||
==Description== | ==Description== | ||
| − | + | ODR-DabMod takes an [[Ensemble Transport Interface]] (ETI) stream as input and outputs a complex baseband stream of interlaced I/Q samples with a default sampling frequency of 2.048MHz. It can also directly drive SDR devices through Ettus' UHD driver, [https://github.com/pothosware/SoapySDR/wiki SoapySDR] and LimeSuite. | |
| − | + | Some devices require resampling to another sampling rate, which increases CPU requirements and can be done internally by ODR-DabMod. | |
==Build information== | ==Build information== | ||
| − | |||
| − | + | If you run debian, have a look at the [[Installer scripts]] | |
| − | + | ===Prerequisites=== | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | You will need boost at least version 1.54. The one from your distribution is probably fine, and if you have installed GNURadio or UHD, you will already have it. | |
| − | + | You need uhd and/or soapy (including drivers for your SDR device), don't forget to also install the -dev package from your distribution. | |
| − | + | You need a recent (4.0.4 or later) version of [http://zeromq.org/ ZeroMQ], preferably installed from your distribution's repository. Also don't forget the -dev package. | |
| − | |||
| − | + | ===Building odr-dabmod=== | |
| − | + | First get it via the package or git repository: | |
| − | + | git clone https://github.com/Opendigitalradio/ODR-DabMod | |
| + | cd ODR-DabMod | ||
| − | to | + | Build and install according to the instructions in the README. |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | to update to latest upstream: | |
| + | git pull | ||
| − | + | and do the bootstrap configure make again. | |
| − | === | + | ==Usage== |
| + | There are two ways of using ODR-DabMod: with a configuration file, and a smaller set of features is available through command line arguments. Use the -h option to see all options: | ||
| − | + | odr-dabmod -h | |
| − | + | For the configuration file, start with the example configuration inside the doc folder: [https://github.com/Opendigitalradio/ODR-DabMod/blob/master/doc/example.ini doc/example.ini] | |
| − | |||
| − | + | This example file describes and explains all supported settings. | |
| − | + | Several settings can be modified while the modulator is running by enabling the '''remotecontrol''', see [https://github.com/Opendigitalradio/ODR-DabMod/blob/master/doc/README-RC.md doc/README-RC.md] for more details. | |
| − | + | Once you have defined a configuration file (let's call it modulator.ini), you can call: | |
| − | |||
| − | |||
| − | + | odr-dabmod modulator.ini | |
| − | |||
| − | |||
| − | |||
| + | See also [[DAB hardware]] | ||
==Additional information concerning the options== | ==Additional information concerning the options== | ||
| − | -c, or dac_clk_rate: Pre-correction for the CIC filter in the USRP: | + | -c, or '''dac_clk_rate''': Pre-correction for the CIC filter in the USRP: |
This filter is used on the FPGA for up-sampling to 128MHz. | This filter is used on the FPGA for up-sampling to 128MHz. | ||
This pre-correction filter is only enabled when the -c option is used. | This pre-correction filter is only enabled when the -c option is used. | ||
| − | You should use -c128000000 for | + | You should use -c128000000 for the old USRP1 device only. |
| − | -g, or gainmode: Gain computation mode | + | -g, or '''gainmode''': Gain computation mode |
| − | The gainmode option controls how | + | The gainmode option controls how ODR-Dabmod computes the OFDM symbol gain. |
| − | mode 0 uses a fixed factor and is really not recommended. It is more | + | mode 0 (FIX) uses a fixed factor and is really not recommended. It is more |
useful on an academic perspective for people trying to understand the | useful on an academic perspective for people trying to understand the | ||
DAB modulation. | DAB modulation. | ||
| − | mode 1 is the normalization of every OFDM symbol. | + | mode 1 (MAX) is the normalization of every OFDM symbol. |
No overshoot, no truncating, but varying output power (around | No overshoot, no truncating, but varying output power (around | ||
3dB) which might not be the best for some power amplifier. | 3dB) which might not be the best for some power amplifier. | ||
| − | mode 2 uses the method specified in ETSI 300 798. This | + | mode 2 (VAR) uses the method specified in ETSI 300 798. This |
method normalizes to 4 times the standard deviation for an approximation | method normalizes to 4 times the standard deviation for an approximation | ||
of the RMS power. So around 6/100000 samples will be truncated and will | of the RMS power. So around 6/100000 samples will be truncated and will | ||
introduce some really minor distortion. But this mode also maximizes the | introduce some really minor distortion. But this mode also maximizes the | ||
output power. This is the gain mode recommended for real world operation | output power. This is the gain mode recommended for real world operation | ||
| − | as it is based on a DAB standard; the only difference is that | + | as it is based on a DAB standard; the only difference is that ODR-Dabmod |
uses a better resolution with 16 bits in place of 8 bits. | uses a better resolution with 16 bits in place of 8 bits. | ||
Latest revision as of 07:38, 7 April 2020
About ODR-DabMod
ODR-DabMod is the DAB OFDM modulator initially developed by Communication Research Center (CRC) from Canada, and subsequently forked by Opendigitalradio.
CRC have stopped releasing new versions. The development is now pursued by opendigitalradio on GitHub with releases available as git tags. The git master branch always points to the latest release, the next branch is where development happens.
The main communication channel is the CRC-mmbTools Google Group mailing list
Original CRC version CRC-DabMod description and source code archived on the MMBTools website
Description
ODR-DabMod takes an Ensemble Transport Interface (ETI) stream as input and outputs a complex baseband stream of interlaced I/Q samples with a default sampling frequency of 2.048MHz. It can also directly drive SDR devices through Ettus' UHD driver, SoapySDR and LimeSuite.
Some devices require resampling to another sampling rate, which increases CPU requirements and can be done internally by ODR-DabMod.
Build information
If you run debian, have a look at the Installer scripts
Prerequisites
You will need boost at least version 1.54. The one from your distribution is probably fine, and if you have installed GNURadio or UHD, you will already have it.
You need uhd and/or soapy (including drivers for your SDR device), don't forget to also install the -dev package from your distribution.
You need a recent (4.0.4 or later) version of ZeroMQ, preferably installed from your distribution's repository. Also don't forget the -dev package.
Building odr-dabmod
First get it via the package or git repository:
git clone https://github.com/Opendigitalradio/ODR-DabMod cd ODR-DabMod
Build and install according to the instructions in the README.
to update to latest upstream:
git pull
and do the bootstrap configure make again.
Usage
There are two ways of using ODR-DabMod: with a configuration file, and a smaller set of features is available through command line arguments. Use the -h option to see all options:
odr-dabmod -h
For the configuration file, start with the example configuration inside the doc folder: doc/example.ini
This example file describes and explains all supported settings.
Several settings can be modified while the modulator is running by enabling the remotecontrol, see doc/README-RC.md for more details.
Once you have defined a configuration file (let's call it modulator.ini), you can call:
odr-dabmod modulator.ini
See also DAB hardware
Additional information concerning the options
-c, or dac_clk_rate: Pre-correction for the CIC filter in the USRP:
This filter is used on the FPGA for up-sampling to 128MHz. This pre-correction filter is only enabled when the -c option is used. You should use -c128000000 for the old USRP1 device only.
-g, or gainmode: Gain computation mode
The gainmode option controls how ODR-Dabmod computes the OFDM symbol gain.
mode 0 (FIX) uses a fixed factor and is really not recommended. It is more useful on an academic perspective for people trying to understand the DAB modulation.
mode 1 (MAX) is the normalization of every OFDM symbol. No overshoot, no truncating, but varying output power (around 3dB) which might not be the best for some power amplifier.
mode 2 (VAR) uses the method specified in ETSI 300 798. This method normalizes to 4 times the standard deviation for an approximation of the RMS power. So around 6/100000 samples will be truncated and will introduce some really minor distortion. But this mode also maximizes the output power. This is the gain mode recommended for real world operation as it is based on a DAB standard; the only difference is that ODR-Dabmod uses a better resolution with 16 bits in place of 8 bits.
(Additional info taken from google groups discussion, originally written by Pascal Charest, CRC)