<!-- canonical: https://jmrplens.github.io/phonometry/es/devices/emission/sound-power-pressure/ -->
Source: https://jmrplens.github.io/phonometry/es/devices/emission/sound-power-pressure/

De las vías normalizadas hasta el nivel de potencia acústica $L_W$, los
métodos de presión son los que no necesitan nada más exótico que un
sonómetro: muestrear la presión acústica sobre una superficie que envuelve la
fuente, promediarla en energía, corregirla y sumar el término de superficie.
Esta guía cubre los tres. Los métodos de **superficie envolvente** de
ISO 3744 (grado de ingeniería) e ISO 3746 (grado de inspección) funcionan in
situ, sobre uno o más planos reflectantes, y limpian el nivel superficial
con la corrección de ruido de fondo $K_1$ y la corrección de entorno $K_2$.
El **método de precisión** de ISO 3745 traslada la misma idea a una cámara
anecoica o semianecoica cualificada, donde una malla fija de micrófonos
muestrea directamente el campo libre y las correcciones de grado 1 son
meteorológicas en lugar de ambientales. La sección final presenta la
determinación como ficha de ensayo de estilo acreditado. Qué vía encaja con
qué trabajo, y las alternativas de cámara reverberante e intensidad, se
sopesan en [Potencia acústica](/phonometry/es/devices/emission/sound-power/).

## 1. Superficie envolvente, presión acústica (ISO 3744 / ISO 3746)

Coloca la fuente sobre un plano reflectante e imagina una **superficie de
medición** de área $S$ que la envuelve: una semiesfera para una fuente
compacta, una caja (paralelepípedo recto) para una grande o alargada.
Muestrea el nivel de presión acústica en un conjunto de posiciones de micrófono
sobre esa superficie, promédialas en energía, y la potencia acústica se obtiene
porque una superficie suficientemente difusa capta toda la energía radiada:

