The waveform is the instrument
Everything the payload can see is decided before the pulse leaves the transducer. Range resolution, processing gain and how well a weak return survives beside a strong one are all fixed by choices made in the microsecond before transmit.
The relationships that do not bend
These are not tuning parameters. They are what the physics allows, and every figure on this site sits downstream of one of them.
δR = c / 2B Range resolution is set by bandwidth alone. Not by pulse length, not by power.
TBP = τ · B Time–bandwidth product. A long pulse and a wide sweep both buy processing gain.
G = 10·log₁₀(TBP) Compression gain in dB — the reason a long chirp beats a short ping at range.
c ≈ f(T, S, Z) Sound speed from Mackenzie. Every range figure is downstream of it.
The window trade
Every dB of sidelobe rejection is bought with main-lobe width, and main-lobe width is range resolution. There is no window that is simply better than the others — which is why it is a runtime choice rather than a decision someone made once in a header file.
| Window | Peak sidelobe | Main lobe | When |
|---|---|---|---|
| Rectangular | -13.3 dB | 1.00× | Maximum resolution, nothing nearby to mask. |
| Hann | -31.5 dB | 1.50× | The default. Rejection worth the width almost always. |
| Hamming | -42.7 dB | 1.47× | Better first sidelobe, slower far-out roll-off. |
| Blackman | -58.0 dB | 1.73× | A strong return beside a weak one you still need. |
Decision to range
- 01 SolveMeasured
~470 candidate parameter sets scored against the active sonar equation; the best feasible one wins.
- 02 SynthesiseMeasured
Built sample by sample with a phase accumulator stepping a Q15 sine table — no runtime sinf().
- 03 WindowMeasured
Applied before transmit, so the sidelobe cost is paid once and is known.
- 04 TransmitMeasured
Buffer handed to the DAC over DMA; the CPU is released before the pulse finishes.
- 05 CorrelateMeasured
Echo cross-correlated against the transmitted replica — a real correlation, not an envelope detector.
- 06 Peak → rangeCalculated
Peak index × c / 2, with c from Mackenzie at the sampled conditions.
That gain is why a long, wide chirp beats a short loud ping at range — the energy is spread out in time and put back together by the correlator, instead of having to arrive all at once.