Skip to main content

Dead-simple, ultra-fast digital signal processing.

Project description

doppler — signal, shifted

Dead-simple, ultra-fast digital signal processing.

CI Docs PyPI Python License: MIT

C99 Rust uv Ruff

doppler is a C99 DSP library: NCO, FIR filter, FFT, polyphase resampler, DDC, and ZMQ-based signal streaming. Python and Rust wrap the same C core — no second implementation, no divergence, full SIMD throughput from any language.

Why it's built this way

Every algorithm lives in C exactly once. The Python layer is type conversion and lifetime bridging — a few hundred lines of glue, not a reimplementation. Bugs get fixed once, benchmarks reflect real hardware, and a C transmitter talks to a Python subscriber without surprises.

Performance

On a Ryzen 7 AI 350 (-O2): NCO raw accumulator ~15 GSa/s, LO CF32 ~1.8 GSa/s, FIR CF32 ~900 MSa/s, FFT CF32 (N=4096) ~180 MSa/s, polyphase resampler (2× decim) ~70 MSa/s. Run make bench to measure on your hardware.

Quick start

Python

from doppler.spectral import FFT
import numpy as np

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

C

#include "fft/fft_core.h"

dp_fft_t *fft = dp_fft_create(1024, -1, 1);
dp_fft_execute_cf32(fft, in, 1024, out);
dp_fft_destroy(fft);

Build

jbx install-deps        # install system deps (detects OS/distro)
make                    # C library
make pyext              # + Python bindings
make test               # CTest suite
make bench              # benchmarks

Docs

Full docs at doppler-dsp.github.io/doppler — Quick Start, Architecture, API Reference, Examples.

Licensing

MIT. The default build uses pocketfft (BSD-3-Clause). Build with -DUSE_FFTW=ON for FFTW (LGPL).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doppler_dsp-0.8.0.tar.gz (7.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

doppler_dsp-0.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.8.0-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.8.0-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

doppler_dsp-0.8.0-cp312-cp312-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

Details for the file doppler_dsp-0.8.0.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.8.0.tar.gz
  • Upload date:
  • Size: 7.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for doppler_dsp-0.8.0.tar.gz
Algorithm Hash digest
SHA256 af9ea2e60a6dc120e4d80bcc7428a858d72ea09714b13f38d823a425143b486a
MD5 138981b4e1ff215522b9d833021734ed
BLAKE2b-256 c64dd20ef1a1f8668395874701696c8f901753eeba2e50006f8f34c0a7847422

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0.tar.gz:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c4964c4f77ac1f8a4a671ff6ff34eb26cc7146e43e68d0d3907b291a119cbfc
MD5 682431ab0e20c3a6b4699fb137c5ffb4
BLAKE2b-256 352c4bbe8c061d82fc2545e769345fc1a2b1710c41fd56bdf66611155f5a8dac

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d7ee6f4ba76e993f524007922c42cf94f2b5f58ac867386b9450490563dd19db
MD5 8d3d3972bfdcede472996f703a043910
BLAKE2b-256 dee9fef0978caea2dc195250708a375278a3e3eec8f5837af953f09ebcf80145

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6591c33a3c2d6b84144a76e00261e29a41f46de4c834c134cd2933ea17680de2
MD5 1d42e5ecaa5ba27773f77b377cb32598
BLAKE2b-256 d427d098773a9431881c3596541d71c461083558eb590cfc85c1e21659862648

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1d4d731740cd47599f412a3345f219ea0e8c6eddf1bcdba0dd0f237d6ea93145
MD5 f8bcb2991a6c129d0a1cbb663b99907f
BLAKE2b-256 a7126919d269ee1314272cacdc28a23ed7515935c61b98fe8a408f1ab64864b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6f93931fc32ef195e477059d236997928896c1b5fd5298ceea4280f9a0ec8f5
MD5 6c8cc6b8b283fbf2619d2c1343124c4b
BLAKE2b-256 197c685f960b0a0fa2feda881f188ad01b674eac6f200ee5d37a5bd8321b65b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doppler_dsp-0.8.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.8.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7015861b6e32e8422a18a13907d1b6ba21645776f8d3c13bab4446b0e8194e23
MD5 f63cb79fd80b23db47a2e3718cbb7925
BLAKE2b-256 9985d1987fca162f1630634cf08e91d5c54c1437304eb69aba0babbe7d7ae45a

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.8.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on doppler-dsp/doppler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page