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.12.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.12.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.12.0-cp314-cp314-macosx_14_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 14.0+ ARM64

doppler_dsp-0.12.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.12.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.12.0.tar.gz.

File metadata

  • Download URL: doppler_dsp-0.12.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.12.0.tar.gz
Algorithm Hash digest
SHA256 946d392a02295ed9a41074a068fb61c09e98005b30c397b7f2b26baa9410d7bf
MD5 a3756ddb98490f68277d04ebae021167
BLAKE2b-256 4d7b3bbdd13265cf7eb550b5cbc49b7d476885c9f4a8c99aff50fc13cbe3d8ba

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07475fa38b4649e5c45de9aeee00aaec6c334611f00c73746ae7b7443c9d0916
MD5 3a8cedfb3a6daff9bca9882af5e62f39
BLAKE2b-256 f08ffa180df37a75ed58ecbdeeeadf0230d23b0ebc427aa356ed435b91157198

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4438679d91c83106c1f302db16005ef2ea656a398b6ca388f065fa41462f3367
MD5 16152e70fac35a0cad9f1ba6bf158e44
BLAKE2b-256 084ffa73044766c8faf5778656b8d8ab1f777be72326da0cbe577e08c9ee7dab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e505d552676b6ba600f6e6996888d2c805a240ccc7da920f9c68e4494b200369
MD5 ff3aa2c6eb579e2f6d42117e24c3c32d
BLAKE2b-256 abf93c6780c2a3426b6c38b2a292f76180b1e57a54272b79ab4a03e743815372

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6250ba4119dc7d2c210690893d48957e4b691fd25d41b3ffccfb2969e6762d4c
MD5 2df472b5f4ad27e1a1ab3680e6c48357
BLAKE2b-256 59c876e72f45fcd3a8de27c541eb208a13331af02955ab8a6da7e9b958d1c274

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1172b76119c096234362abde3390a0a3a960e2f0f43e906d7ac420047d00e169
MD5 a966c9927a176a582a7f0420ff99cf5c
BLAKE2b-256 5d771a854cdf28d2b3f0886f007f2d0cc19d3007408d595b6ca7bc06af9e2dc2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 61adb5fe3ebfa18b083b5739136213b5df9dddb027646df5d6b6078d242be87d
MD5 9da23f84a1235aa23d7057e566a1e3e1
BLAKE2b-256 7a575dd546b5846193371fada34367baf37eb2badfcd990ccb4df65d097681e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e4ab32a145d75eabf3d1c1cac1cdef52fe1a5d4810bbdb0d21efd22b7fb3e94
MD5 d9e6421cbce1e952795d307a6e1077b0
BLAKE2b-256 cbb8728e6e83fb76b2cab7c3a2412f30caa27c00754872ea1a1a2050dd1d8941

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ea35bcd54d5675fe9c708c34b66cb9f9b7e6bb38a47a03325400d9ef19cd0d63
MD5 13b8ca445df170c41d58e49466f9081c
BLAKE2b-256 3e860ea9b4add51c6518a4dd1420bcbad3965d0a98b35d1e1432db4a22733b48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe32753efad65f82cd59ccae9dc0eeaced693da7f8129f82bce2304f979c6e95
MD5 d0c0fc9179be22e056a7ff30bc6cd075
BLAKE2b-256 e76f02ab732afddda638b107693b0eeb6558f27117250259b1dd9209150979d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 604b8b89d35b9aa055e1f9489e1c3dae7504e6ce09b4a12aa2c73530f7391864
MD5 305e22902184c483b4578fae7e4987fe
BLAKE2b-256 7bd00f08df77297ff86478c7de0cc48c633b4dd57a37b609a55afbaf1a864341

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0472ba152b135aee1e11b25c4da24fb5adc849490bad6a8c0ca6ff64361ba75
MD5 c8eee6651e27ac2bfdcec2bc68833615
BLAKE2b-256 2ac20ec20fd625fdc8768cd2abc77b9f3c338a0bc74696ad739adeabc0fe0b8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 09a2ccbf0010d795582076aeac6dc6ab9d650923237296424ec1ddd953583b40
MD5 192d9f8304b0c77a218d055b1ca63c4a
BLAKE2b-256 c1c57753ab637f9ffbe535c22786165cf9e53440a7cec0457d332e7f9b642f98

See more details on using hashes here.

Provenance

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