<!-- canonical: https://jmrplens.github.io/phonometry/es/guides/underwater-acoustics/ -->
Source: https://jmrplens.github.io/phonometry/es/guides/underwater-acoustics/

El sonido submarino se refiere a **1 µPa** (no los 20 µPa de la acústica en
aire), y su exposición a **1 µPa²·s**. Esta página cubre los niveles de
referencia de la ISO 18405 realizados como primitivos compartidos, el **nivel de
ruido radiado** de buques y el **nivel de fuente monopolar** equivalente de la
ISO 17208, y la exposición sonora por golpe, de pico y acumulada del **hincado
de pilotes** por percusión de la ISO 18406. Toda magnitud es una forma cerrada
exacta, verificada analíticamente.

## 1. Niveles de referencia (ISO 18405)

Tres primitivos, referidos a 1 µPa, se calculan desde una señal de presión
capturada (en 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},
$$

con `p₀ = 1 µPa` y `E₀ = 1 µPa²·s`. El nivel de presión acústica es el nivel
cuadrático medio (ISO 18406 Fórmula 7); el nivel de exposición sonora integra la
presión al cuadrado sobre el registro (Fórmulas 3–4); el nivel de pico es el
valor de cero a pico.

```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
```

Para re-referenciar un nivel entre las convenciones submarina (1 µPa) y aérea
(20 µPa), que supone un desplazamiento de `20·lg(20) ≈ 26,02` dB y **no** una
equivalencia de energía/intensidad, usa `underwater_to_in_air_spl` /
`in_air_to_underwater_spl`. Para restar el ruido de fondo, reutiliza el
`background_noise_correction` (`K1`) de la ISO 3744.

## 2. Ruido radiado y nivel de fuente de buques (ISO 17208-1/-2)

Un buque de superficie medido en aguas profundas se describe primero por su
**nivel de ruido radiado** y después por un **nivel de fuente monopolar**
equivalente:

$$
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,
$$

donde la corrección de superficie de Lloyd's mirror (ISO 17208-2 Fórmula 3) para
una profundidad de fuente nominal `d_s = 0,7·D` (D = calado medio) y `u = k·d_s`,
`k = 2πf/c`, es

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

`ΔL` diverge a `u` bajo (rasante / baja frecuencia) y tiende a `−10·lg(2) =
−3,01` dB cuando `u → ∞`. El nivel de fuente reportado es un valor *monopolar
equivalente de través* y debe indicarse junto con su profundidad de fuente.

<details>
<summary>Ver el código de esta figura</summary>

```python

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(language="es")
```

</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 y ΔL en función de la frecuencia (necesita matplotlib)
```

`hydrophone_depths` da las tres profundidades de medida de la ISO 17208-1 a
partir de los ángulos de depresión 15°/30°/45°, y `source_level_uncertainty` la
incertidumbre expandida tabulada (5 dB ≤100 Hz, 3 dB 125 Hz–16 kHz, 4 dB
>16 kHz).

Lo que convierte estas formas cerradas en un número *comparable* es la
disciplina de medida con que la ISO 17208-1 las envuelve. El buque recorre un
rumbo recto frente a una línea vertical de tres hidrófonos con un punto de
máxima aproximación de 100 m o una eslora, lo que sea mayor, en aguas de al
menos 150 m o 1,5 esloras de profundidad para que el fondo quede fuera de la
escena (apartados 5.2, 5.4). Solo puntúa la **ventana de datos** de ±30°
alrededor del CPA: el promediado corre mientras el buque cruza una ventana de
longitud $2\,d_{CPA}\tan 30°$ (aproximadamente 1,15 distancias de CPA),
centrada en el aspecto de través para el que se define el nivel de ruido
radiado (apartado 3, figura 3). Se exigen cuatro pasadas, dos por banda; los
tres niveles de hidrófono de cada pasada se promedian en potencia (fórmula 8),
las pasadas se promedian después aritméticamente (fórmula 9), y babor y
estribor se reportan también por separado, porque un buque real no radia de
forma simétrica (apartado 6.5). El ruido de fondo se mide al principio y al
final de cada periodo de ensayo y se aplica por banda la corrección al estilo
de la ISO 3744; el límite de viento recomendado es de 20 kn para buques de más
de 100 m (apartado 5.3). Si se omite algo de esto, el número que se cita es un
nivel, pero no un nivel de ruido radiado ISO 17208.

## 3. Sonido del hincado de pilotes (ISO 18406)

El hincado de pilotes por percusión radia un pulso impulsivo por cada golpe de
martillo. Cada golpe tiene un **nivel de exposición sonora por golpe** `SEL_ss`;
a lo largo de una secuencia de hincado las exposiciones se suman en un **nivel de
exposición sonora acumulado**:

$$
\mathrm{SEL_{cum}} = 10\lg\sum_{n} 10^{\mathrm{SEL}_n/10},
\qquad\text{y para } N \text{ golpes idénticos } = \mathrm{SEL_{ss}} + 10\lg N.
$$

<details>
<summary>Ver el código de esta figura</summary>

```python

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(language="es")
```

</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 golpes
res = underwater.pile_strike_metrics(strike_pressure, fs)
print(res.single_strike_sel, res.peak_spl, res.pulse_duration)
res.plot()   # forma de onda + energía acumulada (necesita matplotlib)
```

