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

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.13.1-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.1-cp313-cp313-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.13.1-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.1-cp312-cp312-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.13.1-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.1-cp311-cp311-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.13.1-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.1-cp310-cp310-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.13.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.13.1.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.1.tar.gz
Algorithm Hash digest
SHA256 8ab98061fa384fb55cfe31d08a1ea96a0538f4b7f16b7d0f2782ea9bef755627
MD5 315fa37f5d2923aa98212a7f47ad2b86
BLAKE2b-256 5c4506d406e5183ce7f51cddeeb85798ac1c35f485fae5bc5780571e831d164c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8f278a51c30d9ce59ea2aeb97781222155ed8c2d2b8f5df31522b19d2ca09e3
MD5 8175bb3bbf541a7d862ff709ff28b98e
BLAKE2b-256 e7d3a161491a2bea5878c257c2135cb06995c73c061fe359bca3e3d6cc85f3ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2352c9a6e72ed1664d58da7fbfc7efa1b51264138411756b76823457fc812370
MD5 36354d822959b845317f1d3282c16de2
BLAKE2b-256 c0014f5401a080e1a1b11025b0fe743fa9fbe8b7b58b57ba4832e40c287e381b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7902191c23fb1084fb16b1e990921739c16fa78145c2f32ebc9f1a38ef17a72
MD5 093bfd14353a5e991a7890c1f8420d10
BLAKE2b-256 82b802b5647a7a0756e9e1f27ba4c29cfc6d92c584053398e1681832272fe109

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dc89de216d87c0616c470ccd5f8f1e8104c845d47c5d9f3156602abf932cc72f
MD5 dda0f9354c86d2c1276748b1d479c59c
BLAKE2b-256 b6f2acdf5bcd930b78635d81229fc9600d6781be0f38082c0bfb154d51e914af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 024eb9b8a8b3418c26378c93808dc655963312a3810ee6b39ce8be24176df9d9
MD5 fc3b8a3b64beb0d39ead79a559020056
BLAKE2b-256 af0c3e9a213f8c7cbf6f506c2c4af9bb1096282ba9a3ec37ca4de9e2c0f67883

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 32dc724ca03b2366d91362c464dcba323d31897ad5616b693d28433255f1550c
MD5 c962a8edf3160340d250a68401363a48
BLAKE2b-256 3edf396500054eac7360968cb77a00e37a63e4d37d73bf22eb9aa4f6ec9d0c3c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c28cadf2f1563c3386538d2b8085485e365f7a2fa7663de06cccef926b831114
MD5 797fff4da4a622db5f3de494e5d96cc3
BLAKE2b-256 c5a1e572af45d076d2bc4de5e3ea3a824a53e3746c50476a80e7293e171df056

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 275d9223894b4f5285fccac3af991222af7d874891aa121d77cd1eacbbbc5c34
MD5 f18e70a39e5b880b22b0c21530c471ef
BLAKE2b-256 7dc7fea4eaccf1f7759ef99f95940c2225ed39375734bec74302c9b3bc16cdab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6264484e44ebd86d2753a5268907bcfc2fc506dce29deb48232fafc04c851764
MD5 029c2aa4f51e95bd58a1d30c12b527e8
BLAKE2b-256 81f1f79b48dd747a76a261afd33082a4e03fe5702630650046055119a4affec8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8e0ed93bb9cd5714a9d3a1a443d8d5bdcc52c8d66b02950a76fec3bd458790d9
MD5 4f397b5ce2f2e8f7f577c584e9ced740
BLAKE2b-256 d90d7e909d058cdc0627ed0388d524bde52eb38ac127700883d6a134a4e2483c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c7867ddd0ed5de9b85cf74d7b38f7cf1a086831066e141a78a78b082d9f58e0
MD5 788b25800b09762cbcc1c910344f27be
BLAKE2b-256 587ccefbbdb6e102c640fd9637b4e61aa1bcb12493bdaee1609e52edf2b54ff7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e7f8ccc89d6a2ac98b03f87599f61cf32936162e0a756dd872494f295c049473
MD5 d2b64404e1e700ea7d2513fa4daff394
BLAKE2b-256 6ae772d51cfd29c4ae6ca0d287e4873d56049dd0f927db33c617596b99f2e1df

See more details on using hashes here.

Provenance

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