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.11.0.tar.gz (8.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.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.11.0-cp314-cp314-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.11.0-cp313-cp313-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.11.0-cp312-cp312-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.11.0-cp311-cp311-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

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

doppler_dsp-0.11.0-cp310-cp310-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.11.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

doppler_dsp-0.11.0-cp39-cp39-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.11.0.tar.gz
  • Upload date:
  • Size: 8.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.11.0.tar.gz
Algorithm Hash digest
SHA256 46a1b143025cd44a6ab7f7dc24c11ddeb2651aa227abda90e19eb4bd5719b524
MD5 9c5debc82f242e3468fdc53b33237a98
BLAKE2b-256 51935825b8feac619f0f1519819102103195eb27caba1888cad25de22658eb13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2984d94be0f6cf22920c89a3b85017ad106a9b62087faa835723003b449fba2e
MD5 b3dd0b39e85aef89fd6e0824123ed1af
BLAKE2b-256 4404e14906ef22593f32604c1517dc5ca37e8934baa4aa3ece7d7bf006b5d598

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 25bf044357b9d4b64406c731c4e7fff2c478c4e47c06ba7f50cbfc4132cb36f2
MD5 30242aac6d2f08e3d370f18c2460c99c
BLAKE2b-256 7ef79b2e3f793fd0872f22ec339c154e07f2a69991eb3f5b75bebe553dde3f6d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 944c4ed9a8641fd5118103b02d89b2e142f58ef01ac5f4d6213e7129b44121c5
MD5 138cd370563fa94d3d0857828d08bdcd
BLAKE2b-256 12afcf4c13c83605d80ce413fe0a397b70d8093c8fc65a0e73c2d44d472c76b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c0bf314ba6064f48feca362a79f8630dfe5862dfc2e9c90517c752038c0a2db9
MD5 529f3c1640b9219057bc0a9791bdd077
BLAKE2b-256 a310823399d53639de726c1c77c2504afd349836a0ae5569b9527ef23539de28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8f2def50e52f567c3d5ea1f20ccf433dfc6f86b561619b56a64b0b5cf1f81d6
MD5 ece74478a6694d4278df3b7953bb1d1a
BLAKE2b-256 47e907f73f0e4f55bbc91929a2ce5c0e63df50745678983920756e9b87cfef26

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f685b31924e0124b11d9e12d860001ff2a25ea8596a4d9b545a0023f16d9d8d6
MD5 ea4c18077751d853394b004af9bcd32b
BLAKE2b-256 e56f020d126a9552d328726e7f7d1c384f01e398dcc0fd08b74e5aca5550c94d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8710e58e7e7949e6c91567c347f68240d6e3b4c87ec3b1643a4e6a62590c7146
MD5 4d2e3948d932ee28848f8c52ec3b6a7a
BLAKE2b-256 f9b698d7687d7aa3ca3db03ceb3ee76c951126a603e0e5f1a625b9882d4a676c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5fdd146b090dc6fbf65a56dce52e88c10cd53f0277c89af3861cc6c3d5d314d3
MD5 6770c96fcd1242ead89ae8d64b475d3f
BLAKE2b-256 43d1f60b5e4648025f33af2e249bd5ea0730f8ea15c2c4dbfb29d6e1d8aee43e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9b8417d660d3138b740829f91eae0daae4a8f55b8fde404a9ff139a18870ca0
MD5 9f8ec2092822552b5a586fbcbcf1b510
BLAKE2b-256 51247b27bcf49c9e92df888e8c27656b2177f5b3b7f5f0309fb5d7f61587f99f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 84f2c683226bb83222e644c7ca651db1ca1399f98c753e76a56bc993f481f024
MD5 f0c33bccd05dc5c5931246cca60162f5
BLAKE2b-256 0682fc2ea2eb5357788322d324544fdbe1e068fe3f43e85aa93ea8b5bf310e2e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72c5f447f0e2eb6776a181afb6102c87820f425bcf9a37fdbb4f2abb4d535735
MD5 ceca0cf2b3cac59e164dec1bf04d77df
BLAKE2b-256 847b2a9db429fd3ed457450570fad9a50a1e475fdf000d06853fd3ae76ca7cc6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.11.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dcd318da4e2110f4b871797fbf00f5b1f7eec4dd0dac6a464802c2ff491642fe
MD5 dec9f7f3cdc6f1bb7cb6d6f2e99e7e7b
BLAKE2b-256 1caabdd583e1f8774f5135db639b7080befda94f80fb221fa71b3dcd960a603d

See more details on using hashes here.

Provenance

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