`pile_strike_metrics` agrupa el SEL por golpe, el nivel de pico, el SPL/Leq y la
duración de pulso al 90 % de energía de un golpe registrado; `cumulative_sel`
suma una secuencia de SEL por golpe distintos.

Estas son las métricas en que está escrita la regulación. La ISO 18406 existe
porque las cimentaciones de parques eólicos marinos, de plataformas de
hidrocarburos y de puentes se autorizan bajo marcos de evaluación de impacto
ambiental que exigen monitorizar el sonido radiado, y su alcance se dibuja en
consecuencia: hincado percusivo en aguas de 4 a 100 m, con el vibrohincado y
las tablestacas excluidos (apartado 1). La campaña mínima es una posición de
medida **lo más cerca posible de 750 m** del pilote, registrando la secuencia
de hincado completa y reportando la distancia real; el estándar es explícito
en que los 750 m se eligen por comparabilidad con el gran cuerpo de medidas
existente, no porque el límite de ningún regulador viva ahí, y en que un nivel
a una sola distancia no tiene valor predictivo para otros emplazamientos
(apartado 6.1.2, notas 1-2). Los criterios de impacto sobre la fauna marina se
formulan exactamente en las magnitudes de esta sección, un tope al SEL por
golpe o acumulado y al nivel de pico a una distancia declarada, y por eso
`pile_strike_metrics` los reporta juntos y `cumulative_sel` sigue la suma
energética golpe a golpe de las fórmulas 8-9.

## Qué cubre esta guía

**Cubierto.** La ISO 18405:2017 para los niveles de referencia re 1 µPa y
1 µPa²·s: `sound_pressure_level`, `sound_exposure_level` y
`peak_sound_pressure_level`. Las ISO 17208-1:2016 e ISO 17208-2:2019 para el
nivel de ruido radiado del buque y el nivel de fuente monopolar equivalente:
`radiated_noise_level` y `monopole_source_level`, con la corrección de
superficie de Lloyd's mirror (fórmula 3) y la profundidad de fuente de
0,7·calado (fórmula 1), la geometría de tres hidrófonos
(`hydrophone_depths`) y la incertidumbre tabulada del nivel de fuente
(`source_level_uncertainty`). La ISO 18406:2017 para las métricas de hincado
de pilotes de la sección 3: la exposición sonora por golpe (fórmulas 3-4), el
SPL cuadrático medio (fórmula 7) y la exposición sonora acumulada (fórmulas
8-9), que calculan `single_strike_sel`, `cumulative_sel`,
`cumulative_sel_identical` y `pile_strike_metrics`.

**No cubierto.** La disciplina de medida de la ISO 17208-1 en sí no está
implementada: el promediado en potencia y aritmético de cuatro pasadas y tres
hidrófonos (fórmulas 8-9), las comprobaciones de geometría de CPA y
profundidad de agua, el puntuado de la ventana de datos de ±30° y la
corrección de ruido de fondo al estilo ISO 3744 descrita en la sección 2
anterior quedan a cargo del lector; la biblioteca solo aporta las fórmulas
cerradas `radiated_noise_level` y `monopole_source_level`. La propia ISO
18406 excluye el vibrohincado y las tablestacas de su alcance (apartado 1),
así que el ruido del hincado continuo no tiene forma cerrada aquí ni en
ningún otro lugar de phonometry.

## Véase también

- Referencia de la API: [`underwater.acoustics`](/phonometry/es/reference/api/underwater/acoustics/), [`underwater.pile_driving_noise`](/phonometry/es/reference/api/underwater/pile-driving-noise/) y [`underwater.ship_radiated_noise`](/phonometry/es/reference/api/underwater/ship-radiated-noise/).
- El modelado general de propagación submarina (rayos, modos normales, ecuación parabólica) se cubre en [Propagación submarina del sonido](/phonometry/es/guides/underwater-propagation/).
