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.20.0.tar.gz (9.9 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.20.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.20.0-cp314-cp314-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.20.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.20.0-cp313-cp313-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.20.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.20.0-cp312-cp312-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.20.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.20.0-cp311-cp311-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.20.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

doppler_dsp-0.20.0-cp310-cp310-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.20.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

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

doppler_dsp-0.20.0-cp39-cp39-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.20.0.tar.gz
  • Upload date:
  • Size: 9.9 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.20.0.tar.gz
Algorithm Hash digest
SHA256 0c12b9a39f2a9bf5ad742977d6a9044e4821df37a0e90e6400d6733657ba1ed0
MD5 a1720ead8ab9ba3a6ab303c6a076c566
BLAKE2b-256 560ddcdebbf51b8769654def67c6e517d91040e088c30db55e1eda0692dce010

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 145e12b406fca789807d26334dc7171c475071ef5f280b3145b5830e2dd3add0
MD5 857261018712bf64aa9611561f156619
BLAKE2b-256 b29bb54b9c05f10024447d19132600a48cadc467f80b4dd6a5098380400de442

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e65aa338411b6a456204ab1e144ba51177869f5b50ddd3596fb7787d1fef2a87
MD5 2c5f68427cf93cf8d1bbbf8909d506ed
BLAKE2b-256 c0f7bf3e21486ab68f64f6b71cc0f3b64b2b635ecc14c5cdad11ebb9303700bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7cb267e3a69da04601f7c6fecf62e8bc639e9d07fb2800c2a92ab0ea6e72ed0b
MD5 ef88cd76458f273db50908d9c2e4f508
BLAKE2b-256 b39ae44ad3eb9932e30c1ff0a3fbd726a901e0898b6b6c4eb590c9f0e5a1aa2f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 17b38ce783c451bd335dba7ffb78b7eeda43adc03fed2dd9a08a909cb28867a2
MD5 d05e7717591f5886e95ad3928a796743
BLAKE2b-256 60c50fa399a880836bcd4a7664d49c92cdba91193fcdca12c4186baa7979e4c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a1bbcd8b90ee83172e7df78776d258329635b3cb40863029db0c4efc535db39
MD5 fe6fc58eb82eb5b69a7c4345d073cb3b
BLAKE2b-256 8654d7c35ce2b3ab2cd9df5621c54c7b6c0a35c0f61688d990d24a7d466d75a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 579b43090de36d8259ba48198b6c06701b718292a11190dd224deaafeea9d005
MD5 179927f0246bf6a20011be6c7b5c1f1e
BLAKE2b-256 1e58ab8013f1cfcd868ff1346fea3b779e7725d0bde57a3e4c5c64a270204db4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cd06e1c8be309fe3821a5548f95c0107eb9de506f0bc90516110718a9899777e
MD5 021bf9e958b95796ea30fb0bd35accf2
BLAKE2b-256 a8be31ce94199ccd5531edef3168e81060f9bc81ef310c98fd7b10a815ab6eb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dc803e24a8cc5b27854b9b3313bab0da7cb13c42689a7e9a4b002f25fdb4c83a
MD5 0b16f61e023b8beee25e2f7b752b1c44
BLAKE2b-256 34a3fed1fe956ee3ef8008f0c0f44055618a00835ae828565abc95fb5e07cf47

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c184f4921afa1c808a307ab7757a7a653fe79a519ec7393939606ca4abf7e0ad
MD5 624c56e3c9109abea9bc01ed45cbd589
BLAKE2b-256 5b4b68d571c261233bbe25b4223de673440d685407d41ef73f074226b53e789a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d250a585778a1f49862c03e3d66ba36b8137e44d899e64ff79738aaad655d1a0
MD5 2b99d137612212188dde6e5794be8eec
BLAKE2b-256 5079fac650cdd737e6fa7acf8566e1433aaa758732f07c98e54b0791da965f28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b29ac992dc37e90c1c120e9370bd157852561cf25246abe7ecc2118a1a6855ed
MD5 7631363ec1fd82beaaf4451381ddca34
BLAKE2b-256 f745cee1ebb9f77908984004a58730cd67ae5f9f4c34122ad39415a7e8c3592a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.20.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6977f41077c9d4189ddf4d7663cc943b5cc1cbc6339aef1c4223834981b38a8f
MD5 02773232d5332365db061801b05b9845
BLAKE2b-256 80f7e41d9b48dcd8b7eaf9d9e3ae7799d858a68bbf5255eb48874726b88492cb

See more details on using hashes here.

Provenance

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