path: root/scenarios.tex
diff options
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-03-06 09:23:36 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-03-06 09:23:36 +0100
commit0d6faa6334427ccb20119c4ea639072de551f3a0 (patch)
tree8cc5717274b99597c7de49f343f823c8ad24ad10 /scenarios.tex
parentf7404aeea93f4e87a442c6deaa333289216b52c8 (diff)
Add Rashid's HackRF documentation
Diffstat (limited to 'scenarios.tex')
1 files changed, 69 insertions, 8 deletions
diff --git a/scenarios.tex b/scenarios.tex
index bccc8a3..2648ac1 100644
--- a/scenarios.tex
+++ b/scenarios.tex
@@ -131,32 +131,93 @@ it in steps of $3$dB or smaller while measuring the output signal, until the
correct power is reached.
\subsubsection{Other Hardware}
-The HackRF can also be used as a transmit platform. It's interfacing is not
-integrated with ODR-DabMod, and it only supports 8-bit samples. The
-configuration is a bit different. First, we must output signed 8-bit interleaved
-I/Q samples instead of 32-bit interleaved floats, and second, we cannot use UHD,
-but must go through a pipe to HackRF. The output settings inside the
-configuration are as shown:
+ODR-DabMod supports other radio interfaces using either standard output, or via
+a fifo -- the latter must be created prior to runtime with the \texttt{mkfifo} command.
+Due to limitations in the UHD driver library, \texttt{/dev/stdout} will only
+function correctly if ODR-DabMod is configured at compilation time with the
+following argument:
+ODR-DabMod has been tested to work with HackRF from Great Scott Gadgets on i386
+and x86 architectures.\footnote{HackRF has not been tested to any degree of
+ success with ARM-based computers at this time as they do not (yet) capable
+ of resampling to the required higher rates as the process is highly CPU
+ intensive.}
+The unit is an entry level yet versatile SDR which
+provides for $\approx10$MHz to $6$GHz frequency coverage. To use HackRF one must
+configure the output of ODR-DabMod to produce 8-bit signed integers, rather
+than the default complex floats.
+HackRF has selectable baseband filters, however the lowest filter setting
+($1.75$MHz) does not provide adequate image rejection at the native sampling rate of
+$2048$k samples per second. An appropriate rate to start with is $4096$k, and for
+some purposes this may well be adequate as this moves the image signals
+generated within the radio far enough into the stop-band of filter to attenuate
+them significantly. The digital gain in the ODR-DabMod configuration file should
+be set to a maximum of $2.4$ at this rate to avoid digital clipping on modulation
+Example of the settings in the \texttt{mod.ini} file suitable for use with HackRF:
The output fifo has to be created beforehand, and the \texttt{hackrf\_transfer}
utility is then used to transmit the signal to the device. The options needed
for the transmission utility are not complete yet. The rough idea would be:
+Depending on the capabilities of the host computer, using higher sampling rates
+($6144$k, and even $8192$k) may be possible. This oversampling is desirable as
+it helps to produce a cleaner spectral output. At higher rates one needs to
+ensure that samples are not being dropped on the USB and that CPU resources are
+not being contended. It is also important to note that the digital gain value
+must also be scaled accordingly as the sampling rate is increased.
+HackRF has been measured with shoulder performance at $\approx 35$dB, which is roughly
+equivalent to that obtained from first generation commercial modulators. This
+can be increased to a relatively respectable $\approx 40$dB by enabling the FIR filter
+in ODR-DabMod, and an appropriate coefficient file provided.
+Example of using ODR-DabMod with the \texttt{hackrf\_transfer} utility:
mkfifo /tmp/ofdm.fifo
odr-dabmod mod.ini &
-hackrf_transfer -f <frequency> -t /tmp/odr.fifo
+hackrf_transfer -t /tmp/ofdm.fifo -f 216928000 -x 47 \
+ -a 1 -s 4096000 -b 1750000
\subsection{Audio Sources}
Preparing a DAB multiplex with different programmes requires that we are able to
read and encode several audio sources. This audio data can reach the multiplexer