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.6.0.tar.gz (7.5 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.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (951.9 kB view details)

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

doppler_dsp-0.6.0-cp314-cp314-macosx_14_0_arm64.whl (766.6 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (951.7 kB view details)

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

doppler_dsp-0.6.0-cp313-cp313-macosx_14_0_arm64.whl (766.5 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (951.9 kB view details)

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

doppler_dsp-0.6.0-cp312-cp312-macosx_14_0_arm64.whl (766.6 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.6.0.tar.gz
  • Upload date:
  • Size: 7.5 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.6.0.tar.gz
Algorithm Hash digest
SHA256 0614efc9f5602d19c4e6cf9e197f27aa792c952e89d8674ba49bf4f33f1cda51
MD5 08b5b41c3df5705748c08322c42bc7f5
BLAKE2b-256 3e4b2f66aa9b0713d83f8e3483e8ca23c98e2bb208c37866829f7698811f4060

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.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.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d20d98ac259df34ea533c4618ae0b735386cb5d8c6d9383f9caafc292efe020
MD5 f38987adbe6b6ddc3ecd87b5c09d59d7
BLAKE2b-256 17ba7e0dee0e3401c172e7a747e118f29e63cb00bbbcafd3ef8320fe144de47d

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.0-cp314-cp314-manylinux_2_24_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.6.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 281bbe9001c1744faf319ca22807d2cb5cb27c7fa590af312d068b2020c8c8f1
MD5 866ddcb9ee9a37215821166eaf811986
BLAKE2b-256 dc07bcc4f5ad6c24f1b9bb6aee49a108e55a3bfb1524e96e3d9473b100b550ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.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.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07b8957763e3eb9a849ab4009420475e6118023a4b15543ceb47b4f4fc6f35f6
MD5 b76ede3748b8aa7bf641412efb7a6c7d
BLAKE2b-256 6ae3b7e054a5edf0ebd72846fe4d68a421fff7a010bf59f61f6411e60073f7be

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.0-cp313-cp313-manylinux_2_24_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.6.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1d240c678587fa94bdaca28536faacc551ee2d24fdf9cdbddd04a78ce173fc43
MD5 826f9a943730b8ebd7abb4076ee85f35
BLAKE2b-256 04930640ae24866afa1b2ba15a00eb402524d4ee366a600ea86127320d14ea73

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.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.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a1294db9405217deb2673e9ee5292c1df104b71547663ea1d91b6b54123ee93
MD5 6385b4c3df3d5b461f1e1976e1b07694
BLAKE2b-256 52e172200fe5bbb86c176592da100e0cd7dbeffc7c14b4c8da1bbaae96f06b43

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.0-cp312-cp312-manylinux_2_24_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.6.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.6.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 94a92bda22e5d06ee498aa31cf3b584eae8c621f865defeeac41c531a0a19766
MD5 74b63e5f1741db5b7fceb51f7436b92a
BLAKE2b-256 e47031c67325bfcc4137461e5910e5aed6bca5461ce5c7b01ebe3e42b02e8784

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.6.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