<!-- canonical: https://docs.jmrp.io/phonometry/es/environment/propagation/ground-barriers/ -->
Source: https://docs.jmrp.io/phonometry/es/environment/propagation/ground-barriers/

El [método general ISO 9613-2](/phonometry/es/environment/propagation/outdoor-propagation/)
pliega los términos de suelo y barrera en correcciones tabuladas basadas en
energía. Esta página cubre la acústica ondulatoria subyacente en
`phonometry.environment.propagation.ground_barriers`: el **coeficiente de reflexión de
onda esférica** de un suelo de impedancia finita (Weyl-Van der Pol) y la
**difracción por teoría ondulatoria** de una pantalla, ambos en una atmósfera
homogénea (sin refracción ni turbulencia). Son el núcleo físico de los modelos
de suelo y barrera de Nord2000 y CNOSSOS, y resuelven la estructura de
interferencia dependiente de la frecuencia que los términos $A_\mathrm{gr}$/$D_z$
por banda de octava suavizan.

## 1. Efecto suelo de onda esférica (Weyl-Van der Pol)

El campo sonoro de una fuente puntual sobre un suelo de reacción local es la
suma de una onda directa y una onda reflejada ponderada por el **coeficiente de
reflexión de onda esférica** $Q$ (Attenborough Ec. 2.40a; Salomons Ec. 3.2):

$$
p = \frac{\mathrm{e}^{ikR_1}}{4\pi R_1} + Q\,\frac{\mathrm{e}^{ikR_2}}{4\pi R_2},
$$

con $R_1$ la distancia fuente-receptor y $R_2$ la distancia de la fuente
imagen. El coeficiente (Attenborough Ec. 2.40c; Salomons Ec. D.58) corrige el
coeficiente de onda plana $R_\mathrm{p}$ por la curvatura del frente de onda:

$$
Q = R_\mathrm{p} + (1 - R_\mathrm{p})\,F(w), \qquad
R_\mathrm{p} = \frac{Z\cos\theta - 1}{Z\cos\theta + 1},
$$

$$
F(w) = 1 + i\sqrt{\pi}\,w\,\mathrm{e}^{-w^2}\operatorname{erfc}(-iw), \qquad
w = \sqrt{\tfrac{i k R_2}{2}}\left(\cos\theta + \tfrac{1}{Z}\right).
$$

Aquí $Z$ es la impedancia superficial del suelo normalizada por $\rho c$,
$\theta$ es el ángulo de incidencia desde la normal al suelo
($\cos\theta = (h_\mathrm{s} + h_\mathrm{r})/R_2$) y el factor de pérdida por frontera $F(w)$
se escribe mediante la función de error complementaria escalada
$\mathrm{e}^{-w^2}\operatorname{erfc}(-iw)$, es decir, la función de Faddeeva
`scipy.special.wofz`. El segundo término de $Q$ es la *onda de suelo* que
mantiene finito el campo en incidencia rasante, donde $R_\mathrm{p} \to -1$ y un
modelo de onda plana predeciría silencio (Salomons Ecs. D.57, D.59, D.60).

El nivel sonoro relativo (la *atenuación en exceso*, dB respecto al campo libre)
es (Salomons Ec. 3.4):

$$
\Delta L = 20\log_{10}\!\left|\,1 + Q\,\frac{R_1}{R_2}\,\mathrm{e}^{i k (R_2 - R_1)}\,\right|.
$$

```python

from phonometry import environment

bands = np.array([63., 125., 250., 500., 1000., 2000., 4000., 8000.])

# Pradera (resistividad al flujo efectiva sigma = 200 kPa.s/m^2), fuente a 1 m y
# receptor a 1.5 m de altura, separados 50 m. La impedancia procede del modelo
# poroso de Delany-Bazley de phonometry.materials (suelo semiinfinito).
# Orden de los argumentos: frecuencias, source_height, receiver_height, distancia.
res = environment.ground_effect(bands, 1.0, 1.5, 50.0, flow_resistivity=2e5)
print(res.excess_attenuation)     # la caída del suelo (dB re campo libre)
print(res.reflection_coefficient) # Q complejo por banda
res.plot()                        # atenuación en exceso frente a frecuencia
```

La impedancia del suelo se deriva de una `flow_resistivity` efectiva (con el
modelo `delany_bazley` o `miki` de
[`phonometry.materials`](/phonometry/es/materials/absorbers/porous-absorbers/), que modelan
un suelo poroso semiinfinito) o se suministra directamente como una `impedance`
compleja normalizada (un escalar, un vector por banda o un `PorousMediumResult`).
Un valor de `impedance` directo se toma en el convenio $\mathrm{e}^{-i\omega t}$ de
Salomons, en el que un suelo pasivo tiene $\operatorname{Im}(Z) > 0$; los
modelos porosos de `phonometry.materials` trabajan en el convenio opuesto
$\mathrm{e}^{+j\omega t}$ ($\operatorname{Im}(Z) < 0$), así que todo lo obtenido de
ellos (una `flow_resistivity` o un
`PorousMediumResult`) se conjuga internamente antes de entrar en las fórmulas
de Weyl-Van der Pol.

