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 |
|