Skip to content

Commit 4687e49

Browse files
committed
Add engineering deep dive doc
1 parent 6ebfdea commit 4687e49

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

docs/engineering.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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**.

0 commit comments

Comments
 (0)