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.1.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.1-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.19.1-cp314-cp314-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.19.1-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.19.1-cp313-cp313-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.19.1-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.19.1-cp312-cp312-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.19.1-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.19.1-cp311-cp311-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.19.1-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.19.1-cp310-cp310-macosx_14_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.19.1-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.19.1-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.19.1.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.19.1.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.1.tar.gz
Algorithm Hash digest
SHA256 02b622127eef2c4e991eb612736da41007d94a21661dbd0d19eb28bfb5ce0cfc
MD5 7687ed51ff449ffa7989c8f29b8bbab5
BLAKE2b-256 e8aa402b037806a5a2cb763e297337412135ab0102809f522753b32a698b39c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ea81690e216287a5a61d6109e798dc2aeedd170396c1e065537055a6e516f66
MD5 b8d613b848b10c56493c54841a74c587
BLAKE2b-256 ddda7a8e701132c28cea75a85e715c1441220d56dcc881501552ea525a2b1a46

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9a121fef5cf82a6916fe5f52f5b86cc5dc2b3e56e6e3013e0f9c9653a24be87b
MD5 9c211d4812d7685ea0012660ead43ce8
BLAKE2b-256 25a90f2807922a7a14c2edbfdd359f20e745d43db139d06952049e8b3f3c8a73

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0011b2755e1cd708717ec3fbe342d3232840d80c98b079dcdef0c2c0babe8d8f
MD5 04fc77850c7dc4d37258dbed8a98e49a
BLAKE2b-256 e78200baa97eca7581d1dd84b645c238b96962d4d91dda5a7e42eb37e38908b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d807c2fa600f804fb169e041f16b390780fa49ac3b19ed767a34ea0a3b1d119f
MD5 212e0102b31ad4c2a7039cc2369bc414
BLAKE2b-256 ad2edaa3168ec3c7fe0bc999b23522f306350a8cf750e1a21077e3a6214ae83b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3adc9c010caee07ca2ced4469b1dc471cc50e6e9d68ecdd1d5d8d4f16e75e73
MD5 fefb9bd1f4192792bead6b74046165c6
BLAKE2b-256 6181f3e9e20832c3bd98e2572cc188f6d56fc7b8211f2f01973551bb42ddbe23

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aae8e0609b7fa8d1e13190374b7a2e4c496247a43d8a9a52bdd46227374fc742
MD5 39b93af0dbf66ff38d82448628bd20f7
BLAKE2b-256 187fa75e951b785c97a0533125df6cad7daa5b67d585075372b24af6ab77cc9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 55af838e29e25baa17125f6851b60fd6b72e3bb2413b32ff0c8edd86861178b6
MD5 ed13f51e1e52340da573274dd3c5a483
BLAKE2b-256 e056c6a823ebd37a241aa5048dc8f4be1fae999576742444a70582a697400d5f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3bb3e7a8176c34454046dcaf472870968c1f82b85877ba599bd0620c9e5166d6
MD5 bc6c2df8550256e221ddeb3ec2dd2485
BLAKE2b-256 b10b9ed21ebd775abca6bf9fb6487eef0f9757bb03f9edfa8b236d1a27b42ede

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f1fc6607a07c380d214fbfa673e3c5a781f0c50286a6549967f48a29bda8526
MD5 a3aaa41a425affbe69633ddf700cd4f9
BLAKE2b-256 ecd79aa1112e7d371d86a8d8d2798daf199b4da34ebb4a9f2bfaef590df7c54c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 70f931d8df5d2c5c4b5f82a123c052d2be711bbf2129d325f8988b8b3459bbe9
MD5 f748ba579aa6077131619f918c9c7a54
BLAKE2b-256 9730dfa28c8b94b78b3973c4114b8164f3ad3a34e6cf42b72b59bdce537eaf0a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fe70fb0ad840b694a789ad41b366dbcd0c161f1314a820ef448c1c280b2f272
MD5 5b98eb6011819144e3155920ba882821
BLAKE2b-256 4a89b47fa7e67e11381a263dc5739deb191b8ae471c730ad450dc4055ce14b12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.19.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bb6a350ec9dfcc0c8423640c1e4bc70ba78ae314c8770d3bcf1091249338b393
MD5 83291da27048b66f3a5beece4d1c06f5
BLAKE2b-256 58c1b7c506c28e068a4708335a0a969982aff30fce904fd2f5e5776899bdb0b1

See more details on using hashes here.

Provenance

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