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.13.0.tar.gz (8.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.13.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.13.0-cp314-cp314-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.13.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.13.0-cp313-cp313-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.13.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.13.0-cp312-cp312-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

doppler_dsp-0.13.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.13.0-cp311-cp311-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

doppler_dsp-0.13.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.13.0-cp310-cp310-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.13.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.13.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.13.0.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.13.0.tar.gz
  • Upload date:
  • Size: 8.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.13.0.tar.gz
Algorithm Hash digest
SHA256 7df27386da919e29bc4c57b5b7950859f9815121be047f6490906474b171069c
MD5 99c9499206daf28bc7b1fb945a1ec022
BLAKE2b-256 b29cb8aa4e75db49d74e550a53f7c83efef36df550a02b8497ca7a897b8e32f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3621ed3a0697707125addc045da0dc8b450a7cd58fafdc4313c969330b1eb2b5
MD5 bcccfb7ca9ca2397c1f86753a6a1f20d
BLAKE2b-256 bd39a9a08f42c8b747766bde33db5a8ce00109765e2d920aa7b16900c37ff3d6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 79a88b0be5d7bd5ce0231d965b49f5072461ba4f13a27d3632a177c6ee9e15cc
MD5 d1b526f065e75826752ff89823ff2f4f
BLAKE2b-256 8d1a662b7450401295dc517b78fbcc44bedb4bf5a77673b1a69682b9e9694c31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5be5ff5f51e54608a115e6f054d1f4974e30311969e0e1dd7e814d3cd8a82199
MD5 97a6d5a625dd4499a9be1d05f82cd39f
BLAKE2b-256 544d2f0fca338bb5612ce27a45258f749b8b4600a1bcca1827580a05d1a191ab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3d95601d9c239d75c4517aae0de770976fa901d9fe3e6b712ab961f77fff237f
MD5 1d289d588b73c72f0727ef3af528a11a
BLAKE2b-256 48cf45f0a66765ba42455eb28a99deb167fc60670aab75f8809ed16c800218e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b0088aa8536150fe05cfdc29a648402a7f9fb9ded03a8fd19ed4746c9212b3a
MD5 4d440b109af693c47b004248bd6b939b
BLAKE2b-256 48d2cbb7223611f5683a316d681bdc11447780cc4ec8bc1d8fdbe34be9fc74b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e6b5e64d2fae54286df5ad496f28f94a20f7a1614f654419bfc03cc2d9c5a1df
MD5 787fa53db7af4753f2ea9635a5583788
BLAKE2b-256 e98e89f456fd96e490495a67695e4ed80fcde3a3a6f90d956c9d981a74e117b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d63c338b9bbf0af53e4e422a13c2a930d9967c5f71c6854a927423debb60fb41
MD5 b08649f80fd8de9928b05abdb228dcd1
BLAKE2b-256 dfc617f2920fda9fa0581c17014bc724daa6a162fcbcb0dc204bc78b985ff19e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 faa02313e7aa3c8192939a165098f3afea860ee36f8c1f330179ae2e28b68df4
MD5 2e14a9b15f264143bb88c278159085ec
BLAKE2b-256 4d9be4dd7adfc59c005f5755c59dc613933b73424d0dd8ac59f3630d92423e81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2abcbff9fa03dfa23b6faf8f425e021fc379603677ed71f538f2ec933d59426
MD5 bcbc6cebc04253e0fc740baddf0d02ea
BLAKE2b-256 1f33334618184afdf940fcb3443839e348cc76b2ffce94c23aac971696dea1b3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7ef469970be0951e534cf76f047af4af87af35b1bf1d5adef5d91f2229f3d726
MD5 1e3415d71c931af3ea04b5dc5d70f351
BLAKE2b-256 cdf9986b098e6da7f588e87cb48684f63ad24c08de751ee587a30ae093790cba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6f439c0f9211832ec006259ad52af9db93084537d1d0cd66fb2f0d1e6cd31ba
MD5 c93cdaa06c578212dcb3f8cd931f029e
BLAKE2b-256 1e9eec0f7d32a2c9b908be9a762b911d6e31ba95ea7986443256d0cbd0714464

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.13.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 03606687c16ee6adda9fe5ec3df32b11ed0b5c440690855cb13b1bee17e13b66
MD5 845f29fa5feddeda0d528df1c381e48d
BLAKE2b-256 9102075340d4f63f966734bc03482c463f267206bc7f1ff1cec65494baeacbc3

See more details on using hashes here.

Provenance

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