AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
Practical, portable, performant digital signal processing.
doppler is a C99 DSP library — NCO, FIR, FFT, polyphase resampling, DDC,
AGC and more — with file, buffer, and NATS-based streaming, and a
scenario-driven waveform generator (wfmgen) with byte-identical
CLI/Python/C parity. Python and Rust wrap the same C core — no second
implementation, no divergence, full SIMD throughput from any language.
New here? Start with Start Here — a one-page map from
"what are you trying to do" to the right doc.
API Reference — Full Python + C API index檢視完整 README ↗doppler is a C99 DSP library — NCO, FIR, FFT, polyphase resampling, DDC,
AGC, carrier and burst acquisition, DSSS receivers, convolutional and
Reed-Solomon coding, CCSDS framing and more — with file, buffer, and
NATS-based streaming, and a
scenario-driven waveform generator (wfmgen) with byte-identical
CLI/Python/C parity. Python and Rust wrap the same C core — no second
implementation, no divergence, full SIMD throughput from any language.
New here? Start with Start Here — a one-page map from "what are you trying to do" to the right doc.
Navigate — Python Quick Start · Architecture · Gallery · Examples · Guides · Waveform Generator · Design · Contributing
API Reference — Full Python + C API index
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.
Measured throughput, per build and per machine, is on
Benchmarks — generated by make bench-docs rather than
quoted here, so it cannot go stale. make bench measures your hardware.
pip install doppler-dsp
from doppler.spectral import FFT
import numpy as np
x = np.random.randn(1024).astype(np.complex64)
X = FFT(1024).execute_cf32(x)
print(f"FFT: {len(x)} samples in -> {X.shape[0]} complex64 bins out")
[!TIP] Using C?
jbx get-dopplergetslibdoppler.a/.soand the headers in one command — see C Quick Start.
Everything else — install options, the waveform generator, streaming, building from source — is in Python Quick Start.
Full docs: doppler-dsp.github.io/doppler
MIT. The core C library is pure C99 and links -lm and -lpthread. Its FFT
uses the
vendored pocketfft (BSD-3-Clause) for double precision and arbitrary sizes, and
the vendored PFFFT (Pommier/FFTPACK, BSD) for the native single-precision SIMD
path. The optional NATS stream component (libdoppler_stream) vendors
nats.c (Apache-2.0) — it too is pure C99, so no C++ toolchain is needed
anywhere in the build.