Gstreamer Quadrature Library


libgstiq is a library with Gstreamer plugins for use in software defined radios.


Download version 0.2:

Previous versions:

1200 Baud BPSK-RC test data:
Oscar-16 pass on November 11 2006 (FLAC format)
Very bad Oscar-16 pass on June 15 2005 (WAV format)


You need to have the fftw library installed. You can download it at Make sure you have atleast the float version installed.


libgstiq uses several new datatypes (besides the common audio and video types):

Media typeDescription
audio/x-complex-float This is the main type of libgstiq. It consists of complex float samples. (Two 32 bit float samples representing the two components of a quadrature signal)
audio/x-polar-float This is a polar representation of the complex type. It consists of two float samples, the first is the absolute value of the sample, the second its angle in radians.
audio/x-fft-float This is a frequency domain representation. It consists of blocks of a fixed length with complex float values. The new 'length' property determines the length of the fft conversion.
application/x-raw-float Used for demodulated bitstreams. Each bit is represented using a float value.
application/x-tnc-kiss Packetized AX.25 data stream in KISS format.

The following software defined radio related modules are available:

afc Searches for the 'center' in audio/x-fft-float blocks. The center frequency can be read as the 'afc' property. The property 'mirror' can be used to prevent scanning of the negative frequencies when a mirrored (real instead of complex) signal is used.
bpskrcdem Demodulates a BPSK-RC (Binairy Phase Shift Keying, Raised Cosine) signal into separate bits.
bpskrcmod Modulates a BPSK-RC (Binairy Phase Shift Keying, Raised Cosine) signal from separate bits.
cmplxfft Performs an FFT conversion on a audio/x-complex-float stream. The FFT length can be set as a property of the resulting audio/x-fft-float stream.
firblock A simple FIR rectangular filter.
iqamdem Demodulates AM signals. The 'depth' property can be used to set the standard modulation depth.

Converts between a stereo audio/x-raw-float signal and the audio/x-complex-float signal.

Basicly it just renames data and doesn't change it. The following formats are interchangeable:

complex float
float float
Real Imaginary
Inphase Quadrature
Left Right

iqfmdem Demodulates FM signals. The 'deviation' property can be used to set the standard deviation.
iqfshift Shifts a complex quadrature signal in frequency. The shift can be set with the 'shift' property.
iqpolar Converts from the audio/x-complex-float vector format to the audio/x-polar-float polar format.
kissnrzi AX.25 to NRZI encoder with KISS input.
manchestermod Manchester modulator.
nrzikiss NRZI to AX.25 decoder with KISS output.

Generates a visual representation of complex data. (Also usable as an XY scope for normal data)


Generates a visual waterfall from fft data.

Example programs:

murx is a multi use(r) receiver that uses this library.

Jeroen Vreeken,