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

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 14.0+ ARM64

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

File metadata

  • Download URL: doppler_dsp-0.12.1.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.1.tar.gz
Algorithm Hash digest
SHA256 95ab8b8fa423bd6e7d255164d01f5519c44369330bbe9f4be66b091738ea6b6d
MD5 c652a0f786eb57d55ffa3b906630b545
BLAKE2b-256 e5a05d8d68e815806dcdc37576d418c2fde030c988ed9e8a4f4eb424b2dda515

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 828b32927ad4319c7ec1559758ef19826d4c134613a7210ef65eb47929fa91d4
MD5 ad12a8902820d959bf3dcb3acf60dd40
BLAKE2b-256 95b2e962a505be9ce733735aa59674579279a21a0d68cace2758454122ad413c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b5d6f5a3f53934224b9f7e636664620d16c08f5107a9caf4d3543e3f983823e4
MD5 ceaa601a792be7fc0305053462c492e9
BLAKE2b-256 31cbc5e91844535a5411c9047a96e84bd2c498cc30e76ec5a38ca76bbdab6b0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f219a3c87390922eb1c15e965c25136bae0d14029531efd268a414a38328ae48
MD5 79d738ee70dfa523329a5149df410264
BLAKE2b-256 b474403a8de59004697a346763cfaa4878864918de11831ebb046c5102b98ce9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5041523afb304130bac73183175702c4ada03a1631fd67cbc2ca6757ccb1eb5b
MD5 4cd91d7bc987b047cc1d5a9128159ed0
BLAKE2b-256 0f25706642d71d412b09686f7474a3e9733a2d86e511cc3129eeecc90dfc9ec6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7596b6989ceb8ebb0fb642e47795470943ee89411bf7b0262c541ec887ec9fbf
MD5 e42cd7ea309b5f6a06714e6d936b89b1
BLAKE2b-256 e5310258df26ea288ee2f8f094960d1eaf66a7ab53c678038ac9a75a83c639a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ca808bf3671ca7b171bc3fada680d9d767a22879f2e51b5d285d32acc169e9f4
MD5 460de14675b6fe15351f7fdba70e8f23
BLAKE2b-256 23942b560cd4d5b7efd1355d8bf6efd4f1081f6dc27ecf241089d3252992cb3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14e88e74deac66e67a9d434c2045f56c09784d0f3f147240fd428fb7301a43f3
MD5 cf8fa9fc35b8f5c12ed9f32545eac699
BLAKE2b-256 97827feadc441dda651de094b4089361223d8fc205695eb5f5a9f39bc411b99f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 23529e3d1c6cd137dec4dd6eabf06d24f54326186170860ff3995333405a15ac
MD5 f35498c5d4a9c0c67c90ad3898ea10da
BLAKE2b-256 060425df057e3a2bf47b534cfed0a99c17d8d5be49f4ab6d3993551776773bef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0291987b0bf7236c23e4c350e76364a9a0caecddef217825b8a694d8f6e7a219
MD5 b18ac72c2335fe2b2c27a41e0a7b1e4f
BLAKE2b-256 0d490f2ebb4d5e3a19405e9e9edfd7c7280060d67374efe90a34458c7ee1fab9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ec46bfb0859f2994658358a9e4fa8a04241e6c11ced80953576a510eb2386f4a
MD5 da74f21c54247633a78b3e1b691073a2
BLAKE2b-256 de7aebe48136aed2ef09be0964c0c630fb83f94200689cdca23d9d29df1d85cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 718bc01df617ad90e7c19463414ee3bd4e08a09eeb672c8e6cacf4bc9c1ad6f3
MD5 9a61bebf1acf507d1be4e48ad7fae997
BLAKE2b-256 cc189b93160f1a8962e070864dd7bb688747021d1c80ace656abd1c8fb0ac0bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for doppler_dsp-0.12.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 16f906a80835633558088defbb0b04b617fc1cdc69f39def2a63c281984962cb
MD5 a8e7f1648de66c8284bdc1452fe97cd2
BLAKE2b-256 3bd7bd4a01242553a51c5a42ad3204e76b0ccc0e1fb1b4c40a211467e838478d

See more details on using hashes here.

Provenance

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