doppler-dsp
Practical, portable, performant digital signal processing.
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-dspuv
uv add doppler-dsppoetry
poetry add doppler-dspInstalling 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
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
juliusJulius provides differentiable, GPU-accelerated…
permissive · top 5,000 on PyPI
soxrPerforms high-quality sample-rate conversion…
copyleft · top 5,000 on PyPI
doppler-sdkProvides Python bindings to access the Doppler…
permissive · top 15,000 on PyPI
doppler-envInjects Doppler secrets as environment…
permissive · top 15,000 on PyPI
obspyObsPy provides a Python framework for…
copyleft · top 15,000 on PyPI
dttlibdttlib provides frequency-domain analysis tools…
unclear · top 15,000 on PyPI
noisereduceReduces noise in audio and time-domain signals…
permissive · top 15,000 on PyPI
wfdbRead, write, process, and plot physiologic…
permissive · top 15,000 on PyPI
nvidia-cufft-cu11Provides NVIDIA CUFFT native runtime libraries…
unclear · top 5,000 on PyPI
nvidia-cufft-cu12Provides NVIDIA CUFFT native runtime libraries…
unclear · top 1,000 on PyPI