Background & History

Keywords: background history

liquid is a free and open-source digital signal processing (DSP) library designed specifically for software-defined radios on embedded platforms. The aim is to provide a lightweight DSP library that does not rely on a myriad of external dependencies or proprietary and otherwise cumbersome frameworks. All signal processing elements are designed to be flexible, scalable, and dynamic, including filters, filter design, oscillators, modems, synchronizers, and complex mathematical operations. The source for liquid is written entirely in C so that it can be compiled quickly with a low memory footprint and easily deployed on embedded platforms.

liquid was created by Joseph Gaeddert in 2007 at Virginia Tech out of necessity to perform complex digital signal processing algorithms on embedded devices with a low memory footprint and little computational overhead. This was a critical step in his PhD thesis to adapt DSP algorithms in cognitive dynamic-spectrum radios to optimally manage finite radio resources. The project was created as a lightweight library to be used in embedded platforms were minimizing overhead is critical. You will notice that liquid lacks any sort of underlying framework for connecting signal processing "blocks" or "components." The design was chosen because each application requires the signal processing block to be redesigned and recompiled for each application anyway so the notion of a reconfigurable framework is, for the most part, a flawed concept.

In liquid there is no model for passing data between structures, no generic interface for data abstraction, no customized/proprietary data types, no framework for handling memory management; this responsibility is left to the designer, and as a consequence the library provides very little computational overhead. This package does not provide graphical user interfaces, component models, or debugging tools; liquid is simply a collection raw signal processing modules providing flexibility in algorithm development for wireless communications at the physical layer.