*Cuanto más blando es el suelo, más profunda es la caída y a menor frecuencia:
la caída sigue a la resistividad al flujo efectiva a lo largo de más de una
década, y solo el asfalto se mantiene cerca del límite de suelo rígido de +6 dB
en todo el rango de la voz. Ojo a la unidad: la resistividad al flujo es una
resistividad en Pa·s/m², no una presión.*

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

```python

from phonometry import environment

freqs = np.geomspace(50.0, 4000.0, 400)
grounds = [
    ("Nieve reciente (10 kPa·s·m⁻²)", 10e3, "#2ca02c"),
    ("Suelo forestal (50 kPa·s·m⁻²)", 50e3, "#9467bd"),
    ("Pradera (200 kPa·s·m⁻²)", 200e3, "#1f77b4"),
    ("Asfalto (20 000 kPa·s·m⁻²)", 20000e3, "#d62728"),
]
fig, ax = plt.subplots(figsize=(11, 6.4))
for label, sigma, color in grounds:
    res = environment.ground_effect(freqs, 1.0, 1.5, 50.0, flow_resistivity=sigma)
    ax.plot(freqs, res.excess_attenuation, color=color, label=label)
ax.axhline(6.0, color="k", ls=":", label="Límite de suelo rígido (+6 dB)")
ax.axhline(0.0, color="k", lw=0.8)
ax.set_xscale("log")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Nivel respecto al campo libre [dB]")
ax.legend()
plt.show()
```

</details>

**Límites que reproduce la implementación** (cada uno un test o ancla de
conformidad fijados): un suelo acústicamente rígido ($|Z| \to \infty$) da
$R_\mathrm{p} \to 1$, $|w| \to 0$, $F \to 1$ y $Q \to 1$, de modo que $\Delta L$
alcanza +6 dB en fase; la resistividad al flujo efectiva $\sigma \to \infty$
tiende a ese suelo rígido; la incidencia rasante ($h_\mathrm{s}, h_\mathrm{r} \to 0$) da
$R_\mathrm{p} \to -1$; y el efecto suelo es recíproco al intercambiar las alturas de
fuente y receptor.

La onda de suelo se ve mejor llevando la geometría hacia la incidencia
rasante y mirando cómo se separan $R_\mathrm{p}$ y $Q$.

*A 3 m de altura los dos coeficientes coinciden dentro de un pequeño porcentaje y
la onda de suelo es irrelevante. A 0,02 m, $R_\mathrm{p}$ ya ha llegado a $-1$
(módulo 0,993 a 179,6°) y un modelo de onda plana predice $-40,1$ dB, casi el
silencio. El coeficiente esférico llega en cambio a $|Q| = 1,26$ y el campo se
asienta en $-11,9$ dB. Esos 28 dB son lo que compra el término de Faddeeva
$F(w)$, y son la razón de que una trayectoria exterior rasante sea audible
siquiera.*

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

```python

# `ground_effect` se importa en el fragmento de arriba.
alturas = np.geomspace(3.0, 0.02, 60)
c0, f, d = 343.0, 500.0, 50.0
k = 2 * np.pi * f / c0
q_mod, rp_mod, dl_q, dl_p = [], [], [], []
for h in alturas:
    res = environment.ground_effect([f], h, h, d, flow_resistivity=2e5, model="miki")
    rp = res.plane_reflection_coefficient[0]
    q = res.reflection_coefficient[0]
    fase = np.exp(1j * k * (float(res.r_reflected) - float(res.r_direct)))
    razon = float(res.r_direct) / float(res.r_reflected)
    rp_mod.append(abs(rp))
    q_mod.append(abs(q))
    dl_q.append(20 * np.log10(abs(1 + q * razon * fase)))
    dl_p.append(20 * np.log10(abs(1 + rp * razon * fase)))

fig, (izq, der) = plt.subplots(1, 2, figsize=(11, 4.6))
izq.semilogx(alturas, rp_mod, label="|Rp| (onda plana)")
izq.semilogx(alturas, q_mod, label="|Q| (onda esférica)")
izq.invert_xaxis()
izq.set(xlabel="Altura de fuente = receptor [m]", ylabel="Módulo")
izq.legend()
der.semilogx(alturas, dl_q, label="con Q")
der.semilogx(alturas, dl_p, label="solo con Rp")
der.invert_xaxis()
der.set(xlabel="Altura de fuente = receptor [m]",
        ylabel="Nivel respecto al campo libre [dB]")
der.legend()
plt.show()
```

</details>

### Elección de la impedancia del suelo

