github francescopace/espectre 1.5.0
v1.5.0 - Automatic Subcarrier Selection

latest releases: 2.3.0, 2.2.0, 2.1.0...
one month ago

Implemented NBVI (Normalized Baseline Variability Index) algorithm for automatic subcarrier selection in both micro-espectre (Python) and espectre (C).

Algorithm:

Formula: NBVI = 0.3 × (σ/μ²) + 0.7 × (σ/μ) (lower = better)
Percentile-based baseline detection (p10, NO threshold needed)
Noise Gate: excludes weak subcarriers (below 10th percentile)
Spectral spacing: Top 5 + Δf≥3 for remaining 7

Performance:

Pure data: F1=97.1% (gap to manual: -0.2%)
Mixed data: F1=91.2% (4/4 calibrated)
vs Variance-only: +4.7% (pure), ∞ (variance fails on mixed)

Implementation:

Python: src/nbvi_calibrator.py (percentile-based only)
C: main/nbvi_calibrator.c/h (same algorithm)
Auto-calibration at boot if no saved configuration
Memory: 128KB buffer (500 packets × 64 subcarriers)
Re-calibration: at boot or after factory_reset command

Benefits:

✅ Zero configuration required
✅ Adapts to any environment automatically
✅ Near-optimal performance (-0.2% gap to manual)
✅ Production-ready (validated on 1000+ packets)

Don't miss a new espectre release

NewReleases is sending notifications on new releases.