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

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

doppler_dsp-0.23.1-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.23.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.23.1-cp313-cp313-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.23.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.23.1-cp312-cp312-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.23.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.23.1-cp311-cp311-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.23.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

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

doppler_dsp-0.23.1-cp310-cp310-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.23.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.2 MB view details)

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

doppler_dsp-0.23.1-cp39-cp39-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.23.1.tar.gz
  • Upload date:
  • Size: 13.2 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.23.1.tar.gz
Algorithm Hash digest
SHA256 389a43c0acd1422e181d153c41079c1c07ebf0114d16dfd92d10c5952345ce37
MD5 6917c6ba33ff1df4fc58426dd8b7793d
BLAKE2b-256 72459f1a49a30556e5008dac9ef0392ed936ba713cf8de6aaa6f38b674cf51bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d2ab5cf4edd4cff9bee0af3c8f2e78b136f2950524a008a80bf2ae8aac4edf0
MD5 7061bda83d100b1ce63b0caadf4edf13
BLAKE2b-256 65649ccd6c48345159c6b2c324c78e0835ebcf3dabca9f33b4129e0ecd392d8c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 41837955a87e4bff0ebf9a81d3c248f7415e8100ed4e3eb4b792015f4af7f494
MD5 a154ccf14feec6f035f99c1d3381350b
BLAKE2b-256 78886f446de5bb3da5f75d411838d32afbeac2eeacca43a75a8d9120762e62bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6790e187a35fa851f48957bc916a074c266c6607c0f93ac4994a70d9fff9232a
MD5 c8e3107db981f931a091317867bdbe54
BLAKE2b-256 ef960a28b8f9b3b223f4358bca882ee2f13a1d3798e8845daede8998e5e16a81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e0a5cdaa1cc4d726d44fa7e550546684bd0b3422bb195330b053052200aa0151
MD5 443ee71f534df58bc77c047728bf20cf
BLAKE2b-256 432f74bb908b26c86e3d346b1db422289cd14ace787917015308e1001956bf99

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5c3cd6ba8ab916afcc3777c3c16f88485ff3f8cb44f6650cc486a8525279da1
MD5 bdf444cedc6ad291a8c8abbb12efd48e
BLAKE2b-256 8c1b40fb04603495169ac3f5eba61ce6f253aa773dcb864eed4ebdacc5faedf6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aacbaf5fe8e3ac7e1dec5baf8f14b7372eb8bf526fbf68fbba0ec04c5761bff0
MD5 b0afea04edb1077a2dedaa86c3ad6b1f
BLAKE2b-256 64098ec14414f014cb62abfe7477439f7a8b6d64c91b8df7acca25d3328cfd09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21eeadfee812ed5b1a461806b8b484cb70a22e096bafe6d1492f70b8a8aac4c4
MD5 3a1dcb77edfe3cc346158f9e10306e3f
BLAKE2b-256 a0712dee6730f99defc74150986da9d9c0c123e7133c4c873ae6bd8800c6574e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 81d3eb0bbe6cb8fdc8fce0f388789f3dd9e24229376edc556831fb37f9fb9b3b
MD5 da91731b530a0bdb2948c220f7c6f0f4
BLAKE2b-256 813455240f2aaf2091471daadaff95de8b63c5bdb0ae701ec477408f6b3149b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8815def787720a76ac661b75b49c55d3f20d45381a850fecb13797f572ba935a
MD5 419d5bda6e42a24d1462b2687ceda482
BLAKE2b-256 e99465cb7b282efc3b6f42e9377d6e71ab61f467030873cf2f6ed47f63742a2e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 92309a3519d04cc28b26fda14a2954fafbe7d1acc4f6d5b2d7da6d0cafb064df
MD5 f06ff26235d0aa850f4a13aca6fb994f
BLAKE2b-256 1753d587aa8721b0f7b0bf6c61f5046ed52048359e5288319b9afc0e1d78edf7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96eb0d6f8303331ee77affb19c4395fe7b2c25f018a89c48e7e06a514035e5cf
MD5 eea36a00ba2271009000ba6bce480e4b
BLAKE2b-256 8f1c9c722f56481cf396a5ed4dcb78e7f1d9c267ec8a6a0134510da4964751c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 09d3e8b6de985fa49a70c3d516644a72c3b648ec703e2bbfed1d677ceae153bc
MD5 d87fab5a8e6d1258421ec95456a30658
BLAKE2b-256 2151c0fea961ebd149d2f0ba0243118ede249987f9b1790e22a014b4f1e8858d

See more details on using hashes here.

Provenance

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