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.22.0.tar.gz (10.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.22.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

doppler_dsp-0.22.0-cp314-cp314-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

doppler_dsp-0.22.0-cp313-cp313-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

doppler_dsp-0.22.0-cp312-cp312-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

doppler_dsp-0.22.0-cp311-cp311-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

doppler_dsp-0.22.0-cp310-cp310-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.22.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

doppler_dsp-0.22.0-cp39-cp39-macosx_14_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.22.0.tar.gz
  • Upload date:
  • Size: 10.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.22.0.tar.gz
Algorithm Hash digest
SHA256 299270a75011992c3222e7fef0751d2f9e061e44e4b047a096d1d75d53384e60
MD5 2f068401f1c99b233c7a3b1229af0cba
BLAKE2b-256 530652313872eeca4ed488136316ea05323d6d3a38623b036686c3568513e60a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04b5f6fc521256227654b4b8ebaaf9600f132ed59011385304c83770020535f8
MD5 30c2971e89272a00a7197d6d5779b83a
BLAKE2b-256 74fa76b7c05ed0f6d99ece7358b717733fa73a47696484d15556906ab8ead331

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2ad5aa16bbfa5f71d12da558c30b4d7631848e6ab6d9c0cecae26c8da603a4ad
MD5 302e6378726f4535ac97346414e8087b
BLAKE2b-256 d7918bae6a196bfb915bde505962cc8828333d93699fc1b75450659f8d4575a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c2edb76375b2fd874aad46bbf70b9e6d3862561ceb6b1deda231c61b669c5c0
MD5 8d26011fd003741beb633a098bf9ee3a
BLAKE2b-256 e2933f54c9fdb8dd9b0780d2b1781a2d94f73d55b11348691b8d24f3ba055450

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9c485955496f79f9443a06bfb62e01b687cd10ab228c094973fe76cd6a7ab158
MD5 50ee95d5a7cacbe3b89445ae86cfa1da
BLAKE2b-256 3b36ba3c8911023a70ae9ba00696f9889f83124f22ea1e91f61989a4e5257d59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e2cd1e89e14da175b2df62e3af5594e2705c2034b283cb20a8bf2b5b7af8beb
MD5 e9dc2e7ee12b8d9a3aa3243e5d0b2a82
BLAKE2b-256 a0e0998c8bde9ef3f974937faf9399b980005f84bb3590794d9e457399f7ffb4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8d7c4ffea9929b443df6be88217a09508992c341caba8b0d77b53d3d45b28c01
MD5 487a8155e020ea7653ed767259adfc57
BLAKE2b-256 94f0da132009cf2493eab6c2da61812c3f28d19ffba1fe93e7cab9e28f008f8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c1097941e96f86e8104b05e78e48c3581c5513c23565b3427f972305757f07f
MD5 0718e44ed610c03e9e06ba128ede15a2
BLAKE2b-256 1b1bb3c1252a407bc21a92dc08df505794300afc9fac56c3bc285fba8847363e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 428d953b81896189cfb8e60265f81c8c612c0a0bf3afe226a469c13d310d49eb
MD5 96930da86567afd701660043e665523d
BLAKE2b-256 f79fc59ed423ef9f70bce3f402cc1673c0b69c106e3f91ec9bc61126ed035780

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6d34a1ddf2f14c6332007cc63fe43bf4954ce94f3499941f6cea9150f85ca1e
MD5 72d7a0d076a15dcee6c10dfdd510019a
BLAKE2b-256 874c8a83f13ce3673260bb38dea73eb0b0f3aea4a6974c35d57353023b67ace0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0d12c8cb030080ba70a6470da2af0e8e5d5c5258bdd8e5eeac00b6e0acd165f3
MD5 a99579b67357f619893bc0db068bfbf4
BLAKE2b-256 f3accc070b9119dbe2579d6adc744903c46752d0dc09a5545cd14f4c1a9934a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bad9ed2b17de8e3010116e5a7d109d1a34a304969587c62cca205976a48778f7
MD5 e46033ed2c517a79e3f0a541469a17c9
BLAKE2b-256 b62e151627fd93ec156d3a9cc3a423c2819200d301ed34dfa58f29888148f1ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.22.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ec093937c566bc2dbaae2227fef5b4f059488259111f462d0de02d31960c109b
MD5 7d493e2c7f0a923262153e444f524170
BLAKE2b-256 f2694ba866fa385ecf4150c662ecbddda77d05f1b2d844061832e7539669628a

See more details on using hashes here.

Provenance

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