$$
\overline{L'_p} = 10\log_{10}\left( \frac{1}{N_\mathrm{M}} \sum_i 10^{L'_{pi}/10} \right), \qquad
L_W = \overline{L'_p} - K_1 - K_2 + 10\log_{10}\frac{S}{S_0},\quad S_0 = 1\ \text{m}^2 .
$$

La prima marca sobre qué se toma la media: aquí son los niveles por posición
**sin corregir**, y $K_1$ y $K_2$ se restan después de la media, de modo que
$\overline{L'_p}$ es `mean_pressure_level` y $\overline{L'_p} - K_1 - K_2$ es
`surface_pressure_level`. La media de ISO 3745 de la sección 2 está construida
al revés, y las primas son el único aviso de ello.

Dos correcciones depuran el nivel superficial. La **corrección por ruido de
fondo** elimina la energía que habría estado presente con la fuente apagada, a
partir del margen $\Delta L_p$ entre los niveles con la fuente encendida y los
de fondo,

$$
K_1 = -10\log_{10}\left( 1 - 10^{-\Delta L_p/10} \right),
$$

y la **corrección ambiental** elimina la acumulación reverberante de la sala
de ensayo a partir de su área de absorción acústica equivalente $A$,

$$
K_2 = 10\log_{10}\left( 1 + \frac{4 S}{A} \right).
$$

El área de la superficie es una forma cerrada de la geometría: una semiesfera
es $S = 2\pi r^2$ sobre un plano reflectante (dividida entre dos y entre cuatro
para dos y tres planos), y una caja de un plano es $S = 4(ab + bc + ca)$ con
$a = 0{,}5\,l_1 + d$, $b = 0{,}5\,l_2 + d$, $c = l_3 + d$ para la distancia de
medición $d$. ISO 3746 (inspección) comparte todas las fórmulas pero es más burda: menos
posiciones de micrófono, un criterio de fondo de 3 dB en lugar de 6 dB, y
validez hasta $K_2 \le 7\ \text{dB}$ en lugar de 4 dB.

### Dimensionar la superficie

Ni $r$ ni $d$ son de libre elección, y las dos se miden desde la **caja de
referencia**: el paralelepípedo recto más pequeño que encierra justo a la
fuente, de lados $l_1 \times l_2 \times l_3$, apoyado en el plano reflectante
(apartado 7.1). Su origen $O$ es el centro de la caja formada con sus imágenes
en los planos contiguos, y la **dimensión característica de la fuente** $d_0$ es
la distancia de $O$ a la esquina más alejada de la caja de referencia:

$$
d_0 = \sqrt{(l_1/2)^2 + (l_2/2)^2 + l_3^2}
$$

sobre un plano reflectante, con $l_1$ sin dividir entre dos sobre dos planos y
con $l_1$ y $l_2$ sin dividir sobre tres. Esa es la $d_0$ que rotula la figura
de abajo, y la norma acota con ella la superficie: el radio de la semiesfera
debe ser al menos $2 d_0$, no menor de 1 m y no mayor de 16 m (apartado 7.2.3;
los 0,5 m solo se admiten para productos pequeños en un rango de frecuencias
limitado), y la distancia de medición de la caja debe ser al menos 0,25 m y
preferiblemente 1 m o más (apartado 7.2.4, con una nota de que $d < 0{,}5$ m
limita el rango de baja frecuencia).

Con números, sobre una máquina de suelo de 1,4 × 0,9 × 1,1 m:
$d_0 = \sqrt{0{,}7^2 + 0{,}45^2 + 1{,}1^2} = 1{,}38$ m, así que una semiesfera
necesita $r \ge 2{,}8$ m y $S = 2\pi r^2 = 49{,}3$ m². Esa misma máquina
encajonada a $d = 1$ m da $a = 1{,}7$ m, $b = 1{,}45$ m, $c = 2{,}1$ m y
$S = 4(2{,}47 + 3{,}05 + 3{,}57) = 36{,}3$ m² — una cuarta parte menos de
superficie, y una superficie que cabe en una nave de ensayo normal. Esa es la
razón habitual de que una fuente grande o alargada se encajone en vez de
cubrirse con una cúpula, y el apartado 7.2.3 lo dice sin rodeos: cuando el radio
necesario crece tanto que dejan de cumplirse los requisitos de entorno del
apartado 4, no debe usarse una semiesfera en absoluto.

Leído al revés, esto acota también los ejemplos de esta página. El `radius=1.5`
de abajo es legítimo para una fuente de $d_0 \le 0{,}75$ m — un aparato de
sobremesa o una bomba pequeña — y no para la máquina de 1,4 m recién calculada;
el `radius=4.0` del ejemplo de informe de la sección 3 cubre $d_0$ hasta 2 m.

La superficie de caja lleva su propio conjunto de posiciones, y no es el
conjunto hemisférico del Anexo B: `measurement_positions` lanza un error a
propósito con una caja, porque ISO 3744 define esas posiciones por
**subdivisión en áreas** (Anexo C, normativo). Cada uno de los cinco planos de
la superficie de medición se considera por separado y se divide en áreas
parciales iguales cuyo lado no supere $3d$; las posiciones clave son entonces el
centro de cada área parcial más sus esquinas, excluidas las que se meten en el
plano reflectante, lo que da un mínimo de nueve posiciones cuando un área
parcial cubre cada plano (apartado C.1; diez con una subdivisión triangular). El
grado de inspección se queda solo con los centros de las áreas parciales. La
dirección de referencia de cada micrófono es la normal a su cara, salvo en una
esquina de la superficie, donde apunta al origen $O$ de la caja de referencia
(apartado 7.2.2).

### Preparar la medición

`levels_positions` no es un array de decibelios cualquiera: es el nivel
**promediado en el tiempo** por posición y por banda con la fuente funcionando
en su modo declarado, tomado a través de una cadena que la norma especifica.
Todo el sistema de instrumentación — micrófonos, cables y el paravientos si se
monta — debe cumplir la clase 1 de IEC 61672-1, y los filtros la clase 1 de
IEC 61260 (apartado 5.1). Antes y después de cada serie se aplica a cada
micrófono un calibrador acústico de clase 1 según IEC 60942 para comprobar toda
la cadena de medida y, sin ajuste alguno entremedias, las dos lecturas no deben
diferir en más de **0,5 dB**; si difieren más, la serie se descarta, no se
corrige (apartado 5.2). La conformidad del propio sistema se verifica en un
laboratorio trazable a intervalos no mayores de dos años, y la del calibrador a
intervalos no mayores de un año. La mecánica de esa comprobación está en
[Calibración](/phonometry/es/signals/metrology/calibration/).

Cada micrófono se orienta con su dirección de referencia normal a la superficie
de medición y, en una esquina de una superficie de caja, apuntando al origen $O$
(apartado 7.2.2) — que es la razón de que una cápsula de campo libre y una de
campo difuso se apunten de forma distinta sobre el mismo trípode.

Cada nivel se promedia en el tiempo sobre un periodo típico de funcionamiento:
el intervalo **debería ser de 20 s o más y debe ser de al menos 10 s**, y hay
que indicarlo en el informe de ensayo (apartado 8.2.1). Un micrófono en
recorrido integra sobre un número entero de recorridos completos, y al menos
dos. La lectura de fondo se toma **inmediatamente antes o inmediatamente
después** de la lectura con la fuente, en las mismas posiciones y sobre el mismo
intervalo — así que `background_levels` es una medida `(NM, NB)` del mismo día y
del mismo conjunto de posiciones, no un espectro copiado de otra sesión, y
emparejar lecturas dispares es la forma más común de acabar con un $K_1$
equivocado.

```python

from phonometry import emission

# SPL en banda de octava (dB) en las 10 posiciones de la semiesfera de ISO 3744
# (Anexo B), con la fuente en marcha, más el espectro de fondo con ella apagada.
freqs = np.array([63, 125, 250, 500, 1000, 2000, 4000, 8000])
base = np.array([70.0, 74.0, 78.0, 80.0, 79.0, 76.0, 72.0, 66.0])
rng = np.random.default_rng(0)
levels = base + rng.normal(0.0, 0.5, size=(10, 8))     # (posiciones, bandas)
background = np.full((10, 8), 55.0)

# Coordenadas de micrófono del Anexo B de ISO 3744 en una semiesfera de radio 1.5 m.
mic_xyz = emission.measurement_positions("hemisphere", radius=1.5, reflecting_planes=1)
print(mic_xyz.shape)                                    # (10, 3)

res = emission.sound_power_pressure(
    levels, "hemisphere", radius=1.5, reflecting_planes=1,
    background_levels=background, frequencies=freqs,
    room=emission.RoomEnvironment(reverberation_time=0.6, volume=300.0),  # -> K2
)
print(round(res.surface_area, 2))                       # 14.14 m^2 (= 2*pi*1.5^2)
print(round(float(res.environmental_correction[0]), 2)) # K2 = 2.32 dB
print(round(res.sound_power_level_a, 1))                # LWA = 92.4 dB
print(round(res.uncertainty, 1))                        # U = 3.0 dB (2*sigma_R0)
print(np.round(res.sound_power_level, 1))               # LW por banda

res.plot()   # barras de nivel de potencia acústica por banda; LWA en el título (requiere matplotlib)
```

*Una barra por banda: la presión superficial promediada en energía menos las
correcciones de fondo ($K_1$) y ambiental ($K_2$) más el término de superficie
$10\log_{10}(S/S_0)$ dan $L_W(f)$, y la suma energética ponderada A entre bandas da
el número único $L_{W\mathrm{A}}$ del título.*

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

```python

from phonometry import emission

# SPL en banda de octava (dB) en las 10 posiciones de la semiesfera de ISO 3744
# (Anexo B), con la fuente en marcha, más el espectro de fondo con ella apagada.
freqs = np.array([63, 125, 250, 500, 1000, 2000, 4000, 8000])
base = np.array([70.0, 74.0, 78.0, 80.0, 79.0, 76.0, 72.0, 66.0])
rng = np.random.default_rng(0)
levels = base + rng.normal(0.0, 0.5, size=(10, 8))     # (posiciones, bandas)
background = np.full((10, 8), 55.0)
res = emission.sound_power_pressure(
    levels, "hemisphere", radius=1.5, reflecting_planes=1,
    background_levels=background, frequencies=freqs,
    room=emission.RoomEnvironment(reverberation_time=0.6, volume=300.0),  # -> K2
)

# res es el SoundPowerResult calculado arriba. Una línea:
res.plot(language="es")
plt.show()

# A mano: un espectro de barras de LW con el total ponderado A en el título.
freqs = res.frequencies
positions = np.arange(freqs.size)
fig, ax = plt.subplots()
ax.bar(positions, res.sound_power_level, width=0.7, color="#1f77b4")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
    f"Potencia acústica por superficie envolvente (ISO 3744)  "
    f"LWA = {res.sound_power_level_a:.1f} dB(A)")
plt.show()
```

</details>

El total ponderado A $L_{W\mathrm{A}}$ se combina a partir de las potencias por banda
con
las correcciones de ponderación A del Anexo E de ISO 3744, así que necesita
`frequencies`. Pasar un `RoomEnvironment` como `room`
(`reverberation_time` + `volume`, o `absorption_area`, o
`mean_absorption_coefficient` + `room_surface`) habilita
$K_2$; omítelo y el campo se trata como libre ($K_2 = 0$). Si el margen de
fondo cae por debajo del criterio del grado o $K_2$ supera el límite de
validez, un
`SoundPowerWarning` avisa de que los niveles son cotas superiores; la
determinación se devuelve igualmente.

### Trampas de K1 y K2

Ambas correcciones restan energía al nivel superficial, así que sobreestimar
cualquiera de las dos subestima la emisión. Por eso las normas las acotan, y
por eso la mayoría de las disputas sobre un resultado de superficie
envolvente se remontan a uno de estos hábitos:

- **$K_1$ tiene un precipicio, no una pendiente.** Con 15 dB de margen la
  corrección es de tan solo 0,14 dB (despreciable); en el criterio de
  ingeniería de 6 dB ya es 1,26 dB, el mayor valor que acepta el grado. Por
  debajo del criterio la norma no permite aplicar la fórmula: $K_1$ se acota
  y el resultado se declara cota superior. Nunca extrapoles la resta a un
  margen menor; aumenta el margen (emplazamiento más silencioso, superficie más cercana) o
  pásate al método de intensidad.
- **$K_1$ supone un fondo estacionario.** La lectura con la fuente apagada debe
  tomarse en las mismas posiciones y con la sala en el mismo estado, y la
  energía de fondo debe ser la misma durante ambas lecturas. Un sistema de
  ventilación que cicla o un vehículo que pasa durante cualquiera de las dos
  invalida la pareja; la resta energética supone además que la fuente y el
  fondo son incoherentes, lo que vale para el ruido ajeno pero no para las
  reflexiones de la propia fuente.
- **$K_2$ elimina la acumulación media de la sala, no las reflexiones
  discretas.** Una pared cercana, un carro u otra máquina justo fuera de la
  superficie añaden una contribución especular concentrada en unos pocos
  micrófonos. Ese desequilibrio aflora en el índice de directividad aparente
  $DI_i^*$, y ninguna corrección promedio de sala puede eliminarlo: desplaza
  la superficie, retira el reflector o trátalo con absorción.
- **$K_2$ vale lo que valga $A$.** Con $A$ de Sabine ($0{,}16\,V/T$), los
  errores en el tiempo de reverberación o en el volumen se propagan
  directamente. En el límite de validez $K_2 = 4\ \text{dB}$ cerca del 60 %
  de la energía medida proviene de la sala, no de la fuente, y un error del
  20 % en $A$ aún modifica $L_W$ en unos 0,5 dB.
  Prefiere un $T_{60}$ medido a un coeficiente de absorción estimado, y mantén
  la distancia de medición lo bastante pequeña para que $K_2$ quede
  holgadamente por debajo del límite.

*Las dos correcciones tienen formas opuestas. $K_1$ es plana hasta que el margen
se cierra y entonces sube con fuerte pendiente, que es la razón de que las
normas la acoten en el criterio en vez de dejar correr la fórmula; $K_2$ crece
sin límite a medida que la superficie llena la sala, y la banda del ±20 %
enseña lo que cuesta una $A$ estimada en el límite de validez.*

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

```python

# K1 se lee de la propia sound_power_pressure, barriendo el fondo bajo un nivel
# superficial fijo; K2 tiene su propia forma cerrada.
margenes = np.linspace(0.5, 20.0, 200)
k1 = [float(emission.sound_power_pressure(
          np.full((10, 1), 80.0), "hemisphere", radius=2.0,
          background_levels=np.full((10, 1), 80.0 - m),
          frequencies=np.array([1000.0])).background_correction[0])
      for m in margenes]
razon = np.geomspace(0.05, 10.0, 200)

fig, (axi, axd) = plt.subplots(1, 2, figsize=(12, 5))
axi.plot(margenes, k1)
axi.axvline(6.0, linestyle="--")        # criterio de ISO 3744
axi.set(xlabel="ΔLp [dB]", ylabel="K1 [dB]", ylim=(0, 4.2))
axd.semilogx(razon, 10.0 * np.log10(1.0 + razon))
axd.axhline(4.0, linestyle="--")        # límite de validez de ISO 3744
axd.set(xlabel="4S/A", ylabel="K2 [dB]")
plt.show()
```

</details>

Una corrección que la fórmula de superficie envolvente **no** lleva es la
meteorológica. La Ec. 18 supone la impedancia característica de referencia del
aire, así que la determinación es una determinación «para las condiciones
meteorológicas del momento y del lugar del ensayo» (apartado 8.2.5). Por encima
de 500 m de altitud o por debajo de 10 °C eso pasa a ser un sesgo, y el apartado
8.2.5 exige entonces llevar el resultado a las condiciones de referencia según
el **Anexo G, que es normativo** — el mismo tipo de término que las secciones de
ISO 3741 e ISO 3745 escriben explícitamente como $C_1$ y $C_2$. Su tamaño: el
apartado H.4.2.7 dice que por debajo de 500 m no hace falta ninguna corrección
meteorológica ni de impedancia de radiación, que a 120 m y 23 °C la corrección
es nula y que a 500 m llega a 0,6 dB. `sound_power_pressure` no implementa
ningún término así y no admite argumento alguno de temperatura o presión, de
modo que una determinación en una planta de montaña o al aire libre en invierno
necesita aplicar a mano la corrección del Anexo G.

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

| Parámetro | Tipo | Unidades | Rango / valor por defecto | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `levels_positions` | array 2D | dB | `(NM, NB)` | Una fila por posición, una columna por banda (o una única columna ponderada A) |
| `surface` | str | — | `'hemisphere'` / `'box'` | Forma de la superficie de medición |
| `radius` | float | m | > 0 (semiesfera) | Radio de la semiesfera $r$ |
| `dimensions` | (float, float, float) | m | > 0 (caja) | $(l_1, l_2, l_3)$ del paralelepípedo de referencia |
| `distance` | float | m | > 0 (caja) | Distancia de medición $d$ |
| `reflecting_planes` | int | — | `1` / `2` / `3`, por defecto `1` | Divide entre dos/cuatro el área de la semiesfera |
| `background_levels` | array 2D o espectro | dB | `(NM, NB)`, o `(NB,)` / `(1, NB)` | Habilita $K_1$; un espectro único se difunde a todas las posiciones |
| `frequencies` | array 1D | Hz | centros de banda nominales | Habilita $L_{W\mathrm{A}}$ (Anexo E) |
| `room` | `RoomEnvironment` o None | — | por defecto `None` (campo libre) | Los datos de sala tras $K_2$; sus campos son las tres vías hacia $A$ de abajo |
| `room.absorption_area` | float o array 1D | m² | > 0 | $A$ para $K_2$ (directo); un array por banda → $K_2$ por banda |
| `room.reverberation_time`, `room.volume` | float/array, float | s, m³ | > 0 | $A = 0{,}16\,V/T$ para $K_2$; $T$ por banda → $K_2$ por banda |
| `room.mean_absorption_coefficient`, `room.room_surface` | float/array, float | —, m² | `(0,1]`, > 0 | $A = \alpha\,S_v$ (Ec. A.7); $\alpha$ por banda → $K_2$ por banda |
| `grade` | str | — | `'engineering'` (por defecto) / `'survey'` | ISO 3744 vs ISO 3746 |
| `omc_uncertainty` | float | dB | por defecto `0.0` | $\sigma_\text{omc}$, inestabilidad de operación/montaje, incorporada a $U$ |

Devuelve un `SoundPowerResult`: `sound_power_level` ($L_W$ por banda),
`surface_pressure_level` ($L_p$ tras $K_1$/$K_2$), `mean_pressure_level`,
`background_correction`/`environmental_correction` ($K_1$/$K_2$),
`directivity_index` (índice de directividad aparente $DI_i^*$ por posición de
micrófono **y** banda de frecuencia, forma `(NM, NB)`; ISO 3744 apartado 8.4),
`surface_area`, `sound_power_level_a` ($L_{W\mathrm{A}}$), `uncertainty`
(expandida, 95 %) y `grade`. `measurement_positions('hemisphere', radius=…,
reflecting_planes=…, tones=…, grade=…)` devuelve las coordenadas normativas
`(N, 3)` de micrófono (Tabla B.1 para fuentes tonales, B.2 para banda ancha).
Esas coordenadas se dibujan directamente con `plot_microphone_positions`, que
representa el array sobre su superficie de medición en 3-D, numerado como en
la norma.

*Dónde se colocan de verdad los diez micrófonos del Anexo B sobre el
hemisferio de 2 m: las alturas se escalonan para que el array muestree toda
la superficie por igual, que es lo que permite que la media energética de
los diez niveles sustituya a la integral de superficie.*

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

```python

from phonometry import measurement_positions, plot_microphone_positions

# Los 10 micrófonos del Anexo B de ISO 3744 sobre un hemisferio de 2 m.
plot_microphone_positions(measurement_positions("hemisphere", radius=2.0),
                          radius=2.0, language="es")
plt.show()
```

</details>

### Cuántas posiciones, y cuándo añadir más

Diez es el número para **un** plano reflectante. Frente a dos planos el conjunto
son las cinco posiciones clave 2, 3, 6, 7 y 9 de la Tabla B.2; en un rincón,
frente a tres planos, son las tres posiciones 1, 2 y 3 de la Tabla B.3
(apartado 8.1.1). El grado de inspección usa conjuntos aún más burdos: cuatro
posiciones sobre un plano.

Esos números son un punto de partida, no un resultado. El apartado 8.1.1 exige
posiciones **adicionales** si se cumple cualquiera de tres condiciones:

- **a)** el recorrido de los niveles ponderados A entre las posiciones clave
  supera 10 dB sobre un plano reflectante, 5 dB sobre dos o 3 dB sobre tres;
