Software-Defined Radio Digital Signal Processing Library - https://liquidsdr.org
liquid-dsp 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, complex mathematical operations, and much more.
Homepage
Download
Recent Releases
1.8.127 Jul 2026 03:15
minor bugfix:
Version 1.8.1 includes logic for runtime mode selection for distributing a
Generic binary for a particular platform and allowing selection of particular
Implementations based on the specific instruction set architecture available
on the host system. For example a build server can create a shared object that
Supports SSE, AVX, and AVX512 and deploy it to a system that only has SSE and
AVX support. Autotools support continues with as of yet full feature support.
This will likely be removed for version 2.0.0.
Also included is a constant struct with build information such as version, Git
Hash, date, and other compile-time and hardware acceleration options.
NOTE: AltiVec support is temporarily put on hold due to memory alignment.
Specifics that do not allow only run-time execution selection.
Build.
Typos and inconsistent formatting.
Consolidating configuration file to support both cmake and autotools.
Build environments.
Added option for strict compilation (treat warnings as errors).
Added compile-time build information (version, git hash, build OS.
Etc.) to binary.
With 'autoscript' target breaking cross-compilation.
And library install directory
With installation destination, 32-bit architectures, and.
Conditional autoscript builds
Core.
Added timer object for handling run-time execution testing.
Added cpuinfo struct to support compile-time/run-time mode deconfliction.
Added sysinfo struct to support run-time mode definition such as.
Hardware acceleration and core count. Would ideally include clock rate
or rough indication of processor capability.
Dotprod.
Added run-time mode selection for vector dot product, allowing for.
Distributed binary to operate across various architectures with
Instruction sets for acceleration
Filter.
Firdespm: long-standing out-of-bounds read element.
Firdespm: cleaning up deging macros.
Iirdes: ing with complex pair resolution.
Math.
Long-standing with poly/findroots out-of-bounds error.
Modem.
Apsk: with negative mod
1.8.008 Jun 2026 03:15
major feature:
Version 1.8.0 includes a new logging environment, macros for simplified
Argument parsing, enhancements for the CMake build
System, static and shared libraries, improved packaging, and increased test
Coverage.
Logging: introduced embedded logging functionality.
Supports global and custom logs with minimal computational overhead.
Selectable level at run-time to increase/decrease verbosity as needed.
Support for logging to files.
Color output for enhanced visibility (optionally disabled).
Compile time configurations for enhanced customization.
Autotest.
Refactored testing infrastructure to include test-specific metadata.
Estimated 'cost' (execution time), description, and keywords
Overhauled all tests to use new harness; tests now thread-safe and.
Statically defined
Increased testing: 1,300+ tests, 716,000+ checks, covering 82 of entire.
Project
Build.
Performed a static memory analysis test to substantially reduce memory.
Used on the stack in favor of dynamically allocating it on the stack;
Improves stability for multi-threaded processing
Introduced new argument parsing header to simplify creating variables.
Parsing command-line options, printing help, and validating results;
Refactored examples and removed over 2,000 lines of redundant code.
Added CMake rules to create exportable interface, option for building.
Shared vs. static library, and simplified directory inclusion
Annoying deprecation warnings.
Added generated pkg-config file.
Added support for building either/both static and shared libraries.
Adding separate option to find SIMD vs. use it with explicit options.
Cleaned up descriptions for most interfaces in header file.
Removed gentab (generated tables) from build environment; added.
Pre-generated source to version control
Cmake x86 SIMD detection.
Many typos via codespell.
Core.
New module to include core functionality to liquid-dsp including logging.
And error-handling
Error-handling macros moved to global header to allow global u
1.7.025 Feb 2025 13:41
major feature:
Version 1.7.0 includes support for the CMake build System. While the existing autotools environment will be supported for a time, This will be removed in a future release. This version also includes many changes to improve Testing coverage Across all interfaces, and make the interfaces across objects consistent. Build. Migrated to the CMake build system, including. Building examples, sandbox programs, benchmarks, autotests, and Detecting SIMD instruction extensions. Increased testing across the board including automated memory validation. With valgrind Detected and memory leaks for numerous methods and testing. Harnesses including `bessel_azpdf`, `ofdmflexframesync`, `qdsync`, `qs1dsearch`. `framesync64`, `eqrls`, and `fskdem`. Added new `LIQUID_ENOCONV` error type to identify errors where. Algorithms did not converge Added new `LIQUID_ENOIMP` error type to identify methods that are not. Yet implemented Replaced warnings with internal error handling for many existing object. Methods SONAME not set in shared library. Migrated README from markdown to re-structured text. Framing. Added more description to method definitions such as qpacketmodem and. Qdetector Dsssframe64: extended functionality to use qdsync, added standard. Methods such as copy(), added interfaces for specifying thresholds, Reduced default spreading gain Filter. Firinterp: added flush() method to run zeros through filter. Rresamp: allow for default bandwidth with an input of -1. Nco. Where frequency was being set improperly, added more. Extensive testing Improved the NCO object with VCO precision. Random. Added more extensive testing for various distributions to ensure values. Are generated properly
|