---
title: "Intensidad sonora (p-p)"
description: "Intensidad sonora con dos micrófonos según IEC 61043 con los indicadores de campo de ISO 9614-1."
references:
  - type: book
    authors: ["Fahy, F. J."]
    year: 1995
    title: "Sound intensity"
    edition: "2.ª ed."
    publisher: "E&FN Spon"
    doi: "10.4324/9780203475386"
    note: "ISBN 978-0-419-19810-9. La monografía sobre la materia: intensidad activa y reactiva, el estimador p-p y el presupuesto de error por desfase que hay detrás de esta página."
  - type: standard
    organization: "International Electrotechnical Commission"
    year: 1993
    title: "Electroacoustics — Instruments for the measurement of sound intensity — Measurements with pairs of pressure sensing microphones"
    designation: "IEC 61043:1993"
    url: "https://webstore.iec.ch/en/publication/4353"
    note: "Adoptada en Europa como EN 61043:1994. La norma de instrumentación: el estimador por espectro cruzado con dos micrófonos, el ensayo de intensidad residual detrás de δpI0, los requisitos de clase 1 / clase 2, y la corrección del sesgo por diferencias finitas con su límite de ancho de banda utilizable (cláusula 7.3, Tabla 3)."
  - type: standard
    organization: "International Organization for Standardization"
    year: 1993
    title: "Acoustics — Determination of sound power levels of noise sources using sound intensity — Part 1: Measurement at discrete points"
    designation: "ISO 9614-1:1993"
    url: "https://www.iso.org/standard/17427.html"
    note: "El índice presión-intensidad, los indicadores de campo F2 a F4 del Anexo A, el criterio de capacidad dinámica (Anexo B) y la regla de los 0,5 m de distancia de la superficie."
---

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

La *presión* sonora dice cuánto suena un punto; la **intensidad sonora** dice
hacia dónde *va* la energía. Es el flujo de potencia acústica (W/m²), una
magnitud vectorial con signo: por eso las sondas de intensidad pueden
localizar fuentes, separarlas del ruido de fondo y medir potencia acústica in
situ (ISO 9614) donde una medición de presión por sí sola no puede.

## El principio de dos micrófonos (IEC 61043)

Una sonda p-p sostiene dos micrófonos apareados a una pequeña distancia Δr. La
presión en el centro de la sonda es su media, y la velocidad de partícula
proviene del *gradiente* de presión (ecuación de Euler, en forma de
diferencias finitas):

$$
p = \frac{p_1 + p_2}{2}, \qquad
u = -\frac{1}{\rho_0\ \Delta r}\int (p_2 - p_1)\ dt, \qquad
I = \overline{p\ u}
$$

En la práctica, el estimador trabaja en el dominio de la frecuencia a través
del espectro cruzado de los dos canales (la forma equivalente de la norma):

$$
I(f) = -\ \frac{\mathrm{Im}\lbrace G_{12}(f)\rbrace}{2\pi f\ \rho_0\ \Delta r}
$$

<ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/diagram_pp_probe_es.svg" alt="Sonda de intensidad p-p de dos micrófonos con la distancia del separador y el eje de medición" width="92%" loading="eager" />

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

fs = 48000
rng = np.random.default_rng(0)
# Las presiones de los dos micrófonos de la sonda en Pa, p1 el más cercano a la fuente.
#   En una medición real son tus dos grabaciones de sonda calibradas;
#   sintetizadas aquí (p2 = p1 retardada una muestra) para que la guía funcione.
p1 = 0.02 * rng.standard_normal(fs)
p2 = np.concatenate(([0.0], p1[:-1]))   # p2 = p1 retardada una muestra

res = emission.sound_intensity(p1, p2, fs, spacing=0.012, fraction=3,
                      limits=[100, 2500])
