File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # Engineering deep-dive
2+
3+ ## Architecture principles
4+
5+ The project follows a ** layered DSP architecture** :
6+
7+ 1 . Signal generation / input
8+ 2 . Core DSP kernels
9+ 3 . Validation layer
10+ 4 . Benchmarking and reporting
11+
12+ ## Performance model
13+
14+ | Algorithm | Current impl | Complexity | Bottleneck |
15+ | ----------| -------------| ------------| ------------|
16+ | FIR | time-domain | O(N·M) | memory + MAC |
17+ | Goertzel | direct | O(N) | scalar loop |
18+ | GCC-PHAT | naive DFT | O(N²) | transform cost |
19+ | Resampler | naive | O(N·M) | filtering |
20+
21+ ## Optimization roadmap
22+
23+ ### Phase 1 (low risk)
24+ - loop unrolling
25+ - memory alignment
26+ - cache locality improvements
27+
28+ ### Phase 2 (medium)
29+ - SIMD (AVX2 / AVX-512 / NEON)
30+ - fused multiply-add usage
31+
32+ ### Phase 3 (high impact)
33+ - FFT-based convolution
34+ - FFT-based GCC-PHAT
35+ - polyphase resampling
36+
37+ ## SDR integration direction
38+
39+ Future evolution:
40+
41+ - rtl-sdr input
42+ - IQ file processing (int16 complex)
43+ - real-time pipeline
44+
45+ ## Why not optimized yet?
46+
47+ Because:
48+
49+ - readability is critical for verification
50+ - baseline must be correct before optimization
51+ - easier to validate step-by-step improvements
52+
53+ This is a deliberate ** engineering-first strategy** .
You can’t perform that action at this time.
0 commit comments