Ambos modelos de un parámetro se están evaluando muy **por debajo** de su
rango de ajuste publicado para cualquier suelo exterior, y el
`PorousAbsorberWarning` que emiten estas llamadas lo dice: el rango es
$0{,}01 < X < 1$ con $X = \rho_0 f/\sigma$, y la pradera de arriba se sitúa en
$X = 3{,}8\times10^{-4}$ a 63 Hz y 0,024 a 4 kHz; la curva del asfalto de la
figura no llega a entrar en el rango en ningún punto. Por debajo del rango, la
regresión de Delany-Bazley es una extrapolación cuyo fallo clásico es una parte
real negativa de la impedancia de superficie; **Miki** es el reajuste con
restricción de pasividad que conviene preferir ahí (ver el párrafo del rango de
ajuste en [Absorbentes porosos](/phonometry/es/materials/absorbers/porous-absorbers/)).
La elección no es cosmética: en el caso de arriba, `model="miki"` mueve la
atenuación en exceso hasta 3,6 dB (banda de 250 Hz: 0,43 dB con Delany-Bazley,
−3,18 dB con Miki).

Resistividades al flujo **efectivas** típicas, los rangos que ilustra la figura
de arriba: nieve reciente ≈ 10, suelo forestal ≈ 50, pradera y pasto
≈ 150-300, tierra compactada y grava ≈ 1000-3000, asfalto y
hormigón > 20 000 kPa·s/m².

Para un emplazamiento real, $\sigma$ se ajusta a una medida de diferencia de
niveles a corta distancia entre dos alturas de micrófono sobre la superficie
(el método de plantillas de ANSI/ASA S1.18). El valor ajustado es un parámetro
*efectivo y ligado al modelo*: hay que citarlo junto con el modelo de
impedancia con el que se ajustó, y no es la resistividad al flujo de aire de
EN 29053 del mismo material.

### Un suelo de un catálogo

Una fila de `environment.PUBLISHED_GROUND`, o de [un catálogo propio](/phonometry/es/io/material-catalogues/),
da la impedancia por sí misma: `GroundSurface.medium` es el semiespacio
poroso de su resistividad al flujo efectiva, por el modelo de Delany y
Bazley o por el de Miki, que `ground_effect` recibe como `impedance`,
`barrier_insertion_loss` como `ground_impedance` y
`atmospheric_parabolic_equation` como `impedance`. La resistividad se lee a
través de `printed()`, así que una fila que imprime un intervalo se rechaza
en lugar de promediarse y, como el valor ajustado depende del modelo, una
fila que la página marca como ajustada con un modelo solo entra en ese
modelo. La clase D de Harmonoise, $\sigma$ = 200 kPa·s/m², da la curva de
Miki del caso anterior:

```python
octaves = [125.0, 250.0, 500.0, 1000.0]
pasture = environment.PUBLISHED_GROUND["bies-2017-table-5-2/normal_uncompacted_ground"]
ground = pasture.medium(octaves, model="miki")
over_pasture = environment.ground_effect(octaves, 1.0, 1.5, 50.0, impedance=ground)
print(over_pasture.excess_attenuation.round(2))   # [  3.84  -3.18 -13.19  -2.96]

field = environment.PUBLISHED_GROUND["cox-2017-table-6-7/sports_field_delany_bazley"]
try:
    field.medium(octaves, model="miki")
except ValueError as error:
    print(error)
# 'Sports field' is the row the page marks “Fitted using Delany and Bazley
# model” (Cox & D'Antonio 3e Table 6.7, PDF pages 257-258 (printed pp.
# 200-201)): its effective flow resistivity is a parameter of that model and
# not of 'miki'; ask for model='delany_bazley', or take
# row.printed('flow_resistivity_pa_s_m2') into another model yourself.
```

## 2. Difracción de barreras avanzada

`barrier_insertion_loss` y sus piezas dan tres niveles de apantallamiento más
allá del término $D_z$ de ISO 9613-2.

**Forma cerrada de Kurze-Anderson.** La pérdida por inserción de una pantalla
fina en función del número de Fresnel $N = (2/\lambda)(A + B - d)$ (Bies
Ec. 5.134, con $A$ y $B$ los dos tramos del camino más corto
fuente-borde-receptor y $d$ la distancia recta) es (Bies Ec. 5.138; Kurze y
Anderson 1971):

$$
\Delta = 5 + 20\log_{10}\!\left(\frac{\sqrt{2\pi N}}{\tanh\sqrt{2\pi N}}\right)\;\text{dB},
$$

que tiende a 5 dB en el límite de sombra $N \to 0$ y aproxima la curva de
fuente puntual de Maekawa dentro de unos 1,5 dB.

