1 Commits

Author SHA1 Message Date
leetcrypt af9942f822 feat: robust timing analyzer for RF device identification - iteration 2/5
- Implemented multi-method timing extraction (K-means, histogram, percentile)
- Added intelligent outlier removal with IQR method (2.5x threshold)
- Integrated timing analyzer into pattern_decoder.py
- Created comprehensive scoring system against protocol signatures
- Handles noisy/imperfect captures with tolerance windows

Components:
  - RobustTimingAnalyzer: Multi-strategy timing extraction
  - TimingCharacteristics: Extracted pulse/gap/ratio data
  - TimingScore: Similarity scoring with weighted components
  - TimingMatchStrategy: Integration with engine.py

Features:
  - Separates HIGH/LOW pulses before outlier removal (preserves alternating pattern)
  - Multi-method ensemble: tries K-means → histogram → percentile
  - Confidence scoring based on clustering quality
  - Timing ratios (short/long pulse ratios) for better matching
  - Duty cycle calculation
  - Configurable tolerance windows (default ±25%)

Test Coverage:
  - 15 new unit tests in tests/unit/test_timing_analyzer.py
  - All 41 tests passing (26 original + 15 new)
  - Coverage: clean signals, noisy signals, outliers, multi-level, scoring, real-world LaCrosse

Expected Impact:
  - Improved single-transmission accuracy (20% → 55% projected)
  - Better noise tolerance for Flipper Zero captures
  - More accurate protocol matching with 299 signatures
2026-02-14 19:06:13 -08:00