---
title: "Underwater acoustics: radiated noise and pile driving"
description: "ISO 18405 reference levels (SPL, SEL, peak) re 1 µPa, the ISO 17208 ship radiated noise level and equivalent monopole source level via the Lloyd's-mirror correction, and the ISO 18406 single-strike, peak and cumulative pile-driving sound exposure."
references:
  - type: book
    authors: ["Urick, R. J."]
    year: 1983
    title: "Principles of underwater sound"
    edition: "3rd ed."
    publisher: "McGraw-Hill"
    note: "Reprinted 1996 by Peninsula Publishing. ISBN 978-0-932146-62-5. Open Library record (https://openlibrary.org/books/OL9317725M). The classic treatment of underwater sound levels and of ship radiated noise behind the reference conventions of sections 1-2."
  - type: book
    authors: ["Ainslie, M. A."]
    year: 2010
    title: "Principles of sonar performance modelling"
    publisher: "Springer"
    doi: "10.1007/978-3-540-87662-5"
    note: "The systematic treatment of underwater acoustical quantities in the line that ISO 18405 standardised; supports the reference levels and the source level of sections 1-2."
  - type: standard
    organization: "International Organization for Standardization"
    year: 2017
    title: "Underwater acoustics — Terminology"
    designation: "ISO 18405:2017"
    url: "https://www.iso.org/standard/62406.html"
    note: "The 1 µPa sound-pressure and 1 µPa²·s sound-exposure references and the definitions of sound pressure level, sound exposure level and peak sound pressure level."
  - type: standard
    organization: "International Organization for Standardization"
    year: 2016
    title: "Underwater acoustics — Quantities and procedures for description and measurement of underwater sound from ships — Part 1: Requirements for precision measurements in deep water used for comparison purposes"
    designation: "ISO 17208-1:2016"
    url: "https://www.iso.org/standard/62408.html"
    note: "The radiated noise level, the deep-water three-hydrophone geometry and the tabulated source-level uncertainty of section 2."
  - type: standard
    organization: "International Organization for Standardization"
    year: 2019
    title: "Underwater acoustics — Quantities and procedures for description and measurement of underwater sound from ships — Part 2: Determination of source levels from deep water measurements"
    designation: "ISO 17208-2:2019"
    url: "https://www.iso.org/standard/62409.html"
    note: "The equivalent monopole source level via the Lloyd's-mirror surface correction (Formula 3) for a 0.7·draught source depth."
  - type: standard
    organization: "International Organization for Standardization"
    year: 2017
    title: "Underwater acoustics — Measurement of radiated underwater sound from percussive pile driving"
    designation: "ISO 18406:2017"
    url: "https://www.iso.org/standard/62407.html"
    note: "The single-strike (Formulae 3–4), peak and cumulative (Formulae 8–9) sound exposure of section 3, and the mean-square sound pressure level (Formula 7) of section 1."
---

import ThemeImage from '../../../components/ThemeImage.astro';

Underwater sound is referenced to **1 µPa** (not the 20 µPa of airborne
acoustics), and its exposure to **1 µPa²·s**. This page covers the ISO 18405
reference levels realised as the shared primitives, the ISO 17208 ship
**radiated noise level** and equivalent **monopole source level**, and the
ISO 18406 percussive **pile-driving** single-strike, peak and cumulative sound
exposure. Every quantity is an exact closed form, verified analytically.

## 1. Reference levels (ISO 18405)

Three primitives, referred to 1 µPa, are computed from a captured pressure
signal (in Pa):

$$
\mathrm{SPL} = 10\lg\frac{\langle p^2\rangle}{p_0^2}, \qquad
\mathrm{SEL} = 10\lg\frac{\int p^2\,dt}{E_0}, \qquad
L_{p,\mathrm{pk}} = 20\lg\frac{\max|p|}{p_0},
$$

with `p₀ = 1 µPa` and `E₀ = 1 µPa²·s`. The sound pressure level is the
mean-square level (ISO 18406 Formula 7); the sound exposure level integrates the
squared pressure over the record (Formulae 3–4); the peak level is the
zero-to-peak value.

```python
from phonometry import underwater

spl = underwater.sound_pressure_level(pressure)        # dB re 1 µPa
sel = underwater.sound_exposure_level(pressure, fs)     # dB re 1 µPa²·s
pk = underwater.peak_sound_pressure_level(pressure)     # dB re 1 µPa
```

To re-reference a level between the underwater (1 µPa) and airborne (20 µPa)
conventions (a `20·lg(20) ≈ 26.02` dB shift, **not** an energy/intensity
equivalence), use `underwater_to_in_air_spl` / `in_air_to_underwater_spl`. For
background-noise subtraction, reuse the ISO 3744 `background_noise_correction`
(`K1`) helper.

## 2. Ship radiated noise and source level (ISO 17208-1/-2)

