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"

dp_fft_t *fft = dp_fft_create(1024, -1, 1);
dp_fft_execute_cf32(fft, in, 1024, out);
dp_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.10.2.tar.gz (7.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.10.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

doppler_dsp-0.10.2-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

doppler_dsp-0.10.2-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

doppler_dsp-0.10.2-cp312-cp312-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

doppler_dsp-0.10.2-cp311-cp311-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

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

doppler_dsp-0.10.2-cp310-cp310-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.5 MB view details)

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

doppler_dsp-0.10.2-cp39-cp39-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.10.2.tar.gz
  • Upload date:
  • Size: 7.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.10.2.tar.gz
Algorithm Hash digest
SHA256 d02cd06c8146cb3102c34c72ba4ba4c6cc76ac429b20bebc54369dc6666acfa8
MD5 e16eb3235e75fa23eb46a1000fcfcf4b
BLAKE2b-256 1c3e66b789fcfbfeb433e0935a2b532453c4c8fb635b7169d20095bd231c9203

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61132e37fd6b1890a58a502f7490cc77c5c97d762a8d7074dd0f2971b8621104
MD5 c2d4c7e3ddb950f508adfa101d50aa61
BLAKE2b-256 fb82e16db4823439562b8459735096b2413a845d5c7dd703b69353d06ee63818

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 365848db8143f0a2d492777bc85d90510da31865d7f01b86c952ac3e94143611
MD5 3e5c20dd44c47acb639342b873b45c88
BLAKE2b-256 973987dce12c7b7c690bb7fa0ed6e8cfacff149ea29b1f4790f92c8802c638ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df0422e356b269a19fcb978dcd5136b38dbdb48702c268762c8bc5bfad41e546
MD5 cfb46c40e23699c0e8f9193692d2fbe3
BLAKE2b-256 dd4eb156d108c84319b922099420cbcf2b894afd20205b55f062d6981e0a5b61

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e5b35213981db7ec3e654481431da81fa49d10ae2aed07dd5bdcdef06573678c
MD5 5b7cac8da5ec710df88c6ab0085051e9
BLAKE2b-256 d1aebfb7f9b82e9ee4584a3e5750cf67ecac2c936219a793e6c43d47939cd14e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cbe94a3ef44dc13b0353b75dbc6ffff4e3bb0af8790046d8236a452c69cbd2d6
MD5 aaed891da071df05d01e8c2cb86dbf7a
BLAKE2b-256 6c48ffdbfafcc0415b7a66e9188524527aeb1f8348247403d978b42f4d89fe7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5fc4f8478389b934cd2b8ebbf0b4f33b002034cea06c53812ba6e72a2961f1b2
MD5 8009b650e0d3864f5ee2da47390b0d75
BLAKE2b-256 b850205a8822bdd5a43da544486684fd4b464eaed48831f250c3dff20f051f4f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa9c63740f2e8aa4d5ec6953fd701c691a3bb26fc4133553a3efdd9328a4a9af
MD5 da0ba19ac26e0aac0e8633859bd0eaeb
BLAKE2b-256 d7d9571efa1c27b078f58e6f3bca43e981dbba8d67d311ed3140d39c3912db4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3cb6242de926959f9387e793282cdaa59ea41ee8866fa7ab31090e9044b3f4c0
MD5 f04afbcb0d17300e020a99617ea7ee6d
BLAKE2b-256 a76f50cd63e96f92cd6a3845843a04bce620cc677e423c77bbbafc4a47ce0f7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93a9917caae6e1105c015726d433427c9c465cbebb0eacc5cd3ef1c280f591f2
MD5 91e3af3e9e327f80e113f3e88de28bbb
BLAKE2b-256 6cfc277832b7fd0e6d3eacd08f1132459e9c947405cfe14df48e6fd2d3c66c81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4ffaa0634d6f5aaf7ac8d23767fd7daa133d3a6d8cca91be08f9b2cbb5f088f7
MD5 b5694b0fd4a27b543d9c2d04eafaa012
BLAKE2b-256 1c82a9157e8011d4e851ce2e7456baf03d3b995837b10e75c9df880ac9966ff7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 406ae5ada48a61cdd98b02fe262d46efd528dc8ecbf5f17d85224f1af7e4cbd9
MD5 405761f3a6300d4f1eaabba6031ebb73
BLAKE2b-256 97ef54460563ee6e2ef5fa43b935fa04b6e318087274e35889b081531dfd0461

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.2-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bd38c602786f0584b9ccddfb5891c16c1f4a6f455bbf361885e2edde0249a24b
MD5 a5e5f07cc7d1e1d630aeb18a62994e0c
BLAKE2b-256 101f74170d102fdb8403522ab3eea6357f0667f90b884eef2dcc44dcac449a64

See more details on using hashes here.

Provenance

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