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 = FFT(1024).execute(np.random.randn(1024).astype(np.complex64))

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.7.0.tar.gz (7.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.7.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (990.2 kB view details)

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

doppler_dsp-0.7.0-cp314-cp314-macosx_14_0_arm64.whl (803.7 kB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

doppler_dsp-0.7.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (990.0 kB view details)

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

doppler_dsp-0.7.0-cp313-cp313-macosx_14_0_arm64.whl (803.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

doppler_dsp-0.7.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (990.2 kB view details)

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

doppler_dsp-0.7.0-cp312-cp312-macosx_14_0_arm64.whl (803.8 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: doppler_dsp-0.7.0.tar.gz
  • Upload date:
  • Size: 7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 8959d1069f781ea6b682b9d641b30bd5cac414c174bd96d66d3e628f070f90ef
MD5 d3d5a02b59e5e1314c61f6547b233086
BLAKE2b-256 e5f20fc3499c3bc6c7559604cb7d366142489e84bd6b61bedb3b6e1bed5990bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.7.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.7.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 578062b2669dc763aca6861984db66e19f13ded6864d2bbc9bcd9b9354e26109
MD5 0f4657bde9dcf70924f30ecf3e20f8d1
BLAKE2b-256 5f41c6e638bfcb49f580d2d3adc7e17f98f1e1fe7250d83e3a16bbf3237757a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 467fd8e14b1ccfea85112bf3c83e207f6f031b39b531086141b426732497acae
MD5 db52216a665bc6e171dad7326ba7b3e0
BLAKE2b-256 16babddea2396b68a0580efb6b3dcfab5976ae5bcf8c0e53dc8bc79ad174ce21

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.7.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.7.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de105421e3c644228105cb4ae3d89e4f1d188fc8f97bc9e58412f98395e45aaf
MD5 86d6f26473c7d6e50bd923479676bd0b
BLAKE2b-256 e8920ca602893b62a0099b8816eb87841b8a6c2b64a7cbf47cbd96644f767cd3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3f5523012852a55114b763e7cca5d94c2a543469b59d9b6532f3fb97175279b7
MD5 fe92abbd58d6f4fb94ca5affac6fbfd3
BLAKE2b-256 10d0c5584a913dc50ae839844c9a2d6c011d524ad327242e2c71bafc5774e4cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for doppler_dsp-0.7.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.7.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a47b1d0cf8519359e81b31aa9bd1e767f01725345a271eeeb0e399a92fc66853
MD5 0ee58723a936a1a42018e0dfb763c368
BLAKE2b-256 665296b76ae661071f4f0b88d6b305eec36cb714f07dcb36f9785aaaa1d407eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.7.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 57cb4ed59587db6b4c3cf799f86ee502ac862df02f5c43cdb1a85c7775ad3324
MD5 40010ed0257d5b1c1b48c4e03d917409
BLAKE2b-256 3b0b9bb62e24e744888e53ce4cbc28159875c032dcecb12be6df19f626fb2062

See more details on using hashes here.

Provenance

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

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