print(res.total_intensity_level, res.total_direction)      # LI [dB], ±1
print(res.frequency, res.intensity_level)                  # por banda
res.plot()   # Lp frente a LI por banda + el índice presión-intensidad (requiere matplotlib)
```

<ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/intensity_demo_es.svg" alt="Niveles de presión e intensidad en tercios de octava para una onda plana progresiva frente a una onda estacionaria" width="92%" />

*Izquierda: en una onda plana progresiva toda la presión se transporta, así que
L_I ≈ L_p. Derecha: una onda estacionaria no transporta (casi) energía neta, así que
la presión es alta pero la intensidad se desploma. La diferencia L_p − L_I es
el **índice presión-intensidad**, el indicador de calidad fundamental de toda
medición de intensidad.*

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

```python
import matplotlib.pyplot as plt
import numpy as np
from phonometry import emission

fs = 48000
rng = np.random.default_rng(0)
# Las presiones de los dos micrófonos de la sonda en Pa, p1 el más cercano a la fuente.
#   En una medición real son tus dos grabaciones de sonda calibradas;
#   sintetizadas aquí (p2 = p1 retardada una muestra) para que la guía funcione.
p1 = 0.02 * rng.standard_normal(fs)
p2 = np.concatenate(([0.0], p1[:-1]))   # p2 = p1 retardada una muestra
res = emission.sound_intensity(p1, p2, fs, spacing=0.012, fraction=3,
                      limits=[100, 2500])

# res es el IntensityResult calculado en el ejemplo anterior.
# En una línea — Lp frente a LI por banda, con el índice presión-intensidad en un eje gemelo:
res.plot()
plt.show()

# A mano, con los campos por banda que lleva el resultado — reproduciendo lo que
# dibuja IntensityResult.plot() (etiqueta de barra, leyenda combinada de ambos ejes, título δpI):
fig, ax = plt.subplots()
ax.semilogx(res.frequency, res.pressure_level, "o-", label="Nivel de presión Lp")
ax.semilogx(res.frequency, res.intensity_level, "s--", label="Nivel de intensidad LI")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel [dB]")
twin = ax.twinx()
twin.bar(res.frequency, res.pressure_intensity_index,
         width=res.frequency * 0.2, color="#2ca02c", alpha=0.25,
         label="δpI = Lp − LI")
twin.set_ylabel("Índice presión-intensidad δpI [dB]")
# Combina los manejadores de ambos ejes en una sola leyenda, igual que .plot():
lines, labels = ax.get_legend_handles_labels()
tlines, tlabels = twin.get_legend_handles_labels()
ax.legend(lines + tlines, labels + tlabels)
ax.set_title(f"Lp frente a LI  (δpI total = {res.total_pressure_intensity_index:.1f} dB)")
plt.show()
```

</details>

El mismo contraste se despliega de forma dinámica abajo: los fasores de
presión y velocidad de una onda progresiva y de una estacionaria, con la
intensidad instantánea promediando a un flujo neto en un caso y a cero en el
otro.

<Video
  name="anim_instantaneous_intensity"
  width={2400}
  height={1350}
  title="Fasores de intensidad instantánea: onda progresiva frente a estacionaria"
  description="Una sonda p-p de dos micrófonos con fasores giratorios de presión y velocidad; la flecha de intensidad instantánea cambia de sentido mientras su promedio se estabiliza en un flujo neto para la onda progresiva y en cero para la onda estacionaria."
/>

## Saber cuándo fiarse del número

Dos límites físicos acotan toda medición p-p, y el objeto de resultado incluye
ambos:

- **Alta frecuencia**: el gradiente por diferencias finitas subestima I en el
  factor $\sin(k\Delta r)/(k\Delta r)$, verificado en CI contra la Tabla 3 de
  IEC 61043. `IntensityResult.bias_correction` proporciona el factor y
  `max_valid_frequency` (≈ 0,1·c/Δr; 2,9 kHz para un separador de 12 mm) el
  techo práctico. Los separadores mayores alcanzan frecuencias más bajas; los
  menores, más altas.
- **Campos reactivos**: cuando `pressure_intensity_index` (F2 en ISO 9614-1)
  se acerca al índice residual δ_pI0 de la sonda, dominan los errores de fase.

Sobre una superficie de medición, los indicadores de campo del Anexo A de
ISO 9614-1 califican el propio barrido. **F2**, el indicador
presión-intensidad de superficie, es el nivel de presión de superficie menos
el nivel de la *magnitud* media de la intensidad normal: cuanto mayor es,
más cerca está la medición del suelo de error de fase de la sonda. **F3**, el
indicador de potencia parcial negativa, es la misma diferencia tomada con la
intensidad media *con signo*: F3 − F2 > 0 revela potencia que entra por
partes de la superficie. **F4**, el indicador de no uniformidad del campo, es
la dispersión normalizada de las intensidades por posición: cuanto mayor es,
más posiciones de medición necesita la superficie. Junto con el criterio de
capacidad dinámica están disponibles directamente:

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

# Mediciones por posición sobre la superficie de medición de ISO 9614-1
pressure_levels = np.array([74.1, 73.8, 74.5, 73.2])       # Lp por posición (dB)
normal_intensity = np.array([1.2e-5, 1.0e-5, 1.4e-5, 0.9e-5])  # In con signo por posición (W/m²)

fi = emission.field_indicators(pressure_levels, normal_intensity)
print(round(fi.f2, 2), round(fi.f3, 2), round(fi.f4, 3))   # 3.41 3.41 0.197
ld = emission.dynamic_capability_index(18.0)   # δpI0 = 18 dB → Ld = δpI0 − K
print(ld, ld > fi.f2)                                      # 8.0 True (criterio 1)
```