- **b)** el índice de directividad aparente ponderado A supera 5 dB en alguna
  dirección;
- **c)** una fuente grande radia solo desde una parte pequeña de sí misma — las
  aberturas de una máquina por lo demás cerrada son el ejemplo de la propia
  norma.

Las dos cosas tienen respuestas distintas. La condición a) se atiende añadiendo
las posiciones 11 a 20 de la misma tabla (o, equivalentemente, repitiendo el
conjunto clave con la fuente girada −60° para la Tabla B.1 o 180° para la
Tabla B.2): la superficie se sigue muestreando por igual, así que la media
energética simple sigue valiendo. Las condiciones b) y c) se atienden con una
**investigación localizada** — posiciones extra concentradas alrededor del
máximo, en número igual al recorrido de niveles hallado — y esas posiciones
llevan áreas de segmento *desiguales*, de modo que la media debe ser entonces la
ponderada por áreas del apartado 8.2.2.2 y no la media de áreas iguales que
calcula `sound_power_pressure`. La nota 3 añade una regla de prioridad que ahorra
mucho trabajo inútil: cuando el fondo en alguna posición está a menos de 6 dB del
nivel de fuente más alto, hay que reducir el fondo *antes* de añadir posiciones,
porque un fondo así de cerca es lo que está moviendo $DI_i^*$ de entrada.