El clip de abajo es esa fórmula convertida en campo. Es el
[esquema FDTD 2D](/phonometry/es/simulation/fdtd-simulation/) ejecutado dos veces
sobre un mismo semiespacio de 12 × 7 m sobre suelo rígido con una pantalla
rígida delgada de 2,5 m de alto, una vez a 100 Hz y otra a 500 Hz, cada una con
una simulación de referencia sin barrera sobre el mismo suelo para que la
pérdida por inserción anotada sea una pérdida real. La geometría fija la
diferencia de caminos en 1,06 m para el receptor que marca, así que el número
de Fresnel es $N = 0{,}62$ a 100 Hz y $N = 3{,}1$ a 500 Hz (la misma pantalla,
un factor cinco de diferencia en $N$ solo porque ha cambiado $\lambda$), y el
campo enseña lo que eso compra: unos 8 dB frente a unos 17 dB. Hay dos cosas
que merece la pena mirar. El borde de la región iluminada que baja desde lo
alto de la pantalla es la frontera de sombra, el lugar geométrico $N \to 0$
donde la fórmula toca fondo en 5 dB; y dentro de la sombra el campo es una onda
cilíndrica centrada en lo alto de la pantalla, que es el aspecto que tiene «el
borde actúa como fuente secundaria». Una advertencia: el suelo del clip es
perfectamente rígido, así que muestra difracción sola y nada del efecto suelo
de impedancia finita de la sección 1; el modelo coherente de cuatro caminos de
más abajo sí lo añade, y su curva oscila decenas de decibelios donde esta es
suave.

Los métodos de pantalla delgada comparten las mismas tres magnitudes
geométricas: los dos segmentos difractados sobre el borde y el camino recto
al que sustituyen. Dibujados sobre la pantalla de 4 m de los ejemplos,
difieren en solo 0,15 m.

```python
from phonometry import environment

environment.kurze_anderson_attenuation(0.0)     # 5.0 dB en el límite de sombra

# Una barrera de 4 m a 50 m de una fuente a 1 m, receptor a 1.5 m y 100 m.
il = environment.barrier_insertion_loss(bands, 1.0, 50.0, 4.0, 100.0, 1.5,
                                        method="kurze_anderson")
il.plot()                           # pérdida por inserción frente a frecuencia
```

**Semiplano rígido exacto.** Con `method="exact"` se usa la pérdida por
inserción por teoría ondulatoria de una pantalla fina rígida: la forma compacta
en integrales de Fresnel de la solución de MacDonald / Hadden y Pierce
(Attenborough Ecs. 9.19-9.20), construida con las funciones de Fresnel
auxiliares. Da 6 dB en el límite de sombra (el campo se reduce a la mitad, el
límite de cuña plana) y sigue a Kurze-Anderson en la zona de sombra.

**Barreras gruesas.** Un `thickness` (ancho superior $e$) desplaza aguas abajo el
segundo borde de difracción y alarga el camino difractado a $A + e + B$, el
número de Fresnel de doble borde $N = (2/\lambda)(A + B + e - d)$ de Bies
Ec. 5.157. La mejora es monótona, pero es pequeña, y la razón es geométrica: $B$
se mide ahora desde el borde *lejano*, así que casi todo lo que el ancho superior
añade lo devuelve también. Sobre la pantalla de 4 m de esta página, un ancho
superior de 4 m vale **0,08 dB** a 500 Hz y 0,14 dB a 8 kHz; incluso 30 m de
ancho solo llegan a 1,2 dB.

*El efecto de la longitud del camino, por sí solo, vale una fracción de decibelio
a distancias de tráfico rodado. La ISO 9613-2 concede a un doble borde bien
separado un factor aparte $C_3$ que sube de 1 hacia 3, hasta
$10\log_{10}3 \approx 4,8$ dB, que el modelo ondulatorio de aquí no incluye: para
ese mismo ancho superior de 4 m, $D_z$ pasa de 7,6 dB a 9,0 dB a 500 Hz. Ninguna
de las dos cifras autoriza a construir un caballón y esperar la bonificación de
ISO con el modelo de esta página.*

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

```python

# `barrier_insertion_loss` se importa en el fragmento de arriba.
anchos = np.linspace(0.0, 30.0, 40)
fig, ax = plt.subplots()
for freq in (250.0, 500.0, 1000.0):
    delgada = float(environment.barrier_insertion_loss(
        [freq], 1.0, 50.0, 4.0, 100.0, 1.5, method="exact").insertion_loss[0])
    ganancia = [0.0 if e == 0.0 else float(environment.barrier_insertion_loss(
        [freq], 1.0, 50.0, 4.0, 100.0, 1.5, method="exact",
        thickness=e).insertion_loss[0]) - delgada for e in anchos]
    ax.plot(anchos, ganancia, label=f"{freq:g} Hz")
ax.set_xlabel("Ancho superior e [m]")
ax.set_ylabel("Ganancia sobre la pantalla delgada [dB]")
ax.legend()
plt.show()
```

</details>

