Firing a ping launches an omnidirectional pressure wavefront that expands as a perfect circle at the local speed of sound in water, c ≈ 1500 m/s. When the expanding wavefront reaches a target's true range, it reflects an echo that travels straight back to the transceiver at the same speed c.
The transceiver only ever measures one number directly: the total round-trip time t between firing and hearing the echo. Range is then recovered from d = c·t / 2 — half the round trip, because the sound covered the distance twice.
A moving target also shifts the echo's frequency. Approaching the source compresses the wave (higher pitch); receding stretches it (lower pitch). For a monostatic sonar the wave is Doppler-shifted twice — once on the way to the moving target, once on the way back — giving the exact two-way formula f_echo = f₀·(c − v) / (c + v), where v is the target's radial velocity away from the source (negative when closing). Inverting that same formula from the measured echo frequency, v = c·(f₀ − f_echo) / (f₀ + f_echo), is exactly how real sonar operators estimate a contact's closing or opening speed without ever seeing it.
- Scope (top) — range rings every 250 m, the ping wavefront expanding outward, and target blips that flash bright the instant their echo is decoded.
- A-scope (bottom) — echo amplitude vs. range for the most recent ping, the classic sonar operator's trace: every target shows up as a peak at its true range.