vrt-iq-tools is a collection of programs used for streaming IQ data using (a slightly modified variant of) libvrt, which in turn implements part of the ANSI/VITA 49.0 Radio Transport (VRT) standard. Most of the tools use VRT streams over ZMQ sockets.
This package needs much of libboost, libzmq, libfftw3 and libfftw3f. On a clean Ubuntu 22.04 system, these can be installed with:
apt install libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev libzmq3-dev libfftw3-dev libfftw3-single3
Optional dependencies:
librtlsdr-dev
for RTL-SDR supportlibuhd-dev
for UHD (USRP) supportlibgnuradio-pmt3.10.1
for gnuradio supportnvidia-cuda-toolkit-gcc
for GPU acceleration of some toolslibpsrdada
for DADA support, see installation instructions
git clone https://github.com/tftelkamp/vrt-iq-tools
cd vrt-iq-tools
mkdir build
cd build
cmake ..
make install -j
usrp_to_vrt
: Create VRT stream from an Ettus USRP SDR device (e.g. B210).rfspace_to_vrt
: Create VRT stream from RFSpace SDR device.rtlsdr_to_vrt
: Create VRT stream from RTL-SDR device.sigmf_to_vrt
: Create VRT stream from SigMF recording, or with--vrt
from a VRT recording.play_vrt
: Create VRT stream from SigMF recording, intended for transmitting.
vrt_to_sigmf
: Store IQ and metadata as SigMF recording, or with--vrt
as raw VRT.vrt_spectrum
: Create spectra, store in CSV or ECSV format (compatible with Astropy). With--gnuplot
, output can be piped to Gnuplot.vrt_to_filterbank
: Create spectra, store in sigproc filterbank format.vrt_rffft
: Create spectra and store in STRF format.vrt_fftmax
: Create spectra, store only the frequency of the bin with the maximum. Used for Doppler tracking.vrt_fftmax_quad
: Same asvrt_fftmax
but used for modulated signals.vrt_pulsar
: Channelize, dedisperse and fold pulsar data.
vrt_to_stdout
: Stream IQ to standard output. Useful for streaming to PhantomSDR.vrt_to_rtl_tcp
: Stream as 8-bit RTL-TCP stream.vrt_to_gnuradio
: Stream IQ to ZeroMQ socket to be used in GNURadio.vrt_to_fifo
: Write IQ to a fifo buffer.vrt_to_udp
: Stream IQ as fc32 UDP packets.vrt_to_dada
: Stream to a psrdada ring buffer, to be used with pulsar software such as dspsr.
vrt_metadata
: Print metadata of a VRT stream.vrt_forwarder
: Forward ZMQ stream.vrt_to_void
: Template for new clients.control_vrt
: Control devices, e.g. to set gain or frequency.