**Barrera coherente sobre el suelo.** Con una `ground_impedance` (o una
`ground_flow_resistivity`) se combinan coherentemente los cuatro caminos
difractados fuente-imagen / receptor-imagen, ponderando cada reflexión en el
suelo por el coeficiente de onda esférica $Q$ anterior (Attenborough cap. 9;
Bies sec. 5.3.5). Esto expone la estructura de interferencia suelo-barrera que
una suma puramente energética de $A_\mathrm{gr}$ y $D_z$ no puede. Como
simplificación de primer orden, un único $Q$ (sobre la geometría global
fuente-receptor) pondera
todos los rebotes en lugar de un coeficiente por camino imagen; el modelo es
coherente y recíproco pero no una solución completa por elementos de contorno.

```python
il = environment.barrier_insertion_loss(bands, 1.0, 50.0, 4.0, 100.0, 1.5,
                                        method="exact", ground_flow_resistivity=2e5)
il.ground        # True: se aplicó el modelo coherente de cuatro caminos
il.plot()
```

Los tres modelos lado a lado sobre la misma geometría cuentan toda la
historia: el ajuste de Kurze-Anderson y el semiplano exacto se siguen a menos
de 1,5 dB a lo largo de dos décadas de número de Fresnel, mientras que el
modelo coherente con suelo oscila decenas de decibelios alrededor de ellos,
hacia arriba donde la barrera elimina el valle del efecto suelo del camino sin
apantallar, hacia abajo donde los cuatro caminos difractados interfieren
destructivamente.

*Los dos modelos de pantalla delgada nunca se separan más de unos 1,5 dB, así que
elegir entre ellos apenas importa. La curva coherente con suelo es un objeto de
otra clase: oscila desde por encima de +45 dB cerca de 230 Hz, donde la barrera
elimina el propio valle del efecto suelo del camino sin apantallar, hasta por
debajo de −10 dB cerca de 550 Hz, donde los cuatro caminos difractados se
cancelan. Los dos extremos son de banda estrecha y ninguno es un valor de
diseño.*

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

```python

from phonometry import environment

# La barrera de 4 m de los fragmentos anteriores, en una malla fina de frecuencia.
freqs = np.geomspace(50.0, 5000.0, 240)
il_ka = environment.barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                                           method="kurze_anderson")
il_ex = environment.barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                                           method="exact")
il_gr = environment.barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5,
                                           method="exact", ground_flow_resistivity=2e5)
fig, ax = plt.subplots(figsize=(11, 6.4))
ax.semilogx(freqs, il_ka.insertion_loss, "--", label="Kurze-Anderson (pantalla delgada)")
ax.semilogx(freqs, il_ex.insertion_loss, label="Semiplano rígido exacto")
ax.semilogx(freqs, il_gr.insertion_loss, label="Exacto + suelo coherente (cuatro caminos)")
ax.axhline(5.0, color="k", ls=":", label="Límite rasante de Kurze-Anderson (5 dB)")
ax.set(xlabel="Frecuencia [Hz]", ylabel="Pérdida por inserción [dB]")
ax.legend()
plt.show()
```

</details>

Las tres curvas comparten la misma geometría base, y `.plot_geometry()` la
dibuja a escala: a estas distancias de tráfico rodado la pantalla de 4 m es
una lámina. En las curvas de pantalla delgada la diferencia de caminos de
0,15 m se combina con la longitud de onda en el número de Fresnel; la curva
de suelo coherente depende además de la impedancia del suelo y de la
interferencia de los caminos imagen.

*Dibujada a escala, la pantalla casi desaparece: el camino difractado sobre
el borde es solo 0,15 m más largo que el directo bloqueado, y esa diferencia
es la entrada geométrica del número de Fresnel $N = (2/\lambda)(A + B - d)$
del que dependen los métodos de pantalla delgada de arriba.*

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

```python

from phonometry import environment

freqs = np.geomspace(50.0, 5000.0, 240)
il = environment.barrier_insertion_loss(freqs, 1.0, 50.0, 4.0, 100.0, 1.5)

# Una línea: la sección a escala, con la diferencia de caminos anotada.
il.plot_geometry(language="es")
plt.show()
```

</details>

### Parámetros de `ground_effect()` y `barrier_insertion_loss()`

Las dos entradas toman sus distancias **a lo largo del suelo desde la fuente**, y
ninguna toma una distancia desde la barrera. Esa es la trampa que conviene
nombrar: en `barrier_insertion_loss(bands, 1.0, 50.0, 4.0, 100.0, 1.5)` el
receptor está a 100 m de la *fuente*, es decir 50 m más allá de la pantalla, no
100 m más allá. Las dos funciones escriben además la misma opción de forma
distinta (`model=` en `ground_effect`, `ground_model=` en
`barrier_insertion_loss`) y ordenan su geometría de otra manera, y por eso las
dos llamadas posicionales de esta página no son paralelas.

