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.

NavigateQuick Start · Architecture · Gallery · Examples · Guides

API ReferenceC API · Python: FFT · Python: Spectral · Python: Waveform · Python: Resample · Python: Filter · Python: Measurement · Python: DDC · Python: Accumulator


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 = np.random.randn(1024).astype(np.complex64)
X = FFT(1024).execute_cf32(x)

C

#include <fft/fft_core.h>

fft_state_t *fft = fft_create(1024, -1, 1);  /* n, sign, nthreads */
fft_execute_cf32(fft, in, 1024, out);        /* in,out: float complex[1024] */
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: doppler-dsp.github.io/doppler

Licensing

MIT. The core C library is pure C99 and links only -lm. Its FFT uses the vendored pocketfft (BSD-3-Clause) for double precision and arbitrary sizes, and the vendored PFFFT (Pommier/FFTPACK, BSD) for the native single-precision SIMD path. The optional ZMQ stream component (libdoppler_stream) vendors libzmq (MPL-2.0).

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.19.0.tar.gz (9.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.19.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

doppler_dsp-0.19.0-cp314-cp314-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

doppler_dsp-0.19.0-cp313-cp313-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

doppler_dsp-0.19.0-cp312-cp312-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

doppler_dsp-0.19.0-cp311-cp311-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

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

doppler_dsp-0.19.0-cp310-cp310-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.19.0-cp39-cp39-macosx_14_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.19.0.tar.gz
  • Upload date:
  • Size: 9.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.19.0.tar.gz
Algorithm Hash digest
SHA256 964e42d874e1ed8d5e4f6549c83d23b57417817cde06636212b6baa2d7fb0490
MD5 6cf3527bfa2fd9b15ceb74010198b29a
BLAKE2b-256 24dc87dbd69b344d134af37796ac64d0ed3b776a7a37201668079a1e45c7f627

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3b4eeb9de363e4401a75643bb72c7f697eae33e90272697ee56959ba23abf21
MD5 09845c0bd9b93c50f2a2d54bec4f9e1f
BLAKE2b-256 af8210cbea65678709893f3558c497b2a27d283e3e5eda393e01f827c1c44a32

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a7f781225f8dddbad036e0efb19923f76555eac32a2a4b14e87a3b22b25c1d14
MD5 d0cb1f3720305a470d17bb0605ef8a29
BLAKE2b-256 e5cfbf645a442e3bc9951a84bc9f3bf3e45b9158160f6e96dcde810e6633f0c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce953c555561baf6a82c56d2b8bfaabf67314e7ac85f6778c59637ac7811fd57
MD5 7b7196201e8c2ab0dfde19ffc8dcd329
BLAKE2b-256 cb1b913cde2fa04f40fa7b36020d61deaa6aeac20d57e5f587eeaa14c3f8ef8c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 988771d6df3f6db5e7cb458c885b25c2c3971d273fa9fecbff579518d4d8f324
MD5 bcca0e217e78514c17df0c6d595d567a
BLAKE2b-256 0ed8a20d27fa5a11f1ac2bae2c78ec50caf0e0a579e2e279ddc1f29eff2f6107

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f44f366b85dda0d0b9614b0c9706c477352c09fcc9c1f07a13a0e920de7b9bb
MD5 57583cb80f8e4f61b0f55ef4dd3d10bc
BLAKE2b-256 c84242fd75b53ed22fb07d42c537b92017514149f220c3dc8704524bfd22810c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 511bff212ca64426ea30baf8c6bc065252601631586e8c4e74c7bd157389231f
MD5 1c7b8231cbd5eaa5de8161c454e5b525
BLAKE2b-256 748bd9672253bb012984088ebc33ff269ec1999672d4d5ca29577e45ca7eb7bb

See more details on using hashes here.

Provenance

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

File details

Details for the file doppler_dsp-0.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0aba8635d3b63dc6d2f8346ed7b40a3fe0d08b68859f8b24a83a496a73dc119d
MD5 e9e12ab7530dc852fa5c60d42caa0e33
BLAKE2b-256 fb28fe40368bb6483a522fcae9cebfde37a2554d394d764a14e32f87bfe82154

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.19.0-cp311-cp311-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.19.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4e8961776aef73feb9ebb7c1fd4d236a836f4bc07c5ec701fe31c99ef687d29e
MD5 7d557cd979e40412cf92529b26e6f82d
BLAKE2b-256 f055fcbbae4b78a2bb34052630939e8cab45395a810987c301cb0d3bedbcf22c

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.19.0-cp311-cp311-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.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5525a2835e5b97a1bb4fb7e1b94a78751c952759e0096d941a08b82fb6c175f
MD5 c8a4a52e3fc1093515ccc3fe69ca6764
BLAKE2b-256 1411d7f4f1639676cd22bbc6c4e4b4610ece703457d91aed46ca41ae5c087a47

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.19.0-cp310-cp310-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.19.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a1018e100c694223301929428bfe1f9c2c569213a930af925a58df92bf13ad81
MD5 e934c317fe0ed1ef972291a590895be8
BLAKE2b-256 a9045d73f4b796ce7cece4c7a12b74a089ea941d1b321eee243adc9b53e4bf9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.19.0-cp310-cp310-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.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37203d0164fdc151dd740573a05c83866905a2e4426798ebe4025b6c35021315
MD5 12f66fb5cdab04dac0c12be13b641118
BLAKE2b-256 02433892aa8733e3ab9097f0af35545f548fc1326ae3757ded5369ac255d4532

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.19.0-cp39-cp39-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.19.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.19.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 36b3de055b70263d2f2d0ef329c9baf3cb202a74aec5f152cf2c9f1ed73d3afa
MD5 326dda25bfafbdac7f295fbce0a7d84e
BLAKE2b-256 c585adddeb53bee57372554406c60320421260207c872f2341393fb88bc88341

See more details on using hashes here.

Provenance

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