<Video
  name="anim_intensity_scan_power"
  width={2400}
  height={1350}
  title="Barrido de intensidad sobre una caja de medición"
  description="Una sonda p-p recorre el barrido en serpentina sobre la cara superior de la caja de medición mientras aparecen detrás las flechas de intensidad normal, y las potencias parciales de las cinco caras se acumulan en el nivel de potencia acústica L_W."
/>

### El margen sobre el índice residual

Los dos canales de cualquier sonda y analizador real nunca están
perfectamente emparejados en fase. Alimenta ambos canales con la *misma*
señal (el ensayo de intensidad residual de IEC 61043): la intensidad
verdadera es exactamente cero y, aun así, el desajuste indica una pequeña
intensidad falsa. La distancia entre el nivel de presión y ese nivel de
intensidad falsa es el **índice presión-intensidad residual** `δpI0`, el
suelo de error de fase del instrumento expresado como índice; IEC 61043
clasifica sondas y procesadores (clase 1 / clase 2) sobre todo por él.

En campo, el índice medido `δpI = Lp − LI` dice cuánto sobresale el nivel
de presión respecto al del flujo neto, y el error sistemático de la
estimación de intensidad está acotado por el margen entre ambos índices:

$$
\varepsilon = 10 \log_{10}\!\left( 1 \pm 10^{(\delta_{pI} - \delta_{pI0})/10} \right)
$$

Un margen de 10 dB mantiene el sesgo dentro de unos 0,5 dB y uno de 7 dB
dentro de aproximadamente 1 dB; son precisamente los factores de sesgo `K`
de ISO 9614, y la **capacidad dinámica** `Ld = δpI0 − K` es el mayor índice
de campo que el instrumento puede tolerar para un grado de precisión dado.
Léelo como un presupuesto: cada decibelio que sube el `δpI` del campo consume
un decibelio de margen, y cuando `δpI` alcanza `δpI0` la lectura es puro
error de fase, de cualquier signo. Por eso el índice presión-intensidad, y
no la calidad de los micrófonos, es el que acota la exactitud alcanzable de
toda medida de intensidad.

### Campos reactivos cerca de la fuente