Las dos comprobaciones son una línea cada una sobre el resultado que la página ya
ha calculado:

```python

# El nivel sumado en bandas por posición (para el recorrido ponderado A de la
# norma, se ponderan antes las bandas en A; aquí la fuente es lo bastante de
# banda ancha como para que no cambie el veredicto).
lp_a = 10.0 * np.log10(np.sum(10.0 ** (0.1 * levels), axis=1))
print(round(float(lp_a.max() - lp_a.min()), 2))       # 0.76 dB: condición a) holgada
print(round(float(np.abs(res.directivity_index).max()), 2))   # 1.1 dB: b) holgada
```

$DI_i^*$ es el índice de directividad aparente del apartado 8.4, el exceso del
nivel corregido de fondo en la posición $i$ sobre la media de la superficie, por
posición *y* por banda; es a lo que se refería la trampa de $K_2$ de arriba con
«aflora en el índice de directividad aparente». Una máquina que radia 5 dB más
hacia un micrófono que la media de la superficie no tiene el conjunto de
posiciones estropeado: tiene una directividad que las diez posiciones no pueden
resolver.

## 2. Grado de precisión, cámara anecoica (ISO 3745)

Cuando se requiere la máxima exactitud, ISO 3745 mide la potencia acústica en una
**cámara anecoica** o **semianecoica** cualificada, donde el campo libre permite que
un conjunto fijo de micrófonos muestree directamente la presión acústica radiada. Es
la contraparte de grado 1 del método de superficie envolvente de la Sección 1, con
coordenadas de micrófono normalizadas, una corrección por ruido de fondo por
posición y una corrección meteorológica explícita.