| Parámetro de `ground_effect` | Tipo / forma | Unidades | Rango / def. | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `frequencies` | escalar o array 1D | Hz | > 0 | Banda estrecha: sin suavizado por bandas |
| `source_height` | float | m | ≥ 0 | $h_\mathrm{s}$ |
| `receiver_height` | float | m | ≥ 0 | $h_\mathrm{r}$ (**antes** de la distancia) |
| `distance` | float | m | > 0 | Distancia horizontal fuente-receptor |
| `impedance` | array, `PorousMediumResult` o None | — | `None` | $Z$ normalizada en el convenio $\mathrm{e}^{-i\omega t}$ |
| `flow_resistivity` | float o None | Pa·s/m² | `None` | $\sigma$ efectiva; alimenta el modelo poroso |
| `model` | `"delany_bazley"` \| `"miki"` | — | `"delany_bazley"` | Prefiere `"miki"` por debajo del rango de ajuste |
| `speed_of_sound` / `air_density` | float | m/s, kg/m³ | 343.0 / 1.205 | |

| Parámetro de `barrier_insertion_loss` | Tipo / forma | Unidades | Rango / def. | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `frequencies` | escalar o array 1D | Hz | > 0 | |
| `source_height` | float | m | ≥ 0 | $h_\mathrm{s}$ |
| `barrier_distance` | float | m | > 0 | De la fuente al borde (cercano), sobre el suelo |
| `barrier_height` | float | m | > 0 | Altura del borde sobre el suelo |
| `receiver_distance` | float | m | > `barrier_distance` (+ `thickness`) | Medida **desde la fuente** |
| `receiver_height` | float | m | ≥ 0 | $h_\mathrm{r}$ (**después** de la distancia) |
| `method` | `"kurze_anderson"` \| `"exact"` | — | `"exact"` | `"exact"` es el semiplano rígido |
| `thickness` | float o None | m | `None` | Ancho superior $e$; doble borde |
| `ground_impedance` | array, `PorousMediumResult` o None | — | `None` | Selecciona el modelo coherente de cuatro caminos |
| `ground_flow_resistivity` | float o None | Pa·s/m² | `None` | Lo mismo, a partir de una $\sigma$ efectiva |
| `ground_model` | `"delany_bazley"` \| `"miki"` | — | `"delany_bazley"` | Ojo al nombre: no es `model=` |
| `speed_of_sound` / `air_density` | float | m/s, kg/m³ | 343.0 / 1.205 | |

Un argumento de suelo exige `method="exact"`; `method="kurze_anderson"` con
suelo lanza `ValueError`.

### Elegir un modelo, y qué no modela ninguno

**Cuál usar.** Kurze-Anderson para una estimación de ingeniería por bandas de
octava, donde sus ±1,5 dB frente a la solución exacta quedan muy dentro de la
incertidumbre de todo lo demás de la cadena. El semiplano rígido exacto cuando
importa el comportamiento junto a la frontera de sombra (ahí da 6 dB frente a los
5 dB de Kurze-Anderson, y los 6 dB son el campo reducido a la mitad,
físicamente correcto). El modelo coherente de cuatro caminos solo cuando la
pregunta es la estructura de interferencia en banda estrecha, nunca en bruto como
valor de diseño.

**La curva coherente hay que promediarla antes de que signifique nada.** Es un
resultado coherente, de banda estrecha y completamente determinista. La
turbulencia atmosférica real descorrelaciona los cuatro caminos, una fuente real
tiene ancho de banda y un receptor real se mueve; las tres cosas borran los
extremos. Una pérdida por inserción de +45 dB en banda estrecha no es una barrera
que quite 45 dB, es una frecuencia en la que el camino *sin apantallar* caía
justo en su propio valle de efecto suelo. Promedia la curva por bandas, o léela
como estructura y no como un nivel.

**Los cuatro modelos son pantallas bidimensionales infinitas.** Una barrera real
de longitud finita deja que el sonido la flanquee por los extremos, y dos
barreras paralelas a ambos lados de una vía se reflejan entre sí y pierden varios
decibelios de su prestación nominal. Ninguno de los dos efectos existe en ningún
modelo de esta página.

**La difracción es el límite de apantallamiento, no el realizado.** La pérdida
por inserción que entrega una barrera construida es la menor entre el resultado
de difracción y el índice de reducción sonora del propio panel, y el obstáculo
tiene que cualificar antes como barrera: masa por unidad de superficie, una
superficie cerrada y una extensión horizontal normal a la trayectoria mayor que
la longitud de onda. Esas reglas de cualificación están enunciadas en el
[apartado de errores habituales con barreras de Propagación del sonido en exteriores](/phonometry/es/environment/propagation/outdoor-propagation/);
aquí se aplican sin cambios.

## 3. Lo que dice la declaración del producto (EN 1793)

Todo lo anterior es la barrera como física. Una barrera a la venta es un
producto, y lo que lleva su declaración son dos enteros, y ninguno de los dos
es una difracción: cuánto del sonido que le llega vuelve cruzando la carretera,
y cuánto la atraviesa. Los dos se ponderan con un espectro que nadie mide en
obra, el **espectro normalizado de ruido de tráfico** de la EN 1793-3:
dieciocho bandas de tercio de octava de 100 Hz a 5 kHz, con el máximo en 1 kHz
y doce decibelios menos en cada extremo.

