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 = FFT(1024).execute(np.random.randn(1024).astype(np.complex64))

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.0.tar.gz (7.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.10.0-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.0-cp314-cp314-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.10.0-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.0-cp313-cp313-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.10.0-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.0-cp312-cp312-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.10.0-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.0-cp311-cp311-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.10.0-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.0-cp310-cp310-macosx_14_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.10.0-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.0-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.0.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.10.0.tar.gz
  • Upload date:
  • Size: 7.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.10.0.tar.gz
Algorithm Hash digest
SHA256 76d530420ecb8c0b21fb81c821aed4dc37963d4914cbf5ff31a4c4fdee3b86a7
MD5 f61fddc19d386561fcea199aad4795ec
BLAKE2b-256 21c45fb07741fd3eaf70cf8fd852757af45a21efd4572db298d729f5f2ef2768

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f6c353c89e0da78a0e82bb2c61c8aa6ed229811c6f563fe092290e0adeb33fa
MD5 b246380a4c08cb481a7d53c18817d4ab
BLAKE2b-256 eecb74a07d466be62d2635e05da3726490686c41237a6d2864b77cb69cdd8dad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8bf6c6d2464b6581fd800dc5cef3016805e73be0d0d8f7fb15925c8227331657
MD5 a1660b068a8c74e78d418a723b2307ce
BLAKE2b-256 0a1d2db0c654c832821540a87d4562cad91da15a569da7565d6b12c6e754139f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6faa0f50449c02f1a26330582ba0fbd2d59637e854fe1a0ebf88569f23cfd89c
MD5 2f063ab07499ff52727c6e985fec6dfa
BLAKE2b-256 afd2708b9c4e67c28b2ca3895c4f6e99171184ff9bd04801cd9f955f2eba7843

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b4f00aacfd6913ee780865dcc4a6ee60b0d50365a5bed09749b722e336327336
MD5 b0533f9f515708cb90b5e3beec57c09f
BLAKE2b-256 fffb161f7b79fc17ea8dcaefe3e2b306b655c2187d438adecc5244d448081af6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8259a5afdd622e083333269858955a0acbc916e6e5d35d8afab1298bb0bc6191
MD5 6a3a9590c98d6ef18bbd53343dfc4536
BLAKE2b-256 87c736e966166aa78df3d2c7d30528f13e495be78891075360b77d5bf7364b24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 26e790d4b17d93d0c86ff845e7853313c92c4e925fc4f7e5a73e1691c1e27084
MD5 90d538f00918e7768eabe73fb6f09a11
BLAKE2b-256 081a639d57435447aef18b81011447822ad26388537b598d6aa468891a93b017

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7394fb9d3b5a4c1590dbb137570497382495a782092a95657f9dc2eb2e7fe182
MD5 778a0d9b1c625566b413c3fd36ae42d9
BLAKE2b-256 615f7244b67f89b2cf6b7bcee7c7f69333787c61ffd2595729b92291a3467a89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4cd71d5b0768900ca51fae928a1dcf4778416f40a33aaac7940cced92124cc1f
MD5 1ad4206e5523e10349e20016716f4676
BLAKE2b-256 bff43d0aa7af6493b9bfd9d0dbb5e331dc328015085e55f1ea5834f4d1eca3af

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 33349d533c46a642d650fbe4b71bee2393641aaf875558a4215d4691926768dc
MD5 e17cb31aa45b612c586b39196b949fb2
BLAKE2b-256 b7587cb226b92cf2ad3a82f37a90e08b38826118c6055448a0fcc643a1471e1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4f2980a1f1043202d4e53b843d24f49dd1f9fe95c0df2dd43b11e6d40ec08bfc
MD5 5e9ddbdc739e3448bbc08b24b18d8911
BLAKE2b-256 4ea0909420b1645e7d1baa12f6fd39a99c89b4226a1fc0a7e47c1a216716e94d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0966e04495418e86a9a70a1a72976f04a7e0128eee877364e7093df2cdcaca8
MD5 f5ad52bc17bb8694984b746df84aaa96
BLAKE2b-256 0b985c1173d8e1de94b7730450f60fc70c34f1c11fb824d783f7f72930d12866

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e0cef653aac1db2b0fa27a2d66ab567dc096635e36a20d48477f0d4b2141377e
MD5 f00f92017765bec20a63d9cee35db910
BLAKE2b-256 c98f93aed3d2abe3bc421eca42f58125c370e96b1ac86fe508170b52c1915c7b

See more details on using hashes here.

Provenance

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