El panel izquierdo del clip de abajo es para lo que sirve esa sala. Con los
contornos absorbiendo, un micrófono solo ve lo que la fuente le manda, así que
el nivel cae con la distancia y el conjunto de posiciones tiene que muestrear
una superficie entera — que es la razón de que la única geometría que necesita
el método, una vez cualificada la sala, sea el término de superficie
$10\log_{10}(S/S_0)$. El panel derecho es la alternativa en cámara reverberante
de [ISO 3741](/phonometry/es/devices/emission/sound-power-reverberation/), y las
dos terminan en el mismo $L_W$.

**Nivel de potencia acústica (apartado 8).** El nivel de potencia acústica por banda es
el nivel de presión promediado en la superficie más el término de superficie y las
correcciones:

$$
L_W = \overline{L_p} + 10\log_{10}\frac{S}{S_0} + C_1 + C_2 + C_3,
$$

con $S = 4\pi r^2$ sobre la esfera o $S = 2\pi r^2$ sobre la semiesfera,
$S_0 = 1\ \text{m}^2$. $C_1$ y $C_2$ son las correcciones meteorológicas
(términos de referencia e impedancia de radiación); $C_3$ tiene en cuenta la
absorción del aire sobre el radio de medición. Las posiciones de micrófono son los
conjuntos normalizados de vectores unitarios de las Tablas D.1 (esfera), E.1
(semiesfera) y E.2 (semiesfera, banda ancha).

En esa fórmula no hay término $K_1$ aparte porque $\overline{L_p}$ — sin prima,
a diferencia del de la sección 1 — es la media sobre la superficie de los
niveles **después** de corregir cada uno por su cuenta el ruido de fondo,