Cerca de una fuente el campo se vuelve **reactivo**: la presión y la
velocidad de partícula tienden a la cuadratura, así que una presión grande
transporta poco flujo neto. Para una fuente pequeña la componente en
cuadratura crece como `1/(kr)`; a 100 Hz y 0,25 m de la fuente ya es
aproximadamente el doble de la activa, y `δpI` sube igual que en la onda
estacionaria de la figura anterior. Lo mismo ocurre entre una máquina y una
superficie reflectante rígida, y en salas reverberantes donde el campo difuso
eleva la presión sin transportar energía hacia fuera. Por eso ISO 9614-1
mantiene la superficie de medida a más de 0,5 m de la fuente en promedio, y
por eso, cuando un barrido no cumple el criterio de capacidad dinámica,
alejar la superficie o añadir absorción a la sala suele bajar `F2` por
debajo de `Ld` con menos coste que un hardware mejor.

### Elegir el separador

El separador fija los dos extremos de la banda utilizable, en sentidos
opuestos:

- **El extremo alto es geometría.** La diferencia finita subestima el
  gradiente en el factor `sin(kΔr)/(kΔr)`, así que el techo escala como
  `1/Δr`: `max_valid_frequency ≈ 0.1·c/Δr` mantiene el sesgo dentro de unos 0,3 dB,
  lo que da aproximadamente 5,7 kHz con un separador de 6 mm, 2,9 kHz con
  12 mm y 690 Hz con 50 mm (`bias_correct=True` deshace el sesgo conocido
  algo más allá).
- **El extremo bajo es fase.** Una onda progresiva introduce solo
  `360·f·Δr/c` grados de fase verdadera a lo largo del separador, 0,8° a
  63 Hz con 12 mm, mientras el desajuste entre canales permanece fijo. Bajar
  la frecuencia encoge la señal, no el error, así que el margen sobre `δpI0`
  se desploma en baja frecuencia. Un separador mayor recupera ese margen:
  los requisitos de índice residual de IEC 61043 escalan como
  `10·lg(Δr/25 mm)`, de modo que doblar el separador aporta 3 dB de margen en
  baja frecuencia.

Ningún separador cubre por sí solo todo el rango de audio: el de 6 mm sirve
para el trabajo en alta frecuencia, el de 50 mm para la baja frecuencia y el
habitual de 12 mm cubre la banda media. Las mediciones de banda ancha se
realizan dos veces con dos separadores y se combinan los resultados por
banda; sea cual sea el separador montado, verifica `δpI0` con ese separador
instalado, porque el índice pertenece a la cadena
sonda-separador-analizador, no a los micrófonos por sí solos.

### Parámetros de `sound_intensity()`

| Parámetro | Tipo | Unidades | Rango / valor por defecto | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `p1`, `p2` | arrays 1D | Pa | misma longitud | Primero el micrófono más cercano a la fuente; invertirlos cambia el signo |
| `fs` | int | Hz | > 0 | |
| `spacing` | float | m | > 0 | Separación entre micrófonos Δr (típ. 6/12/50 mm) |
| `rho` | float | kg/m³ | por defecto `1.204` | Densidad del aire |
| `c` | float | m/s | por defecto `343.0` | Velocidad del sonido (estimaciones de sesgo/validez) |
| `fraction` | int, opcional | — | `1`, `3` o `None` (por defecto) | Integración en bandas de octava/tercio de octava |
| `limits` | lista, opcional | Hz | por defecto el rango de bandas de la librería | Límites del análisis por bandas |
| `bias_correct` | bool | — | defecto `False` | Aplica la corrección por bin $(k\Delta r)/\sin(k\Delta r)$ (IEC 61043 §7.3) antes de sumar, para que los totales de banda/banda ancha dejen de subestimar cuando $f \to$ `max_valid_frequency`; los bins pasado el primer nulo se dejan sin corregir. El factor `bias_correction` por banda se reporta en ambos casos |

Consulta [Teoría](/phonometry/es/reference/theory/signal-analysis/) para las derivaciones y
[Calibración](/phonometry/es/guides/calibration/) para el escalado absoluto de
los dos canales.

## Véase también

- Referencia de la API: [`emission.intensity`](/phonometry/es/reference/api/power/intensity/).
