← BlogMaritime & Subsea Physics· 1/4

The Sonar Equation — How to Calculate Whether a Submarine Can Be Heard, and Why Active and Passive Are Different

The sonar equation — the dB accounting ledger for underwater detection. How the active (two-way) and passive (one-way) forms differ in their terms, why transmission loss dominates detection range, and what happens if you mix the two up.

~4 min
sonarASWunderwateracousticsdetection

The Sonar Equation

Where light barely penetrates, sound takes over as the primary sense. So how do you calculate "can this submarine be detected?" The answer is the sonar equation — an acoustic accounting ledger that tracks the signal-to-noise balance in decibels (dB).

The Accounting of Signal vs. Noise

Detection ultimately comes down to: is the signal strong enough relative to the noise? For active sonar (you transmit, you listen for the echo), the equation is:

SNR = SL − 2·TL + TS − NL − DT
  • SL (Source Level) — strength of the sound you transmit
  • TL (Transmission Loss) — loss due to distance, refraction, and absorption
  • TS (Target Strength) — strength of the echo the target reflects back
  • NL (Noise Level) — ambient noise in the water
  • DT (Detection Threshold) — minimum SNR required to detect

If SNR > 0, detection occurs; if SNR < 0, no detection. This single expression gives you the maximum detection range — it's the distance at which TL grows large enough to drive SNR to zero.

Active Uses 2·TL, Passive Uses TL — The Paths Are Different

Here is the most important distinction. Does the sound travel one way or round trip?

Rendering diagram…
  • Active sonar — Your transmitted pulse travels to the target (TL), and the echo returns (TL again) — 2·TL total.
  • Passive sonar — The target's own noise reaches you over one-way TL. Instead of TS, you use the target's radiated noise level.

⚠️ Mixing the two equations produces the wrong signal — If you use active-sonar (2·TL) in a passive context, the signal calculates as far weaker than it actually is, leading to a false "undetectable" conclusion. Even though both are "acoustics," you must use the form that matches the path structure (round trip vs. one way) — this was an actual silent error we encountered.

The difference between the two equations is clear in code — active uses 2·TL, passive uses TL.

# active sonar: signal-to-noise (dB) — travels TL round-trip (2x)
def active_snr(SL, TL, TS, NL):
    return SL - 2*TL + TS - NL      # detected if > DT

# passive sonar: listens to target noise one-way (1x)
def passive_snr(SL, TL, NL, DI):
    return SL - TL - NL + DI        # using active's 2*TL here gives the wrong signal

Transmission Loss Is Computed Along Ray Paths, Not Straight Lines

Accurate TL calculation is what everything hinges on, and sound waves bend with water temperature, salinity, and depth. So TL is computed by tracing acoustic rays — not straight lines — using tools like BELLHOP. Reproducing depth-varying sound speed creates shadow zones and convergence zones that must be modeled correctly for detection calculations to match reality.

💡 Step 1 of the ASW kill chain — Anti-submarine warfare (ASW) flows: detect → classify → localize → prosecute. The sonar equation quantifies that first step. Getting the physics of detection right means the entire tactical chain that follows is built on a solid foundation.

In a nutshell

📌 The sonar equation calculates detection as a dB accounting of signal vs. noise — active sonar is round trip so it uses 2·TL; passive is one way so it uses TL. Mix them up and the signal is wrong. Transmission loss (TL) is computed via ray tracing, and this equation underpins the first step of the ASW kill chain: detect → classify → localize → prosecute.

See standard test results with videos and verdict evidence on the imSim Portal.

View public results →