$$
\overline{L_p} = 10\log_{10}\left[\frac{1}{N_\mathrm{M}} \sum_i
10^{0{,}1\left(L'_{pi} - K_{1i}\right)}\right]
$$

(apartado 9.4.3.1). Así que la corrección vive dentro de la media, un $K_{1i}$
por posición, en lugar de restarse de la media como hace ISO 3744.
`mean_pressure_level` es la media energética bruta y `surface_pressure_level`
la corregida, que es el $\overline{L_p}$ de la fórmula de arriba.

**El radio no es libre** (apartados 8.1/8.2). Debe cumplir $r \ge 2 d_0$, con
$d_0$ la distancia del centro acústico al punto más alejado de la fuente (en
cámara semianecoica, $r \ge 2 d_0$ o $r \ge 3 h_0$, el que sea mayor, siendo
$h_0$ la altura del centro acústico sobre el suelo), $r \ge \lambda/4$ a la
frecuencia más baja de interés y $r \ge 1$ m — 0,5 m solo para una fuente
pequeña y poco ruidosa en una banda limitada — con toda la superficie dentro
de la región cualificada según el Anexo A o el B. Con números: una fuente de
sobremesa de 0,6 × 0,5 × 0,7 m tiene
$d_0 = \sqrt{0{,}3^2 + 0{,}25^2 + 0{,}7^2} = 0{,}80$ m, así que $r \ge 1{,}6$ m;
con una banda más baja de 100 Hz, $\lambda/4 = 0{,}86$ m no manda, y el mínimo
de 1 m tampoco. El `radius=1.0` de los ejemplos de abajo solo vale, por tanto,
para una fuente de menos de unos 0,5 m de dimensión característica.

**El conjunto de posiciones tampoco lo es.** Primero se usan las posiciones 1
a 20, y las 21 a 40 se añaden solo cuando la diferencia entre el nivel más
alto y el más bajo en alguna banda de interés no es menor que la mitad del
número de posiciones — una comprobación sobre datos que el lector ya tiene,
`levels.max(0) - levels.min(0) >= 0.5 * levels.shape[0]`. Si con 40 posiciones
sigue sin cumplirse, hace falta una investigación localizada y las posiciones
pasan entonces a tener áreas desiguales, que es para lo que está `areas=`.

```python

from phonometry import emission

# Las 40 posiciones normalizadas de la semiesfera (vectores unitarios escalados por el radio).
pos = emission.precision_positions("hemisphere", radius=1.0, count=40)
print(pos.shape)                      # (40, 3)

# SPL en banda de octava/tercio (dB) en cada una de las 40 posiciones; aquí un
# valor uniforme de 74 dB en una banda. El resultado lleva S = 2*pi*r^2 y LW con C1+C2+C3.
levels = np.full((40, 1), 74.0)
res = emission.sound_power_anechoic(levels, "hemisphere", radius=1.0)
print(round(res.surface_area, 3))                 # 6.283  (2*pi*1^2)
print(np.round(res.sound_power_level, 2))         # [81.85]
```

*Los conjuntos de precisión, dibujados desde la misma llamada a
`precision_positions` que hace el fragmento de arriba. Las veinte primeras
muestrean la superficie por sí solas; las veinte siguientes se añaden solo
cuando el recorrido de niveles de banda dispara la ampliación, y una
investigación localizada posterior lleva áreas desiguales.*

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

```python

fig, (axi, axd) = plt.subplots(1, 2, subplot_kw={"projection": "3d"})
plot_microphone_positions(
    emission.precision_positions("hemisphere", radius=1.0, count=40),
    ax=axi, radius=1.0)
plot_microphone_positions(
    emission.precision_positions("sphere", radius=1.0, count=20),
    ax=axd, radius=1.0)
plt.show()
```

</details>

**Correcciones por ruido de fondo y meteorológica.** La corrección por ruido de
fondo $K_1$ se aplica **por posición** y se acota donde la diferencia
señal-fondo es pequeña (Ec. 11); la corrección meteorológica se evalúa a partir de
la temperatura y la presión estática medidas.

```python

from phonometry import emission

# K1 para una diferencia señal-fondo de 6 dB en una banda de borde <=200 Hz: el
# límite es 1.26 dB (Ec. 11). Los niveles de fuente y fondo son [posiciones, bandas].
k1 = emission.precision_background_correction(
    np.array([[56.0]]), np.array([[50.0]]), np.array([200.0]))
print(round(float(k1[0, 0]), 4))      # 1.2563

# Correcciones meteorológicas en la referencia de 23 C, 101.325 kPa (Ec. 16):
mc = emission.meteorological_corrections(23.0, 101.325)
print(round(mc.c1, 4), round(mc.c2, 4))   # -0.1282 0.0

# Incertidumbre expandida (EJEMPLO del apartado 10.5): sigma_R0 = 0.5, sigma_omc = 2.0,
# k = 2 -> U = 4.1 dB.
print(round(emission.precision_uncertainty(0.5, 2.0, 2.0), 3))   # 4.123
```

La `MeteorologicalCorrection` es un par de escalares (más el $C_3$ por banda
cuando el coeficiente de atenuación se aporta por banda), no un espectro
dibujable: las correcciones se pliegan en el `PrecisionSoundPowerResult` como
sus campos `c1`/`c2`/`c3`, y la ficha `.report()` las imprime en su franja de
base de medición.

Los márgenes y los intervalos que hay detrás de esos números son más estrictos
que los de la sección 1. El fondo, promediado sobre todas las posiciones, debe
quedar al menos **6 dB** por debajo del nivel de fuente en todas las bandas y al
menos **10 dB** por debajo entre 250 Hz y 5 kHz (apartado 5.2.1.1) — una banda
que no lo alcance puede excluirse en cambio del rango de interés si su potencia
de banda ponderada A corregida queda al menos 15 dB por debajo de la más alta
(apartado 5.2.1.2). Donde el margen se quede corto de todos modos, el apartado
9.4.2 congela $K_{1i}$ en el valor que produce el criterio — 1,26 dB para las
bandas de 200 Hz y por debajo y de 6,3 kHz y por encima, 0,46 dB entre 250 Hz y
5 kHz — y *exige* entonces que el informe de ensayo, y las tablas y gráficas que
contenga, indiquen que esas bandas son cotas superiores.
`precision_background_correction` aplica exactamente esa regla; declarar la
omisión es cosa de quien lee.

El promediado es más largo que el de ISO 3744: al menos **30 s** en las bandas
centradas en 160 Hz y por debajo y al menos **10 s** de 200 Hz hacia arriba
(apartado 9.4.1), con el intervalo indicado en el informe, y al menos dos
recorridos completos cuando se usa un micrófono en recorrido. El fondo se mide
inmediatamente antes o inmediatamente después de la fuente, en las mismas
posiciones y sobre el mismo intervalo. Cuarenta posiciones a 30 s en las bandas
graves son la razón de que una campaña de grado 1 lleve mucho más tiempo que la
de grado 2 de la sección 1: el coste del grado es sobre todo tiempo.

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

| Parámetro | Tipo | Unidades | Rango / valor por defecto | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `levels_positions` | array 2D | dB | `(NM, NB)` | Una fila por posición, una columna por banda |
| `surface` | str | — | `'sphere'` / `'hemisphere'` | Cámara anecoica o semianecoica |
| `radius` | float | m | > 0 | Radio de medición $r$; acotado por $2 d_0$, $\lambda/4$ y el suelo de 1 m de arriba |
| `background_levels` | array 2D o espectro | dB | coincide con `levels_positions` | Habilita el $K_{1i}$ por posición de la Ec. 11 |
| `frequencies` | array 1D | Hz | una por banda | Habilita $L_{W\mathrm{A}}$ y el $C_3$ por banda |
| `areas` | array 1D | m² | una por posición | Áreas de segmento desiguales, para una investigación localizada (apartado 9.4.3.2); si se omite se suponen iguales |
| `temperature` | float | °C | por defecto `23.0` | Fija $C_1$, $C_2$ |
| `static_pressure` | float | kPa | por defecto `101.325` | Fija $C_1$, $C_2$ |
| `air_absorption_coefficient` | float o array 1D | dB/m | por defecto `None` | El término $C_3$ de absorción del aire; se aporta, no se calcula |
| `sigma_omc` | float | dB | por defecto `0.0` | Desviación típica de funcionamiento y montaje, apartado 10.5 |
| `coverage_factor` | float | — | por defecto `2.0` | La $k$ de $U = k\sqrt{\sigma_{\mathrm{R}0}^2 + \sigma_\text{omc}^2}$ |

Los dos últimos son toda la historia de la incertidumbre, y el valor por defecto
la esconde: si se deja como está, `sigma_omc = 0` afirma que la instalación es
perfectamente repetible y la ficha imprime $U = 1{,}0$ dB. Los 4,1 dB que
declara el ejemplo de abajo son lo que cuesta esa misma determinación una vez se
admite el valor de EJEMPLO $\sigma_\text{omc} = 2{,}0$ dB del apartado 10.5.

Sobre varias bandas `sound_power_anechoic` devuelve un `PrecisionSoundPowerResult`
representable que lleva el $L_W$ por banda y el total ponderado A:

```python

from phonometry import emission

# Una máquina con pico en frecuencias medias medida sobre el conjunto hemisférico de
# 40 posiciones (Anexo E). levels_positions es el espectro de presión superficial
# (40, NB): un espectro base con pico cerca de 1 kHz más una pequeña dispersión espacial por posición.
freqs = np.array([125, 250, 500, 1000, 2000, 4000, 8000], float)
base = 70.0 + 8.0 * np.exp(-(np.log2(freqs / 1000.0) ** 2) / 2.0)
rng = np.random.default_rng(7)
levels = base[None, :] + rng.normal(0.0, 1.0, (40, freqs.size))

# sigma_omc es la desviación típica de funcionamiento y montaje del
# apartado 10.5; con el valor de EJEMPLO 2.0 dB y el factor de cobertura por
# defecto k = 2, la incertidumbre expandida U = k*sqrt(sigma_R0^2 + sigma_omc^2)
# son los 4.1 dB que imprime la ficha de abajo. Con su valor por defecto 0
# informa 1.0 dB.
result = emission.sound_power_anechoic(levels, "hemisphere", radius=1.0,
                                       frequencies=freqs, sigma_omc=2.0)
print(round(result.sound_power_level_a, 1))   # 89.3
print(round(float(result.uncertainty), 1))    # 4.1  dB
result.plot()   # espectro LW, LWA en el título (requiere matplotlib)
```

*Una barra por banda: la presión promediada en la superficie más las correcciones
de área, ruido de fondo y meteorológica dan $L_W(f)$, y la suma energética
ponderada A entre bandas da el número único $L_{W\mathrm{A}}$ del título.*

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

```python

from phonometry import emission

# Una máquina con pico en frecuencias medias medida sobre el conjunto hemisférico de
# 40 posiciones (Anexo E). levels_positions es el espectro de presión superficial
# (40, NB): un espectro base con pico cerca de 1 kHz más una pequeña dispersión espacial por posición.
freqs = np.array([125, 250, 500, 1000, 2000, 4000, 8000], float)
base = 70.0 + 8.0 * np.exp(-(np.log2(freqs / 1000.0) ** 2) / 2.0)
rng = np.random.default_rng(7)
levels = base[None, :] + rng.normal(0.0, 1.0, (40, freqs.size))
result = emission.sound_power_anechoic(levels, "hemisphere", radius=1.0, frequencies=freqs)

# result es el PrecisionSoundPowerResult calculado arriba. Una línea:
result.plot(language="es")
plt.show()

# A mano: un espectro de barras de LW con el total ponderado A en el título.
freqs = result.frequencies
positions = np.arange(freqs.size)
fig, ax = plt.subplots()
ax.bar(positions, result.sound_power_level, width=0.7, color="#1f77b4")
ax.set_xticks(positions)
ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel de potencia acústica LW [dB]")
ax.set_title(
    f"Potencia acústica de precisión (ISO 3745)  LWA = {result.sound_power_level_a:.1f} dB(A)")
plt.show()
```

</details>

<span id="informe-de-medicion"></span>

## 3. El informe de medición (`.report()`)

Una determinación de potencia acústica termina en un *documento*. Todos los
resultados de esta página siguen siendo dibujables mientras se trabaja con
ellos (`res.plot()` traza interactivamente el mismo espectro $L_W$ que la
ficha compone), y el paso de informe lo envuelve en el entregable. Tanto el
resultado de superficie envolvente (`SoundPowerResult`, ISO 3744/3746) como el
resultado de precisión (`PrecisionSoundPowerResult`, ISO 3745) exponen un método
`.report()` que escribe una ficha PDF de una página con el formato de una hoja
de ensayo de potencia acústica: la línea de base normativa que nombra el método
aplicado y el grado de exactitud, un encabezado opcional de metadatos (cliente,
fuente de ruido, entorno de ensayo, instrumentación, clima, fecha), una tabla
por bandas (frecuencia nominal de octava/tercio de octava, el nivel de presión
acústica de superficie $L_p$ y el nivel de potencia acústica de banda $L_W$), el
espectro de potencia acústica $L_W(f)$ con eje de bandas nominal, y un recuadro
con el nivel de potencia acústica ponderado A $L_{W\mathrm{A}}$ (dB re 1 pW) acompañado
del $L_W$ total, la incertidumbre expandida $U$ y el área de la superficie de
medición $S$.

Los metadatos se proporcionan mediante un `ReportMetadata`, cuyos campos
aplicables aquí son la **descripción de la fuente** (`specimen`), el **entorno
de ensayo** (`test_room`), el **cliente**, la **instrumentación**, la
**temperatura**, la **humedad relativa** y la **presión ambiente**, la **fecha
del ensayo** (`test_date`) y la identidad del pie (`laboratory`, `operator`,
`report_id`, `notes`); el área de la superficie de medición $S$ procede del
propio resultado y se imprime en el recuadro y en la franja de base, junto con las
correcciones aplicadas (el ruido de fondo $K_1$ y el entorno $K_2$ para el
método de superficie ISO 3744/3746, o las meteorológicas $C_1$/$C_2$/$C_3$ para
el método de precisión ISO 3745). Indicar `requirement` añade un veredicto
CUMPLE/NO CUMPLE frente a un límite declarado de potencia acústica ponderada A
(la emisión de potencia acústica es una magnitud en la que menos es mejor, así
que la fuente cumple igual o por debajo del límite). `verbose=True` añade el
nivel promedio energético $L_p'$ a la tabla, y para el resultado de superficie
ISO 3744/3746 añade además las columnas de corrección $K_1$/$K_2$ (el resultado
de precisión no lleva $K_2$ en absoluto y pliega su $K_1$ por posición dentro de
la media de superficie, así que la ficha imprime $C_1$/$C_2$/$C_3$ en su franja
de base en lugar de esas columnas). `language="es"` genera la ficha en español
con decimales de coma.

```python

from phonometry import ReportMetadata, emission

freqs = np.array([63, 125, 250, 500, 1000, 2000, 4000, 8000], float)
# Diez espectros de posición idénticos sobre un hemisferio de radio 4 m; ruido
# de fondo uniforme 10 dB por debajo y área de absorción equivalente
# A = 1500 m^2 (para que K1, K2 sean significativos y dentro del límite de
# validez del grado de ingeniería).
surface = np.array([72.0, 76, 80, 82, 81, 78, 73, 66])
res = emission.sound_power_pressure(
    np.tile(surface, (10, 1)), "hemisphere", radius=4.0,
    background_levels=np.tile(surface - 10.0, (10, 1)),
    frequencies=freqs, grade="engineering",
    room=emission.RoomEnvironment(absorption_area=1500.0),
)

res.report(
    "sound_power.pdf",
    metadata=ReportMetadata(
        client="Planta de fabricación de ejemplo",
        specimen="Grupo hidráulico (de suelo)",
        test_room="Cámara semianecoica sobre suelo reflectante",
        instrumentation="Sonómetro clase 1 (IEC 61672-1), n/s 0042",
        laboratory="Laboratorio de referencia Phonometry",
        report_id="EXAMPLE-3744",
        requirement=105.0,
    ),
    language="es",
)   # LWA = 103,7 dB(A) re 1 pW -> límite declarado 105 dB(A): CUMPLE
```

La ficha de ejemplo se regenera con `make reports` y se mantiene renderizada en
el repositorio; pulsa la vista previa para abrir el PDF.

El resultado de precisión escribe la misma hoja desde el lado de ISO 3745, con
las correcciones meteorológicas en su franja de base en lugar del par
$K_1$/$K_2$. Es la medición de la sección 2 sobre las 40 posiciones del
hemisferio, la del espectro representado más arriba:

```python
from phonometry import ReportMetadata

result.report(
    "potencia-precision.pdf",
    metadata=ReportMetadata(
        client="Planta de fabricación de ejemplo",
        specimen="Máquina con pico en medias frecuencias",
        test_room="Cámara anecoica cualificada, red de 40 posiciones en hemisferio",
        measurement_standard="ISO 3745",
    ),
    language="es",
)   # LWA = 89,3 dB(A) re 1 pW, U = 4,1 dB
```

## Qué cubre esta guía

La determinación por superficie envolvente de ISO 3744/3746
(`sound_power_pressure`): las áreas de superficie de semiesfera y caja, las
correcciones $K_1$ de fondo y $K_2$ de entorno con sus límites de validez, las
posiciones de micrófono del Anexo B (`measurement_positions`,
`plot_microphone_positions`) y el total ponderado A del Anexo E. La
determinación de precisión de ISO 3745 (`sound_power_anechoic`): las mallas
fijas de los Anexos D/E (`precision_positions`), la corrección de fondo por
posición (`precision_background_correction`, Ec. 11), las correcciones
meteorológicas $C_1$/$C_2$/$C_3$ y la incertidumbre expandida del apartado
10.5 (`precision_uncertainty`). Ambos resultados presentan la ficha de
potencia acústica de estilo acreditado mediante `.report()`.

Ninguno de los dos métodos ejecuta el ensayo de cualificación del recinto: la
cualificación de campo libre de la cámara anecoica o semianecoica de ISO 3745
se da por supuesta, no se realiza, y la validez de $K_2$ en ISO 3744 solo
emite avisos. Tampoco se aplica la corrección del **Anexo G** de ISO 3744 a
las condiciones meteorológicas de referencia, exigida por encima de 500 m de
altitud o por debajo de 10 °C (apartado 8.2.5): `sound_power_pressure` no
admite argumento de temperatura ni de presión. La corrección meteorológica
$C_3$ de ISO 3745 necesita un coeficiente de absorción del aire que aporta
quien llama (`air_absorption_coefficient=`); este módulo no lo calcula a
partir de ISO 9613-1. La elección entre las seis vías, y la declaración ISO
4871 que un resultado alimenta, viven en [Potencia
acústica](/phonometry/es/devices/emission/sound-power/).

## Véase también

- [Potencia acústica](/phonometry/es/devices/emission/sound-power/): la elección entre
  las cinco vías de determinación, los grados de precisión y la declaración
  de emisión sonora de ISO 4871.
- [Potencia acústica en cámara reverberante (ISO 3741)](/phonometry/es/devices/emission/sound-power-reverberation/):
  la alternativa de precisión en campo difuso cuando la fuente puede viajar
  a una cámara cualificada.
- [Potencia acústica por barrido de intensidad (ISO 9614)](/phonometry/es/devices/emission/sound-power-intensity/):
  las vías que toleran el ruido de fondo estacionario que un método de
  presión no puede restar.
- [Acústica de salas](/phonometry/es/buildings/rooms/room-acoustics/): el tiempo de
  reverberación y el área de absorción equivalente que alimentan $K_2$.
- [Niveles](/phonometry/es/signals/levels/levels/): el promediado en energía y la
  ponderación A que sustentan $L_{W\mathrm{A}}$.
- [Teoría](/phonometry/es/reference/theory/environment-transport/): las
  derivaciones de $K_1$/$K_2$ y $C_1$/$C_2$.
- Referencia de la API: [`emission.sound_power`](/phonometry/es/reference/api/power/sound-power/).
- Teoría: [Determinación de la potencia acústica](/phonometry/es/reference/theory/environment-transport/#determinación-de-la-potencia-acústica-iso-374437453746-iso-3741-iso-9614-23): la derivación de la superficie envolvente de la ISO 3744/3746 y la corrección ambiental que necesita.
