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.0.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.0-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.0-cp314-cp314-macosx_14_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 14.0+ ARM64

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

File metadata

  • Download URL: doppler_dsp-0.23.0.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.0.tar.gz
Algorithm Hash digest
SHA256 3a584f299beac41300564cfc1a3b369f043a0ef60e175dc7579d1ef46edcfe02
MD5 cd803335437f3c1b4572e2bc98257ba6
BLAKE2b-256 776e0ab6716360720bc21de1cbe30daacf7f03529abf2f323557522726c4af45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 563381742cbd1b4c851af6175a43b555f24d1ace91f014f085c015259f9723b1
MD5 4e6bfe9b3338a22e7da242e8fcb50b68
BLAKE2b-256 47ac7df628aae1149eaa1712238bdf2b1df33b4b138499330eae6ad2e6076ab4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a3e03d514e7899a0b7dd08096e5180352c653f617e767f02dedbbcd906ee7122
MD5 66c6f7739cdc86ecab6ca87ae2a0bc70
BLAKE2b-256 e0ef2f39171c656d29963bbd0eb83cbcab106c8c32ba5aed2e4189bae864a652

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6173fe2f9fb6fc4e21aec4da65a44ac14d09455225eb6ffcaa64fd4a743e9cb
MD5 c9def0c87ad6b922e6673432662ebb06
BLAKE2b-256 58c299ae6dc40ccad9a52da1329a9c550414e1afd2366a1edee8941fbff6985c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 30a43502c66738c9618750b8d8d667e35b1c55150bf11be5accac7b2e53fbcb1
MD5 964fccb36114eebff4eabbee07a8646d
BLAKE2b-256 d9b577326be6bf80755371a7bd270ce7bc4f963f9c8509c69c2b28606ddcdd55

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4cebbd0ea560e1023b733a476f9ae7f03f5147b859fe1fb5947877506a2fa7da
MD5 75d5ae5c1b76bd8ba287fc854aebbacb
BLAKE2b-256 20a165e1410371f672bf247c713a924f86c952fc8d7080b0be98bfe8cfc2e1fe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 16222d3605d34b1b3e45826f5d7e85b4cfe3b137f20be4f55f7cb5207457ae3b
MD5 18bba636b3e2b23717d073427ac513c2
BLAKE2b-256 0cbcd76748d7e35f5b2b36c66585a84b1968a3634465909bd3ce55672a4a1a36

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 513d94ab5abb7b65952045f7b960bb66c650d460b8540b3d51353e6836237b22
MD5 56ee0f6beba6eece1f82399c30280de7
BLAKE2b-256 17349e0efdf70efa03d2cb6aa3778e6f02209d0f2034f710f1107642f18bb1e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b67a8b9c2ad4c5823f384da346004dc44b53ed0ec8c933298bc1c1973dc51922
MD5 a44d1cc1719ddbc58f5e0edf0b229ddd
BLAKE2b-256 c18afa37056e0549f9bd5931632b76eb4d33d2ee977aa7f03a51a19da02f56c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d5f2acd2f6a56e9c392c4a47040d91d9520605d272fa39031a48f0619c416ea
MD5 23737bb2a973968ecc74d6ff671fe568
BLAKE2b-256 cb5939ab61dca36efc5e83b0195270ac9610e173534b890ecc0238b59c3bfc4e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d63ee82693cd77cac53d4660d7e271eb726bcd71c6077d42175dcdfede0f04b6
MD5 74f5ffef278fe80097c15856c1e05c64
BLAKE2b-256 f602ddc5684d5b2f7ce6c4334d25676688703c23a85ada599ce3cd538a4a7033

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5ad760e05778e229780b77856822c6a306f1d19900d557166c1e04e8943f162
MD5 b4309bed4403db1420756902ad1f0ad0
BLAKE2b-256 a9387350c0f0221c28bb49f47fd9077c105493104426668ea259eed8211f25bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.23.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6de22a21d5d687265941a85e975a21202245c8b8ead68fc10b6c2727d71f82e6
MD5 ad3e8779d37a08e6c4d03d489f1ade29
BLAKE2b-256 8a2a2cebe2d19f8f4d4d5e1cf5ea876f3f4847f1fde693ccbad88d5bcc435519

See more details on using hashes here.

Provenance

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