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-single3Optional dependencies:
librtlsdr-devfor RTL-SDR supportlibuhd-devfor UHD (USRP) supportlibiio-devandlibad9361-devfor IIO (PLUTO) supportlibgnuradio-pmt3.10.1for gnuradio supportnvidia-cuda-toolkit-gccfor GPU acceleration of some toolslibpsrdadafor 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 -jusrp_to_vrt: Create VRT stream from an Ettus USRP SDR device (e.g. B210). Also supports transmit.rfspace_to_vrt: Create VRT stream from RFSpace SDR device.rtlsdr_to_vrt: Create VRT stream from RTL-SDR device.airspy_to_vrt: Create VRT stream from Airspy R2 and mini device.iio_to_vrt: Create VRT stream from an IIO device, such as the ADALM-PLUTO.sigmf_to_vrt: Create VRT stream from SigMF recording, or with--vrtfrom 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--vrtas raw VRT.vrt_spectrum: Create spectra, store in CSV or ECSV format (compatible with Astropy). With--gnuplot, output can be piped to Gnuplot. With--fftmaxyou can show only the frequency of the bin with the maximum. Used for Doppler tracking. Options--twoand--fourto square and double square the signal before making a spectrum.vrt_to_filterbank: Create spectra, store in sigproc filterbank format.vrt_rffft: Create spectra and store in STRF format.vrt_pulsar: Channelize, dedisperse and fold pulsar data.vrt_tuner: Extract a sub-band from a VRT stream.vrt_channelizer: Polyphase Channelizer, extracts all sub-bands from a VRT stream.vrt_merge: Merges two VRT streams into a single synchronized stream with two channels. Requires equal timestamps in the streams.vrt_quantize: 1-bit quantization of a VRT stream.vrt_correlate: Create cross-spectrum of two channels.
vrt_gpu_fftmax: Create spectra, store only the frequency of the bin with the maximum. Used for Doppler tracking.vrt_gpu_channelizer: Polyphase GPU Channelizer, extracts all sub-bands from a VRT stream.
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 and connection testing.control_vrt: Control devices, e.g. to set gain or frequency.