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.9.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.9.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.9.0-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.9.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.9.0-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.9.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.9.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.9.0.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.9.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.9.0.tar.gz
Algorithm Hash digest
SHA256 0101f96a2498ead0bc370c1004ef93981e34a737c8dac3fd6d7862179e1767fc
MD5 a4df2fef98e3076af7bc99d99948a619
BLAKE2b-256 2f1dd5ccf187ab4dcac0cac80de33b4df2d0582bc4d180e3321f61d6e5215b81

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.9.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.9.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc8a9aa0dbd15fc5570fdf9710968fc1972446c2c3296859eb6c2432e635a0af
MD5 2b0df791051d540509e8413d4160aa09
BLAKE2b-256 30f39215e73425ac3b625dc7a6eb65e50bedc1c53741b92c3d45b3b5888b8ee1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 341143366d6a72319fb69f23f28b8aa37c5b76127b5f13125a57e6bff064cd68
MD5 0912e36ef876896fb68fbc28080cdb1d
BLAKE2b-256 e0d21dc0ac5c63a851e3767d523b3466cc6c27d2f2ae5e156823999648b6f5f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.9.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.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ad32712874f9dc6b881576db5d007431c3461e6187ff80672efc7f1d4bdc531
MD5 3146f4c4d4095f703385c9d83b9bbb17
BLAKE2b-256 dda6fd5921800f77efb653722b5d5c22816a4aae7d4c4869d5377050aeb238d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 141083258912472962b76dfddfb3546e32833a8e8ad6eb606fa85fbc094556b3
MD5 8d3b09bf149b8f6c4d235cf454233a42
BLAKE2b-256 02e63c6a737308f04a6544d4ef2724a4395c3f72da59faf89eca16f2b7443a29

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.9.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.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1cea137ff7e5c067a4d630dc3f96ba48bfda3720787b4fb0da6624fc9b0652b8
MD5 98d3ef6f00073fc3eb47300f271cec62
BLAKE2b-256 f7ed471a26c70511228be087f192bfb6244d1e13f129fe2d64d97a68bf681c79

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.9.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9c35a9d452763b78c79cc9ed8711621a1c0c7676631c376a7cc7470cffac624f
MD5 a331d1bf953c2742f567d1942f769e9f
BLAKE2b-256 9e796281b8456832783280b1f845b1bfe6d3109b17df820e26dcab203ff13c43

See more details on using hashes here.

Provenance

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