skillfed

doppler-dsp

Practical, portable, performant digital signal processing.

doppler-dsp v0.42.0 73.7K downloads/30d#14,940 on PyPI1
Permissive license MIT Active released

What it is and what it does

Doppler is a C99 digital signal processing library wrapped for Python, implementing core DSP algorithms (FFT, FIR, NCO, polyphase resampling, DDC, AGC) with support for file, buffer, and NATS-based streaming. The Python layer is a thin type-conversion and lifetime-bridging wrapper around a single C implementation, so bugs are fixed once and performance reflects real hardware. It includes a scenario-driven waveform generator (wfmgen) with byte-identical behavior across CLI, Python, and C interfaces.

The package targets signal processing, software-defined radio (SDR), and scientific computing workflows where both performance and language flexibility matter. It depends only on numpy at runtime and provides pre-built wheels for Python 3.9–3.14 on macOS ARM64 and Linux x86_64/aarch64, reducing installation friction for common platforms.

Use it for:

  • Compute FFTs and apply FIR filters to complex signal streams in real-time DSP pipelines.
  • Generate test waveforms (QPSK, etc.) with controlled SNR for signal processing validation.
  • Build SDR applications combining NCO tuning, resampling, and DDC in a single library.
  • Stream DSP results to NATS brokers for distributed signal monitoring and analysis.
  • Prototype DSP algorithms in Python with the same performance and behavior as the C implementation.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a C99 digital signal processing library with Python bindings, offering FFT, FIR filters, NCO, polyphase resampling, DDC, AGC, and waveform generation with file, buffer, and NATS-based streaming.

Yes, if you need performant DSP primitives in Python with a proven C core. The active maintenance, MIT license, no known vulnerabilities, and single lightweight runtime dependency make it low-risk. Medium install friction is offset by pre-built wheels for modern Python versions. Best suited for signal processing, SDR, and scientific computing; less relevant for general-purpose applications.

Install

doppler-dsp on PyPI

pip

pip install doppler-dsp

uv

uv add doppler-dsp

poetry

poetry add doppler-dsp

Installing doppler-dsp

Before you install

Medium friction due to compiled wheels for multiple Python versions and architectures. Active maintenance with a release 7 days ago and recent commits. Single runtime dependency on numpy.

License in practice

MIT license is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

Quickstart

pip install doppler-dsp

from doppler.spectral import FFT
import numpy as np

x = np.random.randn(1024).astype(np.complex64)
X = FFT(1024).execute_cf32(x)

Requires Python 3.9 or later; pre-built wheels available for Python 3.9–3.14 on macOS ARM64 and Linux x86_64/aarch64.

Verify before relying

  • Whether the NATS streaming component (libdoppler_stream) is included in the PyPI wheel or requires separate installation.
  • Performance characteristics on specific hardware platforms beyond the Ryzen 7 AI 350 example.
  • Whether byte-identical CLI/Python/C parity is maintained across all algorithms or only specific ones.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies 1 — numpy
Maintenance actively maintained — 7 days since the last release
Last repo commit
First released
Downloads 73,729/month — #14,940 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: doppler_dsp-0.42.0-cp310-cp310-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; doppler_dsp-0.42.0-cp311-cp311-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; doppler_dsp-0.42.0-cp312-cp312-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; doppler_dsp-0.42.0-cp313-cp313-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; doppler_dsp-0.42.0-cp314-cp314-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; doppler_dsp-0.42.0-cp39-cp39-macosx_11_0_arm64.whl; doppler_dsp-0.42.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; doppler_dsp-0.42.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Keywords: dsp, sdr, fft, fir, nco, signal-processing, nats, iq

Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseProgramming Language :: CProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: Scientific/EngineeringTopic :: Software Development :: LibrariesTopic :: System :: Hardware :: Hardware Drivers

Tags

digital signal processing libraryFFT and FIR filteringDSP waveform generationsignal processing with Pythonreal-time DSP streamingNCO and resamplingSDR signal processing
signal-processingdspsdr

More Libraries packages