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

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

doppler_dsp-0.13.2-cp314-cp314-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.13.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.13.2-cp313-cp313-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.13.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.13.2-cp312-cp312-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.13.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.13.2-cp311-cp311-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.13.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.13.2-cp310-cp310-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.13.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.13.2-cp39-cp39-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.13.2.tar.gz
  • Upload date:
  • Size: 8.8 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.13.2.tar.gz
Algorithm Hash digest
SHA256 6783ea194fd24b47801e9f3a25e6dd6067e388d5e5d68ff82195d55beb1a7998
MD5 213b1eb9fef1ef3a0bd9bbd097d5925d
BLAKE2b-256 2b9ca602aa472f95f39c708cc998afea8629c5a20668c73ed90c1b80f24eb4e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a69ad6a4522af3090e490164c05aeea26f5deff5136c5106324c99dca4cc563e
MD5 e5617c85f6ea37e351ccd14bf793c62c
BLAKE2b-256 cb46e00984f43271f0e45b5918da1e90c5ff8e630c11373dec6445d4b57f60c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fc00bb0af96ffcdb8f61e4555536d7b4358a631a4e98bcbb239dd106b64f5676
MD5 261f5435aeccf7f65a25ab48115c48c7
BLAKE2b-256 dca28cbe782163f9056c88ed433d4c0f6d80bc5604855233275cc52f69f5773f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 848aeda5616555472bcc1711b11d5f8913df53fc7f7dc3c0dee28d43e8c5d5ce
MD5 7c3997fc525c1251e476e7fbd19aa944
BLAKE2b-256 c0da41561badd5956189b7490954df5f79d52d86cf42a9b71ff0635de472deed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0a9ebbf8be2492aebcdd01c72adc116ec4750a779719c945bdd10c3588a2f5b0
MD5 0d497c8487cddff40c7fec7b0dbf77c7
BLAKE2b-256 307ae30b692683131e7710c87f118a96b74e92339f35cc7d32112a289fd2c272

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f75bffdaed0f6e8a38d740172458a222dae9869de368dc095bd425e6f1356ce
MD5 b13ed7f7b92a3cffb81f7f2f187e0a5c
BLAKE2b-256 8ead8b1681a10ad7d11bfed31e0ee606e887bb9129ee50e1f9370646d9ce5e6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5647b8ebf2f516063ea874f73ae86da3d64b6e932e984c883f98d499e650f61f
MD5 266a2fd4e87b3b157d05ca127810f2ca
BLAKE2b-256 a85128575e3f3fe0aacadb7e56039a6e11b21dbc9fa1655fbb2ebf9f62dee225

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c0f943f6527812ce6ed308d1e2e0dcdf227626b8d355c521c902b6c9f934d55
MD5 07271ee48c6230d31f40f8fc95c2b0f3
BLAKE2b-256 02c6ba01377b76b0d1ff583e37a564d03f9a99a8136c6f0d569a37c5e19b2154

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4c7e4b8f569d54e18d1202a69c30ed271a40539b496c4459e75849f14667f98b
MD5 4f11fd690e5d8316a08bd16cf7b6d531
BLAKE2b-256 3c6d507300f298ea502a54732e6d07cbe3c15092fcfb717f0a3e2b666d0b5516

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c23109f9d691a6b26cf6ed828fb23cc54cd4b36d9f6e997a65080ddd667a2e8a
MD5 affe053a7291afdf1a497d6bac29b33d
BLAKE2b-256 8c49f5f7729957fe684b54facbfab82b9f7144513d8aa238d68c0b577c7d2958

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 19ebd8f56701038b2a1e8590e337af073ec85bfe3cf2b8c5c295819504fdac8e
MD5 84257c2d748ab9137bc7e5bd87ca733e
BLAKE2b-256 dc9db8e239658f5c09c2e7288d3b786d6cbb074245b8b887e3a5e99680f25690

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9c48ba52b71d30f801bf966f9047e2de76d5175f9904afa57a6c13c582ffe58
MD5 3efa1a90f206601432e3b35a41b90ce3
BLAKE2b-256 e5e5d5f459d495a7be2b8900e7b0409e777532fbb323629360edfe6b0697cce2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5e37ff751c428832761a63fe99d13f927794ced5b27c6a4b8c82665d1009af73
MD5 2dad25de3804b729640bd8d49021358a
BLAKE2b-256 6271ca4598935fe1eb89e0d3df475476a9ecc27ebcf03e528d70fcad1427696f

See more details on using hashes here.

Provenance

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