Gstreamer Quadrature Library

Back

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

Download

Download version 0.2:
libgstiq-0.2.tar.gz

Previous versions:
libgstiq-0.1.tar.gz

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)

Dependencies

You need to have the fftw library installed. You can download it at http://www.fftw.org. Make sure you have atleast the float version installed.

Datatypes

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:

NameDescription
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.
iqcmplx

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:

audio/x-complex-float
channels=1
complex float
float float
Real Imaginary
Inphase Quadrature
audio/x-raw-float
channels=2
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.
vectorscope

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

waterfall

Generates a visual waterfall from fft data.

Example programs:

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

Jeroen Vreeken, pe1rxq@amsat.org