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.24.0.tar.gz (13.2 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.24.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.24.0-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.24.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.24.0-cp313-cp313-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.24.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.24.0-cp312-cp312-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.24.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.24.0-cp311-cp311-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.24.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.24.0-cp310-cp310-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.24.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

doppler_dsp-0.24.0-cp39-cp39-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.24.0.tar.gz
  • Upload date:
  • Size: 13.2 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.24.0.tar.gz
Algorithm Hash digest
SHA256 b71270ded4de9e28071f18d7ae7fc4a0660fff79bc230119f1cd36ea172549b8
MD5 e120e5d3843f2d41339903752b3035a4
BLAKE2b-256 9461e0d49f9cff1c9e8cbf88f925e01fa8010bcb5a4e1fe571030839c52a8140

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee5c54cdd9593378bf99bde018cfd47deabd08782a2ed8c6ef9fa1a6c92c50c3
MD5 13a550174ee23ec4c7c778798747fa62
BLAKE2b-256 818e3b0c2bb1e2b19dc1695ec026ebcc5d1e23125219748dde4f6c6d2c0573ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2aca6db32d1f3fa6be281169a530b22d4763e9a3e6b27e3d6db51c966bd5c66f
MD5 079358d83b07de67e5ae72abab7155fe
BLAKE2b-256 62840774c44bce67c5182298852454401603c5467e1e46a22b7060d3c197c2ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5afe93c92b92baf0ed534cd151fedbfec428b7b32b99bc4ca60fc0cdd05c9830
MD5 243a025436eda48eff09fac8ad9269ca
BLAKE2b-256 1e0e07c0105faf36a072918224c17fab285fdd46d5dae086b42dc8cde5cf1d81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 38410d80cb5697a7721d91621f4c6214423c89e131dafe29dbe2f24939138cdf
MD5 9c8bcb8623c54025b543572b1c51cfc6
BLAKE2b-256 472d4e600f53ba6143e0fde4082c370add9b3221af46a5ab4eb6f0d6332fddd0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 443a37fbcef59aa027d57ec79cf72e261f3e8b8a808c68f10334ab29956cdca4
MD5 175afad817071297ec15be155bc31deb
BLAKE2b-256 445f46df8db567cad0e2e3d0f6d674b9875aa7a6cb6281042adc9e8393abe5ec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 96858b8d4bdd8bd6aa69d21d30e04a4140ea042504317e88917fd360eaa2125c
MD5 5a947eef582da2fb2cfe314ffe12de2f
BLAKE2b-256 0c5d8f353918d17f6ea8cd8d48f59c253004a1449a9d574131a89766ae27b3ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66ee4384363fd6f1719319f62171623acce29a124e1423a82c341b44099ad980
MD5 ca3257f3f3e2572c06454495263579ad
BLAKE2b-256 c275cea104908018acc1217f356fd8bad69da29a2b79c6d3a43c340e524650c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fc95b28feb9b801cf8c30a8a4c60c01041c8bd3c43bf7517dd6ca5d0190527ff
MD5 1bd94c9f25b384bee0b2421b0c732fe3
BLAKE2b-256 524a645fded85cd9d85e20fcd624db4e6aa17048adbee0dbc0997c646dabdd99

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7cdcd8f474c3f83996e1f1670557ea69007a005203c9140748bac29027a8a69c
MD5 0cc994086fc358e444d0f46c688b7676
BLAKE2b-256 15feed1476d892628a727ff67218b064cf7a2c132ba00ede6ba5d9f59aad80fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 48c3d830390cf6c8e5ea9782be499100a581270624538aeb7e6b2cb94a21fcd4
MD5 cf23a2eb829785be7303966704d8361e
BLAKE2b-256 42f7b81c502d5f4431804c83b118644de70b3723d4a6f21ecad8dce5e96ea6c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 152d6217c708b93d85606e31be54d3af5b573449f9d47372215bbc29980379e3
MD5 74448c5fb9d070d8c5f87dec90b60c92
BLAKE2b-256 77c1e0043b1ef10a6e32ee38b807699c80e107acfe71675585705c38072b4693

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.24.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6f589a798bc37e4e0d74cadf8abdeb44d6b271c3d9e1154a404f7cf3c64c6d73
MD5 3e325b76d297eaacfb77cb7498c3a49c
BLAKE2b-256 3e9355cef57273fa2635aa0a11b64d0bf1fa535e4b61044d0a39d7acc0fb975f

See more details on using hashes here.

Provenance

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