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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 14.0+ ARM64

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

File metadata

  • Download URL: doppler_dsp-0.10.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d4e177ec0666a3111389bf844c36872f6864630702c511d82c230592560209e1
MD5 66c64e66651caf8cf17112e5bd90f776
BLAKE2b-256 dd32a8fc53a783bf84733e1d2cd70f8045d2fbb9c548fcaaead710cf61d11d83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 267e0a9778c9710258c33f175effe20fc3e191ffed51c542d17b23ae323c9a0e
MD5 eb0f550571532ffe1a09eb68e7a2eda2
BLAKE2b-256 0031aa71bf2c0d3a0658780c09f91099cb6e5c6388c731197595c80cece2ad4d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 426c454714c7adc0cb3d4c8382e9099876870d5e012c2a7459ea6e65e072e3c4
MD5 bed5c7114e47094e80b174b3865472c6
BLAKE2b-256 1a2294a70b759360f8246c00d46eda1be4978545800961cb4c073cba0450975f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10133e847b478524ff901b84ee2174713e3a3eb60c57ebb35727d96a66351322
MD5 1cfbca35c46eb36ed1e51ec470b86726
BLAKE2b-256 3fd4c482aa3f825d888913c6d56d50d168fae4c2473543db6c9f32c1672f67e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d9fe7f33ba3a81a192887596b2a57d85765c878e71a907f02bf5768b5885f2a7
MD5 d78edc8a9eb97aa005597f7e5c49fbf0
BLAKE2b-256 2d343205aa03d442f235be27a19a30935bd98e3f731c9bdc98d19aec73905dc6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c29335a7c7b7eb990beb92deb151a2c82c2fc65567998f288fc24f8bcccba02e
MD5 c867d4a6eda4da71936d379dadf4bc4d
BLAKE2b-256 050d863ced28d37dc956d25aa819f6008128ca4903aa459da3666254888d8169

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 291e7c8fb8369f670b26dce2fc9df54ccf78776ed48b2470aa12fc7e893694dd
MD5 a12319779b9a29e0e7fe71dd279ed315
BLAKE2b-256 9950c89f27592b1187e7197e0ed7e88e98ead359808b0190614bf38266f3a79f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ee16535e3f1019d2ae92ab20cfd85b60fc3c8496d3f36a895d34cf01322df98
MD5 a2e0aa284cb601281052098bc20c1023
BLAKE2b-256 d20f5e780c869a377df565830176f13dc8f874fd59675d2b6cdcad94ce1d6bd1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7a648e780ae99e65447152684b33a51800e28e1663182789d87a8e3ce01cb2c2
MD5 b2df3f10e8092fd5239f8751aef53567
BLAKE2b-256 cc8691ff459c44b65a358b772b7d7bfbee2ff71a04369b5e5d5eedc18c5cab98

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f896c5de8d6ea08046c714fa81031f843beba8ae9c9edcc0dae2c1c096d4bf86
MD5 f09db5fc0d1debd94df766823122bb86
BLAKE2b-256 cf8ba2c1ee404f1080f52f1d264d88521c4d90af4b31253cd32233c35e6152d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 51dc5700315edc16465ca7b8b437a1331831bd97eba57ba241a29a3e8a5ede8d
MD5 d8e261967b473cb228b005200273a2fc
BLAKE2b-256 9e09e47dbc7c85b6077aad5421000371751aa4343e23d37ac9c075753ba61396

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 511c8d898cc18e6c1c3cb2aaa14e42b18e6208aafce5b7cb907da9def40c9341
MD5 ac7f14482f258d09a3792a51e073ab21
BLAKE2b-256 bf75b2a9739ecf124cabefd531b1f3217718269ad178130d6db682527bf05a30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.10.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f1eb0754490a5032b63b49271d75bbbed2f591d9f3475e5431cbc0fc13aff3de
MD5 e8000d42f42683c4631b4507284a4a2e
BLAKE2b-256 fcc8ded710b9b420ae06b357e519d099bd7b4e4d3fa7de3d3941fc98dffc1246

See more details on using hashes here.

Provenance

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