*La ponderación de la izquierda lo decide todo, y hay dos: a un dispositivo de
carretera se le juzga por lo que hace alrededor de 1 kHz, y a uno de ferrocarril
por lo que hace entre 1,25 y 2,5 kHz.*

La **EN 1793-1** valora la absorción como la energía que el dispositivo *no*
devuelve:

$$
DL_\alpha = -10 \lg\left| 1 -
\frac{\sum_{i=1}^{18} \alpha_{\mathrm{S}i}\, 10^{0,1 L_i}}
     {\sum_{i=1}^{18} 10^{0,1 L_i}} \right|
$$

Un $\alpha_\mathrm{S}$ de cámara reverberante puede pasar de uno banda a banda,
lo que empujaría el cociente ponderado por encima de 1 y dejaría al logaritmo
sin argumento. El apartado 5 lo dice y lo arregla: el cociente se limita a
0,99, así que ningún dispositivo puede pasar de 20 dB por absorbente que salga
medido. `sound_absorption_rating` avisa cuando lo que ha respondido es ese
límite y no la medida.

La **EN 1793-2** valora el aislamiento acústico al ruido aéreo con la misma
ponderación, pero sobre la energía transmitida:

$$
DL_R = -10 \lg\left|
\frac{\sum_{i=1}^{18} 10^{0,1 L_i}\, 10^{-0,1 R_i}}
     {\sum_{i=1}^{18} 10^{0,1 L_i}} \right|
$$

```python
from phonometry import environment

# Un casete con lana mineral tras una cara perforada, en las dieciocho bandas
# de tercio de octava de la EN 1793-3, de 100 Hz a 5 kHz.
absorption = [0.15, 0.25, 0.40, 0.60, 0.80, 0.95, 0.98, 0.95, 0.92,
              0.90, 0.88, 0.85, 0.82, 0.80, 0.78, 0.75, 0.72, 0.70]
reduction = [21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0,
             30.0, 31.0, 31.0, 32.0, 32.0, 33.0, 33.0, 34.0, 34.0]

absorbed = environment.sound_absorption_rating(absorption)
print(absorbed.reported, absorbed.category)     # 8 A3

through = environment.airborne_insulation_rating(reduction)
print(through.reported, through.category)       # 29 B3
```

Los dos se declaran redondeados al entero más próximo (EN 1793-1, apartado 6.1;
EN 1793-2, apartado 7.1), y cada uno tiene en su anexo A una escala normativa
que se lee sobre ese entero: de A1 a A5 la absorción, de B1 a B4 el
aislamiento, con A0 y B0 reservados para «sin determinar». Las escalas no
tienen huecos entre escalones porque el número que clasifican ya es un entero.

No son comparables y una declaración lleva los dos. Un panel de hormigón
liso devuelve casi todo al otro lado de la carretera y aun así es la mejor
pared; un casete absorbente que mantiene baja la reflexión puede ser la peor.
Cuál de los dos importa es una pregunta sobre el emplazamiento y no sobre el
producto: la absorción para una carretera en trinchera o entre pantallas
paralelas, el aislamiento para lo que haya justo detrás.

### Los mismos dos números junto a una vía

Una pantalla junto a una vía se valora igual y contra otro ruido. La
**EN 16272-3-1:2012** imprime el espectro normalizado de ruido ferroviario
sobre las mismas dieciocho bandas, y sus capítulos 5 y 6 son las dos fórmulas
de arriba con esa tabla en los pesos. El ruido de rodadura está más arriba que
el de una carretera: el espectro ferroviario es plano dentro de un decibelio
de 1,25 kHz a 2,5 kHz, donde el de carretera ya ha empezado a caer, así que un
absorbente que mejora con la frecuencia vale más junto a una vía que junto a
una carretera.

```python
from phonometry import environment

# Un absorbente poroso grueso, que sigue mejorando donde más suena la rodadura.
absorption = [0.10, 0.15, 0.22, 0.32, 0.45, 0.60, 0.72, 0.82, 0.88,
              0.92, 0.95, 0.96, 0.96, 0.95, 0.94, 0.93, 0.92, 0.90]

road = environment.sound_absorption_rating(absorption)
rail = environment.sound_absorption_rating(absorption, spectrum="railway")
print(road.reported, rail.reported)          # 8 10
print(road.category, rail.category)          # A3 None
```

Las partes ferroviarias no imprimen escala de categorías: sus anexos son notas
de orientación sobre el uso del índice, así que un índice ferroviario es el
número y nada más, y el resultado lo dice llevando `None` donde un dispositivo
de carretera lleva su letra. El capítulo 6 trae además un desliz que conviene
conocer, porque cambia lo que uno se pone a buscar: dice que los índices de
reducción sonora se ponderan con «the normalised traffic noise spectrum
defined in Table 1», cuando la tabla 1 de esa norma es el espectro ferroviario
y la lista de símbolos bajo la fórmula dice «railway». Es la redacción de
carretera de la EN 1793-2, que se quedó ahí al copiar el capítulo.