A surface ship measured in deep water is described first by its **radiated noise
level** and then by an **equivalent monopole source level**:

$$
L_{\mathrm{RN}} = 20\lg\frac{p_{\mathrm{rms}}}{p_0} + 20\lg\frac{r}{r_0}
\ \ \mathrm{dB\ re\ 1\ \mu Pa\!\cdot\! m}, \qquad
L_s = L_{\mathrm{RN}} + \Delta L,
$$

where the Lloyd's-mirror surface correction (ISO 17208-2 Formula 3) for a
nominal source depth `d_s = 0.7·D` (D = mean draught) and `u = k·d_s`,
`k = 2πf/c`, is

$$
\Delta L = -10\lg\frac{2u^4 + 14u^2}{14 + 2u^2 + u^4}\ \mathrm{dB}.
$$

`ΔL` diverges at low `u` (grazing / low frequency) and tends to `−10·lg(2) =
−3.01` dB as `u → ∞`. The reported source level is an *equivalent monopole
broadside* value and must be quoted with its source depth.

<ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/ship_source_level.svg" alt="Ship radiated noise level and equivalent monopole source level versus frequency, with the Lloyd's-mirror surface correction on a twin axis showing its low-frequency divergence and its approach to −3 dB at high frequency" width="82%" loading="eager" />

<details>
<summary>Show the code for this figure</summary>

```python
import numpy as np
from phonometry import underwater

freqs = np.array([20, 25, 31.5, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315,
                  400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150,
                  4000, 5000, 6300, 8000, 10000, 12500, 16000, 20000.0])
rnl = 175.0 - 12.0 * np.log10(freqs / 20.0)
res = underwater.monopole_source_level(rnl, freqs, draught=6.0)
res.plot()
```

</details>

```python
from phonometry import underwater

lrn = underwater.radiated_noise_level(2e-6, 100.0)   # p_rms = 2 µPa, r = 100 m
res = underwater.monopole_source_level(lrn, 200.0, draught=6.0)
print(res.source_level, res.surface_correction, res.source_depth)
res.plot()   # RNL, Ls and ΔL vs frequency (needs matplotlib)
```

`hydrophone_depths` gives the three ISO 17208-1 measurement depths from the
15°/30°/45° depression angles, and `source_level_uncertainty` the tabulated
expanded uncertainty (5 dB ≤100 Hz, 3 dB 125 Hz–16 kHz, 4 dB >16 kHz).

## 3. Pile-driving sound (ISO 18406)

Percussive pile driving radiates one impulsive pulse per hammer strike. Each
strike has a **single-strike sound exposure level** `SEL_ss`; over a driving
sequence the exposures add to a **cumulative sound exposure level**:

$$
\mathrm{SEL_{cum}} = 10\lg\sum_{n} 10^{\mathrm{SEL}_n/10},
\qquad\text{and for } N \text{ identical strikes } = \mathrm{SEL_{ss}} + 10\lg N.
$$

<ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/pile_driving.svg" alt="A percussive pile-driving strike pressure waveform with its peak marked, and below it the cumulative sound exposure level growing as SEL_ss plus ten times the logarithm of the number of strikes" width="82%" />

<details>
<summary>Show the code for this figure</summary>

```python
import numpy as np
from phonometry import underwater

fs = 48000
t = np.arange(int(0.3 * fs)) / fs
envelope = np.where(t < 0.01, t / 0.01, np.exp(-(t - 0.01) / 0.04))
pressure = 8000.0 * envelope * np.sin(2 * np.pi * 180.0 * t)
res = underwater.pile_strike_metrics(pressure, fs)
res.plot()
```

</details>

```python
from phonometry import underwater

sel_ss = underwater.single_strike_sel(strike_pressure, fs)   # dB re 1 µPa²·s
sel_cum = underwater.cumulative_sel_identical(sel_ss, 2000)   # 2000 strikes
res = underwater.pile_strike_metrics(strike_pressure, fs)
print(res.single_strike_sel, res.peak_spl, res.pulse_duration)
res.plot()   # waveform + cumulative energy (needs matplotlib)
```

`pile_strike_metrics` bundles the single-strike SEL, the peak sound pressure
level, the SPL/Leq and the 90 %-energy pulse duration for one recorded strike;
`cumulative_sel` sums a sequence of differing per-strike SELs.

## See also

- API reference: [`underwater.acoustics`](/phonometry/reference/api/underwater/acoustics/), [`underwater.pile_driving_noise`](/phonometry/reference/api/underwater/pile-driving-noise/) and [`underwater.ship_radiated_noise`](/phonometry/reference/api/underwater/ship-radiated-noise/).
- General underwater propagation modelling (ray, normal mode, parabolic equation) is covered in [Underwater sound propagation](/phonometry/guides/underwater-propagation/).
