feat: ADR-021 vital sign detection + RVF container format (closes #45)

Implement WiFi CSI-based vital sign detection and RVF model container:

- Pure-Rust radix-2 DIT FFT with Hann windowing and parabolic interpolation
- FIR bandpass filter (windowed-sinc, Hamming) for breathing (0.1-0.5 Hz)
  and heartbeat (0.8-2.0 Hz) band isolation
- VitalSignDetector with rolling buffers (30s breathing, 15s heartbeat)
- RVF binary container with 64-byte SegmentHeader, CRC32 integrity,
  6 segment types (Vec, Manifest, Quant, Meta, Witness, Profile)
- RvfBuilder/RvfReader with file I/O and VitalSignConfig support
- Server integration: --benchmark, --load-rvf, --save-rvf CLI flags
- REST endpoint /api/v1/vital-signs and WebSocket vital_signs field
- 98 tests (32 unit + 16 RVF integration + 18 vital signs integration)
- Benchmark: 7,313 frames/sec (136μs/frame), 365x real-time at 20 Hz

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
ruv
2026-02-28 22:52:19 -05:00
parent fd8dec5cab
commit 1192de951a
10 changed files with 3227 additions and 2 deletions

View File

@@ -4110,6 +4110,7 @@ dependencies = [
"futures-util",
"serde",
"serde_json",
"tempfile",
"tokio",
"tower-http",
"tracing",
@@ -4197,6 +4198,14 @@ dependencies = [
"wifi-densepose-mat",
]
[[package]]
name = "wifi-densepose-wifiscan"
version = "0.1.0"
dependencies = [
"serde",
"tracing",
]
[[package]]
name = "winapi"
version = "0.3.9"