### La reflexión, medida donde está la pantalla

Los dos números de carretera salen de un laboratorio, sobre una muestra y en un
campo difuso. La EN 1793-5 mide la reflexión de la pantalla tal como está
construida, en el campo directo de un altavoz colocado delante, y la pondera con
el mismo espectro en un tercer número, $DL_{RI}$. Tiene su propia página,
[Reflexión acústica de una pantalla in situ](/phonometry/es/environment/propagation/barrier-reflection/), porque casi todo el
trabajo está en pasar de nueve respuestas al impulso al índice; el índice global
es `environment.sound_reflection_rating`, junto a los dos anteriores, y
devuelve el mismo `RoadDeviceRating`.

## Relación con ISO 9613-2

La pérdida por inserción de Kurze-Anderson que aquí se escribe $\Delta$ es la
misma magnitud que la ISO 9613-2 llama $D_z$, y los dos segmentos difractados
llamados aquí $A$ y $B$ son sus $d_\mathrm{ss}$ y $d_\mathrm{sr}$. Los términos tabulados
$A_\mathrm{gr}$ y $D_z$ del
[método ISO
9613-2](/phonometry/es/environment/propagation/outdoor-propagation/) son
ajustes de
ingeniería por banda de octava basados en energía; `ground_effect` y
`barrier_insertion_loss` son sus contrapartes de banda estrecha por acústica
ondulatoria. Sobre suelo rígido ambos coinciden en el realce de +6 dB y en el
límite de barrera rasante de 5 dB, pero solo los modelos ondulatorios resuelven
las caídas de interferencia que se mueven con la geometría, la frecuencia y la
impedancia del suelo, lo que los hace la infraestructura natural de los esquemas
meteorológicos de Nord2000 y CNOSSOS.

## Qué cubre esta guía

El coeficiente de reflexión de onda esférica de Weyl-Van der Pol para el suelo
(`ground_effect`, Attenborough Ec. 2.40a/c, Salomons Ec. 3.2/D.58, el factor
de pérdida por frontera mediante la función de Faddeeva), con sus límites de
suelo rígido (+6 dB), incidencia rasante y reciprocidad anclados como tests.
La difracción de barrera por teoría ondulatoria (`barrier_insertion_loss`): la
forma cerrada de Kurze-Anderson (`kurze_anderson_attenuation`, Bies Ec.
5.138), el semiplano rígido exacto (MacDonald / Hadden y Pierce, Attenborough
Ecs. 9.19-9.20), las barreras gruesas mediante el número de Fresnel de doble
borde (Bies Ec. 5.157), y el modelo coherente de barrera sobre suelo de cuatro
caminos ponderado por el coeficiente de reflexión de `ground_effect`.

Ambos modelos suponen una atmósfera homogénea, sin refracción ni turbulencia;
un gradiente vertical de velocidad del sonido es el objeto de la guía separada
de [refracción
atmosférica](/phonometry/es/environment/propagation/atmospheric-refraction/).
El modelo coherente de barrera sobre suelo pondera los cuatro caminos
difractados con un único coeficiente de reflexión $Q$ calculado sobre la
geometría global fuente-receptor, en lugar de un coeficiente distinto por
camino imagen, así que es coherente y recíproco pero no una solución completa
por elementos de contorno.

## Véase también

- [Propagación del sonido en exteriores](/phonometry/es/environment/propagation/outdoor-propagation/): los ajustes por bandas de octava de ISO 9613-2 bajo los que se sitúan estos modelos, y la regla que un obstáculo tiene que cumplir para ser barrera siquiera.
- [Refracción atmosférica: rayos y GFPE](/phonometry/es/environment/propagation/atmospheric-refraction/): el gradiente vertical de velocidad del sonido que los dos modelos de aquí dan por inexistente.
- [Absorbentes porosos](/phonometry/es/materials/absorbers/porous-absorbers/): los modelos de Delany-Bazley y de Miki que hay detrás de `flow_resistivity`, y su rango de ajuste.
- Teoría: [Propagación en exteriores](/phonometry/es/reference/theory/environment-transport/#propagación-en-exteriores-iso-9613-12): los términos de suelo y de barrera de ISO 9613-2 en el contexto de toda la suma de atenuaciones.
- Referencia de la API: [`environment.propagation.ground_barriers`](/phonometry/es/reference/api/environment/ground-barriers/).
- [Catálogos publicados](/phonometry/es/reference/catalogues/#superficies-de-suelo): la
  resistividad al flujo y los parámetros de modelo que imprimen los libros
  para hierba, nieve, asfalto y el resto de superficies de suelo.
