ODR-DabMod
CRC-DabMod is the DAB OFDM modulator command developed by Communication Research Center (CRC) from Canada. It is now published in open source with a gnu GPLv3 license.
- CRC-DabMod description and source code on MMBTools website
CRC-DabMod take an ETI (Ensemble Transport Interface) stream as input and output a complex baseband stream of interlaced 16 bits I/Q samples with a default sampling frequency of 2.048MHz.
Resampling is the cause of high CPU usage but cannot be avoided to match with USRP sampling limitation. One possiblity could be to change the clock of the USRP1.
Example:
CRC-DabMod ./racor.eti -l -g1 -r3200000
get racor.eti file, perform OFDM modulation on baseband at a sampling frequency of 3.2MHz. Output is sent to the standard output if not redirected or piped to another command (CRC-Dwap.py in general)
Build information
When building from the source code, be careful to disable debugging, otherwise there will be lot of wasted CPU usage:
./configure --with-debug-malloc=no --disable-debug
Usage
Usage:
CRC-DabMod [input [output]] [-c clockrate] [-f] [-g gainMode] [-h] [-r samplingRate] Where: input: ETI input filename (default: stdin). output: COFDM output filename (default: stdout). -c: Set the DAC clock rate. -f: (deprecated) Set fifo input. -g: Set computation gain mode: 0 FIX, 1 MAX, 2 VAR -h: Print this help. -l: Loop file when reach end of file. -r: Set output sampling rate (default: 2048000).
Additional information concerning the command-line options
-c: 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 regular USRP1 only.
-g: Gain computation mode
The -g option controls how CRC-Dabmod computes the OFDM symbol gain.
-g 0 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.
-g 1 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.
-g 2 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 CRC-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)