<!-- canonical: https://jmrplens.github.io/phonometry/es/buildings/design/panel-sound-insulation/ -->
Source: https://jmrplens.github.io/phonometry/es/buildings/design/panel-sound-insulation/

Un ensayo de laboratorio mide el índice de reducción acústica $R$ de un elemento
acabado; esta página, en cambio, **predice** $R(f)$ a partir de las propiedades
físicas de la construcción, de modo que un cerramiento se puede diseñar antes de
construirlo. Cubre el aislamiento aéreo de un panel simple (la ley de masas y la
caída del aislamiento en la coincidencia), la pared doble (su resonancia masa-muelle-masa), la
transmisión por rendijas y aberturas que limita cualquier construcción real, la
eficiencia de radiación de una placa en flexión y las movilidades puntuales que
fijan la potencia vibratoria que una estructura absorbe. Junto a eso lleva tres
atajos y casos particulares que dan esas mismas fuentes: el **método de la
meseta**, una estimación a mano de la curva entera de un panel simple a partir
de una tabla de materiales (Norton 3.9.1); el **panel ortótropo**, donde una
chapa grecada o nervada tiene dos frecuencias críticas y, por tanto, un *rango*
de coincidencia en lugar de un valle (Vigran 6.5.3); y el **puente de las
llaves**, que limita a un muro de fábrica con cámara valgan lo que valgan sus
hojas (Hopkins 4.3.5.4). Las magnitudes medidas
que estas predicciones alimentan están en
[Predicción del aislamiento (EN 12354)](/phonometry/es/buildings/design/insulation-prediction/)
y [Medición del aislamiento en campo (ISO 16283)](/phonometry/es/buildings/insulation/insulation-field/).

**Una nota sobre dos símbolos antes de que empiecen las fórmulas.** El índice de
reducción acústica $R$ de las normas europeas y la pérdida por transmisión $TL$
de la bibliografía norteamericana que sigue esta página son la *misma magnitud*,
$TL \equiv R = -10\lg\tau$; la página conserva el símbolo de cada fuente para que
sus fórmulas se puedan contrastar con el texto impreso, y por eso los resultados
exponen `transmission_loss` y lo valoran como $R_\mathrm{w}$. Del mismo modo, aquí se
escribe la masa por unidad de superficie $m''$, que es la notación de Bies y de
Hopkins para el $m'$ que usan las guías de ISO 12354; $m$ a secas está reservado
en el resto del sitio para el coeficiente de atenuación de potencia del aire de
las fórmulas de reverberación, en 1/m.

*Los cuatro modelos de esta página como un mapa, cada panel una sección de más
abajo. Arriba a la izquierda, la hoja simple: 6 dB por octava hasta que el
modelo de Sharp hunde el aislamiento en la coincidencia, 11,9 dB por debajo de
la ley de masas en la banda de 2,5 kHz. Arriba a la derecha, repartir los mismos
24 kg/m² en dos: 3,4 dB **peor** que una sola hoja en la resonancia
masa-muelle-masa de 89 Hz y 47,7 dB mejor a 5 kHz. Abajo a la izquierda, la
eficiencia de radiación: 0,011 a 100 Hz, 2,61 en la coincidencia, y solo despacio
de vuelta hacia 1. Abajo a la derecha, la fuga que zanja la discusión: un 1 % de
la superficie abierto mantiene $R$ en 20,0 dB valga lo que valga la pared.*

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

```python

from phonometry import (
    coincidence_frequency, composite_transmission_loss,
    double_wall_transmission_loss, mass_law_transmission_loss,
    mass_spring_mass_resonance, plate_bending_stiffness,
    radiation_efficiency, single_panel_transmission_loss,
)

bands = np.array([50, 63, 80, 100, 125, 160, 200, 250, 315, 400, 500, 630, 800,
                  1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000], dtype=float)
fig, ax = plt.subplots(2, 2, figsize=(12, 9))

bp = plate_bending_stiffness(6.2e10, 0.006, 0.24)
fc = coincidence_frequency(15.0, bp)
ml = mass_law_transmission_loss(bands, 15.0, incidence="field")
sp = single_panel_transmission_loss(bands, 15.0, critical_frequency=fc, loss_factor=0.024)
ax[0, 0].semilogx(bands, ml, "--", label="ley de masas de campo")
ax[0, 0].semilogx(bands, sp.transmission_loss, "-o", ms=3, label="R de panel simple (Sharp)")
ax[0, 0].axvline(fc, ls=":", color="r"); ax[0, 0].set_title("Panel simple")

dw = double_wall_transmission_loss(bands, 12.0, 12.0, 0.075)
ax[0, 1].semilogx(bands, mass_law_transmission_loss(bands, 24.0), "--", label="hoja simple")
ax[0, 1].semilogx(bands, dw.transmission_loss, "-o", ms=3, label="pared doble")
ax[0, 1].axvline(mass_spring_mass_resonance(12.0, 12.0, 0.075), ls=":", color="r")
ax[0, 1].set_title("Pared doble")

sig = radiation_efficiency(bands, 1.5, 1.25, fc)
ax[1, 0].loglog(bands, sig.radiation_efficiency, "-o", ms=3, label=r"$\sigma(f)$")
ax[1, 0].axhline(1.0, ls=":"); ax[1, 0].set_title("Eficiencia de radiación")

wall = sp.transmission_loss
comp = [float(composite_transmission_loss([0.99, 0.01], [w, 0.0])) for w in wall]
ax[1, 1].semilogx(bands, wall, "-o", ms=3, label="pared maciza")
ax[1, 1].semilogx(bands, comp, "-s", ms=3, label="pared + rendija 1 %")
ax[1, 1].axhline(20.0, ls=":"); ax[1, 1].set_title("Compuesta con abertura")

for a in ax.flat:
    a.set_xlabel("Frecuencia [Hz]"); a.legend(fontsize=8); a.grid(alpha=0.3)
fig.suptitle("Aislamiento acústico teórico de paneles")
fig.tight_layout(); plt.show()
```

</details>

## Panel simple: ley de masas y coincidencia (Bies 7.2)

Un panel flexible y poco rígido transmite el sonido al ser movido en bloque por
la presión incidente; cuanto más pesado y mayor la frecuencia, más se resiste.
La **ley de masas a incidencia normal** (Bies Ec. 7.40) y su forma de campo
difuso (Ec. 7.42) son

$$
TL_0 = 10 \log_{10}\!\left[ 1 + \left(\frac{\pi f\, m''}{\rho_0 c_0}\right)^2 \right],
\qquad TL = TL_0 - \Delta_{\text{banda}},
$$

con $m''$ la masa por unidad de superficie y $\Delta_{\text{banda}} = 5{,}5$ dB
(tercio de octava) o $4{,}0$ dB (octava). Por encima del codo del argumento la
ley de masas sube **6 dB por octava y 6 dB por duplicar la masa**: los dos
hechos sobre los que descansa todo cálculo de aislamiento.

Un panel real también es rígido, así que en la **frecuencia de coincidencia
(crítica)** (Bies Ec. 7.3)

$$
f_\mathrm{c} = \frac{c_0^2}{2\pi}\sqrt{\frac{m''}{B'}}
    = \frac{0{,}55\, c_0^2}{c_\mathrm{L}\, h},
$$

la longitud de onda de flexión libre iguala la longitud de onda de traza del
sonido incidente y el panel se vuelve transparente: la **caída del aislamiento en la coincidencia**.
El método de Sharp mantiene la ley de masas de campo hasta $f_\mathrm{c}/2$, cae con una
recta en $\log f$ y desde $f_\mathrm{c}$ sigue (Ec. 7.44)
$TL = 10\log_{10}[1 + (\pi f m''/\rho_0 c_0)^2] + 10\log_{10}(2\eta f/\pi f_\mathrm{c})$ con el factor
de pérdidas $\eta$. El valle se sitúa en el punto B de la carta de diseño de
Bies, $TL = 20\log_{10}(f_\mathrm{c} m'') + 10\log_{10}\eta - 44$.

Toda la sección en un esquema: un campo difuso excita una hoja simple y el
$R(f)$ predicho sube con la ley de masas hasta la coincidencia. Una
placa de yeso laminado de 12,5 mm sitúa $f_\mathrm{c}$ cerca de 2,6 kHz y puntúa
$R_\mathrm{w} = 27$ dB.

```python

from phonometry import (
    coincidence_frequency, plate_bending_stiffness,
    single_panel_transmission_loss,
)

# Vidrio flotado de 6 mm: E = 62 GPa, rho = 2500 kg/m3, nu = 0.24, eta = 0.024.
bands = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800,
                  1000, 1250, 1600, 2000, 2500, 3150], dtype=float)
mass = 2500.0 * 0.006                                 # 15 kg/m2
bp = plate_bending_stiffness(6.2e10, 0.006, 0.24)     # B' [N.m]
fc = coincidence_frequency(mass, bp)
print(round(fc))                                      # 2107 Hz (Hopkins declara ~2079)

res = single_panel_transmission_loss(bands, mass, critical_frequency=fc,
                                     loss_factor=0.024)
print(round(res.rating().rating))                     # 32  ->  Rw = 32 dB (vidrio 6 mm de catálogo)

res.plot()   # R(f) previsto con la frecuencia crítica marcada (requiere matplotlib)
```

El espectro predicho entra directamente en el índice ISO 717-1 mediante
`res.rating()`, y en EN 12354 como el $R$ de elemento «predicho» allí donde la
norma exigiría una medida de laboratorio.

**¿Qué factor de pérdidas es $\eta$?** El factor de pérdidas **total** del
elemento *tal como está montado*, no el factor de pérdidas interno del material.
En un elemento montado, el total es el interno más el de radiación más las
pérdidas en los bordes, y para un elemento pesado en un hueco de ensayo domina
el término de bordes: el anexo C de ISO 12354-1 da
$\eta_\mathrm{tot,lab} \approx \eta_\mathrm{int} + m'/(485\sqrt{f}) \approx 0{,}01 +
m'/(485\sqrt{f})$ para elementos por debajo de 800 kg/m², al alcance sin salir
de la biblioteca como `laboratory_total_loss_factor`. Para este vidrio de
15 kg/m² esa estimación vale 0,011 a 500 Hz, apenas por encima del valor
interno; para un forjado de hormigón de 484 kg/m² vale 0,055, cinco veces la
cifra del material. La vía medida es el tiempo de reverberación estructural y
$\eta = 2{,}2/(fT_\mathrm{s})$, la misma magnitud que miden las guías de
[ISO 10848](/phonometry/es/buildings/insulation/flanking-lab/) y de
[EN 15657](/phonometry/es/buildings/design/structure-borne-power/).
Conviene saber qué hay en juego: la profundidad del valle lleva $10\lg\eta$, así
que un factor de tres en $\eta$ mueve la región de coincidencia 4,8 dB y no
cambia nada por debajo de $f_\mathrm{c}/2$.

*El espectro de Sharp previsto se evalúa exactamente como una medición: la
caída del aislamiento en $f_\mathrm{c} \approx 2{,}1$ kHz concentra la mayor parte
de las desviaciones desfavorables, y la referencia desplazada leída a
500 Hz da el $R_\mathrm{w} = 32$ dB de catálogo del vidrio de 6 mm.*

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

```python

from phonometry import (
    coincidence_frequency, plate_bending_stiffness,
    single_panel_transmission_loss,
)

# Vidrio flotado de 6 mm: E = 62 GPa, rho = 2500 kg/m3, nu = 0,24, eta = 0,024.
bands = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800,
                  1000, 1250, 1600, 2000, 2500, 3150], dtype=float)
mass = 2500.0 * 0.006
bp = plate_bending_stiffness(6.2e10, 0.006, 0.24)
fc = coincidence_frequency(mass, bp)
res = single_panel_transmission_loss(bands, mass, critical_frequency=fc,
                                     loss_factor=0.024)
w = res.rating()

# Una línea cada una: el R(f) previsto, o la curva evaluada frente a la referencia:
res.plot(language="es")
w.plot(language="es")
plt.show()

# A mano, combinando ambas en unos mismos ejes:
fig, ax = plt.subplots()
ax.semilogx(bands, res.transmission_loss, "o-", label="R previsto (Sharp)")
ax.semilogx(w.band_centers, w.shifted_reference, "s--",
            label="referencia desplazada")
ax.fill_between(w.band_centers, w.measured, w.shifted_reference,
                where=w.measured < w.shifted_reference, interpolate=True,
                alpha=0.3, label="desviaciones desfavorables")
ax.axvline(fc, ls=":", color="tab:green", label=f"fc = {fc:.0f} Hz")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel(r"Índice de reducción acústica $R$ "
              r"(pérdida por transmisión $\mathrm{TL}$) [dB]")
ax.set_title(f"Rw = {w.rating} dB  (C={w.c:+d}; Ctr={w.ctr:+d})")
ax.legend()
plt.show()
```

</details>

El clip de abajo mira la coincidencia mientras ocurre en un
[campo FDTD elástico 2D](/phonometry/es/simulation/elastic-waves/): una placa de
acero de 10 mm inmersa en aire, excitada por una onda plana sostenida a 45
grados, con las dos frecuencias elegidas con la
`coincidence_frequency` de la biblioteca. A `fc/2` = 603 Hz la transmisión
medida cae sobre la ley de masas oblicua; a `2 fc` = 2413 Hz la traza a 45
grados iguala exactamente la longitud de onda de flexión y la placa en
coincidencia reirradia un haz a 45 grados que crece a lo largo de la placa,
clavando el nivel transmitido en la cifra de `fc/2` aunque la ley de masas
exige 12 dB más de bloqueo a cuatro veces la frecuencia. El aire excita el
pesado acero tan débilmente que la onda de flexión resonante necesita decenas
de metros de placa iluminada para desarrollarse del todo, y por eso las
medidas muestran una caída real del aislamiento y no una transparencia total.

Lo que la placa deja pasar queda unos 47 dB por debajo de la onda incidente,
así que en la escala de color que fija la onda estacionaria sobre la placa el
campo transmitido saldría como una banda negra. Por eso los dos paneles
dibujan el aire bajo la placa con la ganancia de representación que imprimen
(×150, es decir +44 dB); la ganancia es la misma en ambos para que sigan
siendo comparables, y los niveles anotados son los medidos, los físicos.

### Estimaciones rápidas: el método de la meseta (Norton 3.9.1)

Antes del modelo físico hay un atajo que los técnicos llevan décadas dibujando
a mano. El **método de la meseta** (Norton y Karczub 2003, sección 3.9.1, según
Watters) aproxima toda la curva de incidencia de campo de un panel simple con
tres números por material, tabulados en `PLATEAU_MATERIALS` a partir de la
tabla 3.1 de Norton: la densidad superficial por milímetro de espesor, la
altura en decibelios de la meseta de coincidencia y la relación de frecuencias
`B/A` que fija su anchura.

La construcción tiene tres partes:

1. la **ley de masas de incidencia de campo**
   `TL = 10 lg(1 + (π f m''/ρ₀c₀)²) − 5 dB` (Ecs. 3.104 y 3.106 de Norton), que
   sube 6 dB por octava;
2. una **meseta de coincidencia** horizontal a la altura tabulada, con el punto
   **A** donde la recta de la ley de masas la alcanza;
3. el punto **B** en $B/A \times f_A$, por encima del cual la estimación se recupera
   a **10 dB por octava**.

No necesita ni la rigidez a flexión ni el factor de pérdidas (la meseta
tabulada absorbe ambos) y supone campo difuso a ambos lados de un panel cuya
longitud y anchura sean al menos veinte veces su espesor.

*Las dos curvas son la misma recta por debajo del punto A. Por encima, la
estimación por meseta sustituye toda la región de coincidencia por un único
valor plano, que es exactamente lo que dice ser: una estimación, no la caída.*

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

```python

from phonometry import plateau_transmission_loss, single_panel_transmission_loss

# Vidrio float de 6 mm: la tabla 3.1 de Norton da 2,47 kg/m2 por mm, una
# meseta de coincidencia de 27 dB y B/A = 10; su frecuencia crítica es 2033 Hz.
bands = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800, 1000,
                  1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000,
                  10000], dtype=float)
quick = plateau_transmission_loss(bands, material="glass", thickness_mm=6.0,
                                  field_correction=5.5)
physical = single_panel_transmission_loss(bands, 2.47 * 6.0,
                                          critical_frequency=2033.0,
                                          loss_factor=0.02)

print(round(quick.plateau_start), round(quick.plateau_end))   # 374 3742
print(quick.plateau_height)                                   # 27.0
quick.plot(language="es")   # sombrea la meseta entre los puntos A y B
plt.show()
```

</details>

Una comprobación trabajada frente al libro: un muro de ladrillo macizo de
8 m x 3 m y 110 mm de espesor a 2,1 kg/m² por mm ($m'' = 231\ \text{kg/m}^2$) da
35,8 dB en la octava de 63 Hz, sobre la recta de la ley de masas, luego la
meseta de ladrillo de 37 dB en las octavas de 125 Hz y 250 Hz, y después 10 dB
por octava por encima del punto B: exactamente la respuesta publicada de Norton
a su problema 3.11, banda a banda, en las dos regiones que la construcción fija
analíticamente.

```python
from phonometry import plateau_transmission_loss

octaves = [63.0, 125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0]
res = plateau_transmission_loss(octaves, material="brick", thickness_mm=110.0,
                                air_density=1.21)
print(res.transmission_loss.round(1))
# [35.8 37.  37.  43.3 53.3 63.3 73.3]
```

El modelo físico tiene su propia variante a lo Norton para la región por encima
de la coincidencia: `coincidence_model="cremer"` sustituye la Ec. 7.44 de Sharp
por la empírica de Cremer `TL = TL₀ + 10 lg(f/fc − 1) + 10 lg η − 2 dB`
(Ec. 3.110 de Norton) y lleva la ley de masas hasta la propia `fc` sin puente
interpolado. Ambas suben a unos 10 dB por octava muy por encima de la
coincidencia; se diferencian en cómo salen de la caída.

## Paneles ortótropos: un rango de coincidencia, no un valle (Vigran 6.5.3)

La chapa grecada y la nervada no son isótropas. Son muy rígidas *en el sentido*
de las grecas y casi tan flexibles como una chapa plana *en el transversal*, de
modo que en lugar de una frecuencia de coincidencia tienen todo un **rango de
coincidencia** delimitado por las dos rigideces principales a flexión (Vigran
ec. 6.107, la $f_\mathrm{c} = (c_0^2/2\pi)\sqrt{m''/B}$ isótropa evaluada dos veces):

$$
f_{\mathrm{c}1} = \frac{c_0^2}{2\pi}\sqrt{\frac{m''}{B_1}}, \qquad
f_{\mathrm{c}2} = \frac{c_0^2}{2\pi}\sqrt{\frac{m''}{B_2}}, \qquad B_1 > B_2 .
$$

La dirección más rígida fija la frecuencia de coincidencia *más baja*, y ahí
está la trampa: grecar una chapa para ganar resistencia arrastra $f_{\mathrm{c}1}$ hacia
abajo, a menudo hasta unos pocos cientos de hercios, mientras $f_{\mathrm{c}2}$ se sube
a 15 kHz o 30 kHz. En todo ese tramo domina la transmisión resonante y $R$ se
aplana muy por debajo de la ley de masas de una placa plana de la misma masa.

La impedancia de onda de flexión depende ahora del azimut $\vartheta$ además del
ángulo de incidencia $\varphi$ (Heckl 1960; Hansen 1993; Vigran ec. 6.108, que
es la ec. 7.30 de Bies):

$$
Z_\mathrm{w} = \mathrm{j}\omega m''\left[1 -
\left(\frac{f}{f_{\mathrm{c}1}}\cos^2\vartheta + \frac{f}{f_{\mathrm{c}2}}\sin^2\vartheta\right)^2
(1 + \mathrm{j}\eta)\sin^4\varphi\right],
$$

y el promedio en campo difuso de $\tau = |1 + Z_\mathrm{w}\cos\varphi/2\rho_0c_0|^{-2}$
pasa a ser una integral doble (Vigran ec. 6.111 = Bies ec. 7.38). Con
$f_{\mathrm{c}1} = f_{\mathrm{c}2}$ se recupera exactamente la impedancia isótropa de Cremer.

`orthotropic_transmission_loss` ofrece las dos vías publicadas:

- `method="integral"` evalúa numéricamente esa integral doble. Es la única vía
  sensible al factor de pérdidas y la que muestra hasta dónde baja realmente la
  región de coincidencia. Los ángulos rasantes se excluyen con un ángulo
  límite: pasa `area` para el límite dependiente del tamaño de la ec. 7.36 de
  Bies (Vigran la escribe como ec. 6.113), o déjalo sin pasar para el
  `limiting_angle` fijo (78 grados por defecto, el valor de Sharp, que es el
  $\sin^2\varphi = 0{,}96$ de Vigran).
- `method="heckl"` es la aproximación en forma cerrada de Heckl para
  $\eta = 0$, el gráfico de diseño de la fig. 7.9(b) de Bies: ley de masas de
  incidencia de campo por debajo de $f_{\mathrm{c}1}/2$, luego

  $$
  \tau_\mathrm{F} \approx \frac{\rho_0c_0}{2\pi^2 m''}\,\frac{f_{\mathrm{c}1}}{f^2}
  \left[\ln\frac{4f}{f_{\mathrm{c}1}}\right]^2 \quad (f_{\mathrm{c}1} \le f < f_{\mathrm{c}2}/2),
  \qquad
  \tau_\mathrm{F} \approx \frac{\rho_0c_0}{2m''}\,\frac{\sqrt{f_{\mathrm{c}1}f_{\mathrm{c}2}}}{f^2}
  \quad (f > 2f_{\mathrm{c}2}),
  $$

  con rectas en $\log_{10} f$ que salvan los dos huecos. No necesita factor de
  pérdidas ni cálculo numérico, pero exige $f_{\mathrm{c}2} > 4f_{\mathrm{c}1}$ para que sus
  cuatro puntos de construcción queden ordenados.

Para la greca sinusoidal habitual las rigideces equivalentes vienen de
Timoshenko y Woinowsky-Krieger a través de `corrugated_plate_stiffness`
(Vigran ec. 3.115), y la densidad superficial ha de crecer con la **longitud
desarrollada** del perfil, que es lo que devuelve
`corrugated_plate_mass_factor`. `orthotropic_plate_resonance` es la
frecuencia propia correspondiente de una placa ortótropa simplemente apoyada
(Vigran ec. 3.113 = Bies ec. 7.27, según Hearmon 1959); su modo más bajo
importa porque los dos modelos de panel infinito solo valen por encima de unos
$1{,}5f_{1,1}$.

```python
from phonometry import (
    coincidence_frequency, corrugated_plate_mass_factor,
    corrugated_plate_stiffness, orthotropic_critical_frequencies,
    orthotropic_plate_resonance, plate_bending_stiffness,
)

# Ejemplo resuelto de Vigran: chapa de acero de 1 m x 1 m y 1 mm de espesor,
# E = 210 GPa, nu = 0,3, m'' = 7,8 kg/m2, grecada con una sinusoide de 20 mm
# de altura total (amplitud H = 10 mm) y paso de 100 mm.
flat_b = plate_bending_stiffness(2.1e11, 1.0e-3, 0.3)
b_x, b_z, b_xz = corrugated_plate_stiffness(
    1.0e-3, 0.010, 0.100, youngs_modulus=2.1e11, poisson_ratio=0.3,
)
mass = 7.8 * corrugated_plate_mass_factor(0.010, 0.100)
print(round(flat_b, 1), round(b_x, 1), round(b_z))     # 19.2 17.5 2202
print(round(mass, 2))                                  # 8.52 kg/m2 (+9 %)

flat = {"length_x": 1.0, "length_z": 1.0, "mass_per_area": 7.8,
        "bending_stiffness_x": flat_b, "bending_stiffness_z": flat_b,
        "bending_stiffness_xz": flat_b}
corr = {"length_x": 1.0, "length_z": 1.0, "mass_per_area": mass,
        "bending_stiffness_x": b_x, "bending_stiffness_z": b_z,
        "bending_stiffness_xz": b_xz}
print(round(orthotropic_plate_resonance(1, 1, **flat), 1),
      round(orthotropic_plate_resonance(2, 2, **flat), 1))    # 4.9 19.7
print(round(orthotropic_plate_resonance(1, 1, **corr), 1),
      round(orthotropic_plate_resonance(2, 2, **corr), 1))    # 25.5 102.1

# La misma chapa, plana y grecada, en la imagen de la coincidencia:
print(round(coincidence_frequency(7.8, flat_b)))               # 11925 Hz
print([round(f) for f in orthotropic_critical_frequencies(mass, b_x, b_z)])
# [1165, 13064]
```

Las cuatro frecuencias propias son las respuestas impresas por Vigran (4,9 Hz y
19,7 Hz en plano; 25,5 Hz y 102 Hz grecada), y reproducir el par de la chapa
grecada es lo que demuestra que el factor de masa pertenece ahí: con los
7,8 kg/m² planos las mismas fórmulas devuelven 26,7 Hz y 106,7 Hz.

*El intercambio que hace el grecado, sobre la propia geometría de Vigran. Por
debajo de $f_{\mathrm{c}1}$ los dos paneles quedan a unos 2 dB uno del otro (el grecado
algo por encima: es un 9 % más pesado, y la integral en campo difuso usa un
ángulo límite de 78 grados en lugar de la corrección de banda de 5,5 dB de
Sharp). A lo largo del rango de coincidencia la chapa grecada cede hasta 13 dB,
y $R_\mathrm{w}$ baja de 28 dB a 25 dB, con un panel más rígido y apenas más pesado.*

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

```python

from phonometry import (
    coincidence_frequency, corrugated_plate_mass_factor,
    corrugated_plate_stiffness, orthotropic_critical_frequencies,
    orthotropic_transmission_loss, plate_bending_stiffness,
    single_panel_transmission_loss,
)

bands = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800, 1000,
                  1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000,
                  10000, 12500, 16000], dtype=float)
eta = 0.011
flat_b = plate_bending_stiffness(2.1e11, 1.0e-3, 0.3)
b_x, b_z, _ = corrugated_plate_stiffness(
    1.0e-3, 0.010, 0.100, youngs_modulus=2.1e11, poisson_ratio=0.3,
)
mass = 7.8 * corrugated_plate_mass_factor(0.010, 0.100)
fc1, fc2 = orthotropic_critical_frequencies(mass, b_x, b_z)

flat = single_panel_transmission_loss(
    bands, 7.8, critical_frequency=coincidence_frequency(7.8, flat_b),
    loss_factor=eta,
)
corrugated = orthotropic_transmission_loss(
    bands, mass, critical_frequency_lower=fc1, critical_frequency_upper=fc2,
    loss_factor=eta,
)
heckl = orthotropic_transmission_loss(
    bands, mass, critical_frequency_lower=fc1, critical_frequency_upper=fc2,
    method="heckl",
)

# Una línea: R(f) con el rango de coincidencia sombreado entre fc1 y fc2.
corrugated.plot(language="es")
plt.show()

# A mano, las tres curvas en unos mismos ejes:
fig, ax = plt.subplots()
ax.axvspan(fc1, fc2, color="0.85", zorder=0)
ax.semilogx(bands, flat.transmission_loss, "-o", ms=4, label="chapa plana")
ax.semilogx(bands, corrugated.transmission_loss, "-s", ms=4,
            label="grecada, integral")
ax.semilogx(bands, heckl.transmission_loss, "--", label="aproximación de Heckl")
ax.set(xlabel="Frecuencia [Hz]",
       ylabel=r"Índice de reducción acústica $R$ "
              r"(pérdida por transmisión $\mathrm{TL}$) [dB]")
ax.legend()
plt.show()
```

</details>

Merece la pena repetir dos advertencias que Bies añade a la rama de Heckl,
porque ningún modelo suave predice ninguna de las dos. Por debajo de unos
$0{,}7f_{\mathrm{c}1}$ la estimación infravalora $R$ en paneles pequeños, y el error
crece a medida que el panel se reduce; y las chapas grecadas reales casi siempre
muestran un valle de hasta 5 dB en algún punto entre 2 kHz y 4 kHz, que los
cálculos por elementos finitos atribuyeron a resonancias de los tramos de panel
*entre* nervios y no a ningún efecto de coincidencia.

## Pared doble: la resonancia masa-muelle-masa (Bies 7.2.6)

Dos hojas separadas por una cámara se comportan como un sistema
masa-muelle-masa, siendo el aire de la cámara (o el relleno) el muelle. Por
debajo de su **resonancia** (Bies Ec. 7.62, Hopkins Ec. 4.73)

$$
f_0 = \frac{1}{2\pi}\sqrt{\frac{s''\,(m_1 + m_2)}{m_1\, m_2}}
    = 60\sqrt{\frac{m_1 + m_2}{m_1\, m_2\, d}}\quad\text{(cámara de aire vacía)},
$$

el conjunto se mueve como uno y sigue la ley de masas de la masa *combinada*;
por encima, las dos leyes de masas se suman, reforzadas por la cámara, hasta la
frecuencia límite $f_\mathrm{l} = c_0/(2\pi d)$ donde el refuerzo satura en 6 dB
(Ec. 7.64). Un relleno poroso (cualquier
[`PorousMediumResult`](/phonometry/es/materials/absorbers/porous-absorbers/)) ablanda la
cámara y baja $f_0$.

```python
from phonometry import double_wall_transmission_loss, mass_spring_mass_resonance
from phonometry import mass_law_transmission_loss, miki

# Dos hojas de 12 kg/m2, cámara de aire de 75 mm.
f0 = mass_spring_mass_resonance(12.0, 12.0, 0.075)
print(round(f0))                                          # 89 Hz

# Por debajo de f0 la pared doble iguala la ley de masas de la masa total 24 kg/m2:
dw = double_wall_transmission_loss(bands, 12.0, 12.0, 0.075)
print(round(float(dw.transmission_loss[0]), 1),
      round(float(mass_law_transmission_loss(bands[0], 24.0)), 1))   # iguales

# Un relleno de lana mineral (un modelo poroso de materials) baja la resonancia:
fill = miki([f0], 7000.0)
print(round(mass_spring_mass_resonance(12.0, 12.0, 0.075, cavity_medium=fill)))  # < 89 Hz

dw.plot()   # R(f) de pared doble con la resonancia masa-muelle-masa marcada (requiere matplotlib)
```

El caso ligero clásico merece dibujarse a escala: dos placas de yeso de
8,8 kg/m² sobre una cámara vacía de 100 mm dejan $f_0$ en 90 Hz.
`plot_double_wall_geometry` anota la resonancia en la cámara, y un resultado
de `double_wall_transmission_loss` que retuvo su geometría redibuja su propia
sección con `dw.plot_geometry()`.

*Todo el modelo en una sección: las dos hojas delgadas son las masas, la
cámara de aire de 100 mm es el muelle, y $f_0$ = 90 Hz es donde cae el valle
de toda curva de pared doble.*

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

```python

from phonometry import mass_spring_mass_resonance, plot_double_wall_geometry

# Dos placas de yeso de 8.8 kg/m² sobre una cámara de 100 mm.
f0 = mass_spring_mass_resonance(8.8, 8.8, 0.1)
plot_double_wall_geometry(8.8, 8.8, 0.1, resonance_frequency=f0,
                          language="es")
plt.show()

# Una predicción de pared doble retiene su geometría y la redibuja:
#   dw = double_wall_transmission_loss(bands, 8.8, 8.8, 0.1)
#   dw.plot_geometry(language="es")
```

</details>

## Muros de fábrica con cámara: el puente de las llaves (Hopkins 4.3.5.4)

El modelo de doble hoja anterior trata la cámara como aire puro. Un muro de
fábrica con cámara real está cosido por **llaves de muro** cada pocas hiladas,
y esas llaves hacen dos cosas que el modelo con solo aire no puede ver: añaden
un muelle mecánico en paralelo con el muelle de aire, lo que sube la frecuencia
de resonancia masa-muelle-masa, y abren un camino estructural de una hoja a la
otra.

*Izquierda: una llave blanda hace caer el acoplamiento estructural como
$1/f^3$; una rígida se mantiene sobre el techo rígido dos octavas más.
Derecha: esas mismas llaves suben la resonancia de 26 Hz a 50 Hz, prolongando
la rama de masa combinada. Los dos paneles salen de los dos fragmentos de código
de esta sección: el de la derecha, de `double_wall_transmission_loss` con y sin
`tie_stiffness_per_area`; el de la izquierda, de
`wall_tie_coupling_loss_factor(...).plot()`.*

**La llave como muelle (Hopkins Ec. 4.89).** Una llave se caracteriza por un
único número, su rigidez dinámica $s_{X\,\text{mm}}$ para un ancho de cámara
$X$, medida sobre dos cubos de hormigón de 100 mm nominalmente idénticos
(Sección 3.11.3.2, Ec. 3.202). $N$ llaves sobre una placa de área $S$ añaden
$Nk/S$ a la rigidez del aire de la cámara:

$$
f_\mathrm{msm} = \frac{1}{2\pi}
\sqrt{\frac{s_\mathrm{a} + Nk/S}{\rho_{\mathrm{s}1}\rho_{\mathrm{s}2}/(\rho_{\mathrm{s}1}+\rho_{\mathrm{s}2})}}.
$$

Por debajo de $f_\mathrm{msm}$ las dos hojas actúan como una sola placa de masa
combinada, así que las llaves rígidas son doblemente malas: suben la resonancia
hasta el rango de valoración y puentean la cámara. `WALL_TIE_STIFFNESS`
contiene la Tabla A4 de Hopkins, cuyas filas de 50 mm proceden de Hopkins,
Wilson y Craik (1999) y la de 100 mm de Hall y Hopkins (2001).

| Llave de muro | Ancho de cámara (mm) | $s_{X\,\text{mm}}$ (MN/m) |
|---|---|---|
| Llave de mariposa (BS 1243:1978) | 50 | 1,7 |
| Llave de doble triángulo (BS 1243:1978) | 50 | 16,1 |
| Llave de torsión vertical (BS 1243:1978) | 50 | 94,0 |
| Llave de torsión vertical (propietaria) | 100 | 43,4 |

```python
from phonometry import (
    double_wall_transmission_loss,
    mass_spring_mass_resonance,
    wall_tie_stiffness,
    wall_tie_stiffness_per_area,
)

print(wall_tie_stiffness("butterfly"))        # (0.05 m, 1.7e6 N/m)

# Hopkins Fig. 4.35: dos hojas de 140 kg/m2 con cámara vacía de 75 mm.
print(round(mass_spring_mass_resonance(140.0, 140.0, 0.075)))          # 26 Hz

# Se añaden 2,5 llaves/m2 de s_75mm = 2 MN/m: la resonancia casi se duplica.
ties = wall_tie_stiffness_per_area(2.5, 2.0e6)
print(round(mass_spring_mass_resonance(140.0, 140.0, 0.075,
                                       tie_stiffness_per_area=ties)))  # 50 Hz

dw = double_wall_transmission_loss(bands, 140.0, 140.0, 0.075,
                                   tie_stiffness_per_area=ties)
```

**La llave como unión puntual (Hopkins Ecs. 4.84 a 4.88).** Cada llave
transmite potencia estructural entre las hojas. Con las movilidades en el punto
de excitación $Y_i$, $Y_j$ de las dos hojas (placas delgadas infinitas,
$Y = 1/(8\sqrt{B'm''})$, Ec. 2.190) y la movilidad del conector de un muelle
lineal $Y_\mathrm{c} = \mathrm{i}\omega/k$ (Ec. 4.88), $N$ uniones idénticas y no
correlacionadas dan el factor de pérdidas por acoplamiento (Ec. 4.87)

$$
\eta_{ij} = \frac{N}{\omega m_i}
\frac{\mathrm{Re}\{Y_j\}}{|Y_i + Y_j + Y_\mathrm{c}|^2}.
$$

El área de la placa se cancela ($N/m_i = n/\rho_{\mathrm{s}1}$ con $n$ llaves por m²),
así que solo entra la densidad de llaves. Una unión rígida (un tornillo, un
clavo, un perno o una llave tan rígida que nunca cede) es el límite
$Y_\mathrm{c} = 0$, donde $\eta_{ij}$ cae como $1/f$. Una llave elástica añade dos
potencias más en cuanto $|Y_\mathrm{c}| = \omega/k$ supera a las movilidades de las
placas: $\eta_{ij}$ cae entonces como $1/f^3$ y la *razón* frente al techo
rígido como $1/f^2$. Es exactamente por lo que una llave de mariposa de
1,7 MN/m y una de torsión vertical de 94 MN/m se comportan de forma tan
distinta.

```python

from phonometry import plate_bending_stiffness, wall_tie_coupling_loss_factor

freq = np.logspace(np.log10(50.0), np.log10(5000.0), 60)
b1 = plate_bending_stiffness(2.0e10, 0.1, 0.2)   # hojas de fábrica de 100 mm
res = wall_tie_coupling_loss_factor(
    freq, 150.0, 170.0, b1, b1, ties_per_area=2.5, tie="butterfly"
)
print(res.coupling_loss_factor[0], res.rigid_coupling_loss_factor[0])
res.plot()   # eta_ij frente al techo de unión rígida (requiere matplotlib)
```

Los **datos de entrada** de este modelo están impresos: la Tabla A4,
confirmada valor a valor por la Tabla 1 de Hopkins, Wilson y Craik (1999), que
imprime los mismos 1,7 / 16,1 / 94,0 MN/m para cámara de 50 mm. La Tabla 1 de
Craik y Wilson (1995) mide los mismos *tipos* de llave con cámara de 85 mm y da
1,1 y 4,3 MN/m para la de mariposa y la de doble triángulo, así que corrobora el
orden pero no los valores: la rigidez dinámica está definida para un ancho de
cámara dado y cambia con él. La **salida** no está impresa en ninguna parte:
todo índice de reducción acústica publicado de un muro de fábrica con cámara
puenteado es una figura, de modo que la penalización por bandas que introducen
las llaves no tiene oráculo numérico impreso. El desplazamiento de la
resonancia sí lo tiene: la Fig. 4.35 de Hopkins imprime 26 Hz sin llaves y
50 Hz con ellas para el mismo muro.

## Rendijas, orificios y aberturas (Hopkins 4.3.10)

Un pequeño camino de aire es el límite real de cualquier construcción pesada. El
coeficiente de transmisión de una rendija recta (Gomperts, Hopkins Ec. 4.99) y
de un orificio circular (Wilson y Soroka, Ec. 4.102) se predicen directamente,
con las resonancias de la rendija en $d + 2e = z\lambda/2$ (Ec. 4.101). Se
combinan con la pared en la suma energética ponderada por área (Ec. 4.92)

$$
R = -10\log_{10}\!\left( \frac{1}{\sum_n S_n} \sum_n S_n\, 10^{-R_n/10} \right),
$$

de modo que una abertura desnuda de área relativa $S_\mathrm{a}/S$ limita la composición
a $10\log_{10}(S/S_\mathrm{a})$: una abertura del 1 % nunca puede superar los 20 dB, sea cual
sea la pared.

```python
from phonometry import (
    composite_transmission_loss, slit_transmission_coefficient,
    slit_resonance_frequencies,
)

# Una rendija de 2 mm x 100 mm de fondo: su transmisión tiene máximos en las
# resonancias de media longitud de onda del fondo de la rendija.
print(slit_resonance_frequencies(depth=0.1, width=0.002, orders=2).round().tolist())  # [~1500, ~3100]

# Una pared de Rw = 50 dB con el 1 % de su área abierta como rendija queda limitada:
print(round(float(composite_transmission_loss([0.99, 0.01], [50.0, 0.0])), 1))   # 20.0
```

La fuga que arruina una pared pesada es casi invisible, y `.plot_geometry()`
lo deja claro dibujándola a escala: un hueco de 2 mm a través de 100 mm de
fábrica.

*La geometría minúscula detrás de una fuga grande: el hueco es 50 veces más
profundo que ancho, y por eso se comporta como un tubo corto con resonancias
de media longitud de onda del fondo cerca de 1,5 y 3,1 kHz, y no como una
simple área abierta.*

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

```python

from phonometry import slit_transmission_coefficient

f = np.geomspace(100.0, 5000.0, 200)
result = slit_transmission_coefficient(f, width=0.002, depth=0.1)

# Una línea: la sección de la pared con la rendija a escala.
result.plot_geometry(language="es")
plt.show()
```

</details>

El clip de abajo pone los dos regímenes en paralelo en un campo FDTD 2D: un
frente plano llega a un muro rígido de 0,10 m con una rendija de 25 mm (λ/20
a 686 Hz) y con un hueco de 0,50 m (una longitud de onda). La rendija
estrecha re-radia lo que traga como una onda cilíndrica, con la transmisión
de Gomperts del modelo anotada; el hueco del tamaño de la longitud de onda
deja pasar el frente casi intacto y proyecta sombras de bordes nítidos. Lo
que pasa por la rendija queda unos 23 dB por debajo de la onda estacionaria
que hay frente al muro, así que en los paneles instantáneos el semiespacio
tras el muro lleva la ganancia de representación que imprime cada panel
(×10, es decir +20 dB, en la rendija y ninguna en el hueco del tamaño de la
longitud de onda); los mapas RMS de abajo mantienen una sola escala
compartida, que es donde se comparan nivel a nivel las dos aberturas.

## Eficiencia de radiación de una placa en flexión (Hopkins 2.9)

Cuánta potencia aérea radia realmente una placa vibrante por unidad de velocidad
cuadrática media es su **eficiencia de radiación** $\sigma$: el factor de
radiación $\varepsilon$ que
[Potencia acústica a partir de la vibración](/phonometry/es/devices/emission/vibration-sound-power/)
(ISO 7849) toma en otro caso como entrada medida. Se define como el cociente
entre la potencia que la placa radia realmente y la que radiaría un pistón
rígido de la misma superficie y la misma velocidad cuadrática media, de manera
que $\sigma = 1$ significa «tan eficiente como un pistón» — y, como muestran los
números de abajo, cerca de la coincidencia una placa puede superarlo.

Hay tres regímenes, no dos (Leppington/Maidanik, Hopkins Ec. 2.227-2.230). **Muy
por debajo de $f_\mathrm{c}$** la longitud de onda de flexión es más corta que la
acústica, las semiondas contiguas se cancelan mutuamente el caudal volumétrico y
solo radian las franjas sin cancelar de los bordes y las esquinas. Por eso el
cálculo necesita las dos dimensiones de la placa y su condición de borde: un
borde empotrado radia más que uno simplemente apoyado, y una placa con bafles
perpendiculares a sus bordes más que una enrasada en un bafle infinito — los
argumentos `boundary` y `baffle` eligen entre ellos. **Alrededor de $f_\mathrm{c}$** la
longitud de onda de traza de la onda de flexión coincide con la acústica, la
forma de Leppington $(1 - f_\mathrm{c}/f)^{-1/2}$ diverge y queda limitada por la
expresión en coincidencia; el panel de abajo alcanza un máximo de
$\sigma = 2,6$ en la banda de 2 kHz. **Solo muy por encima de $f_\mathrm{c}$** se asienta
$\sigma$ hacia 1: un tercio de octava pasada la coincidencia este panel sigue en
1,74.

$$
\sigma = \frac{1}{\sqrt{1 - f_\mathrm{c}/f}} \quad (f > f_\mathrm{c}), \qquad
\sigma \to 1 \quad (f \gg f_\mathrm{c}) .
$$

Merece la pena llevarse dos consecuencias. Una placa *pequeña* es, por debajo de
$f_\mathrm{c}$, mejor radiador relativo que una grande del mismo material, porque la
franja de borde que radia es una fracción mayor de ella: el panel de
1,5 × 1,25 m de abajo da $\sigma = 0,011$ a 100 Hz, y un panel de 0,5 × 0,4 m
del mismo vidrio, 0,034. Y la caída de $R$ en la coincidencia y el pico de
coincidencia de $\sigma$ son el mismo suceso visto por los dos lados — la misma
$\sigma$ reaparece en el factor de transmisión del modelo detallado de
EN 12354 y como el factor de radiación que mide ISO 7849.

*Tres regímenes en un mismo eje. Por debajo de $f_\mathrm{c}$ los dos vidrios se
diferencian en un factor de tres en $\sigma$ aunque son el mismo vidrio — el más
pequeño radia relativamente mejor, porque su franja de borde sin cancelar es una
fracción mayor de él. En la coincidencia los dos superan la unidad: el vidrio de
1,5 × 1,25 m llega a 2,61 en la banda de 2 kHz, que es la que contiene
$f_\mathrm{c}$ = 2107 Hz. Por encima, $\sigma$ vuelve hacia 1 solo despacio: todavía 1,74
un tercio de octava pasada la coincidencia y 1,32 a 5 kHz. El panel de la derecha
es la geometría que supone el modelo y la razón de que necesite dos dimensiones y
una condición de borde.*

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

```python

sig_big = radiation_efficiency(bands, 1.5, 1.25, fc)
sig_small = radiation_efficiency(bands, 0.5, 0.4, fc)

fig, (ax_l, ax_r) = plt.subplots(1, 2, figsize=(11, 4.5))
ax_l.loglog(bands, sig_big.radiation_efficiency, "-o", ms=3, label="1,5 x 1,25 m")
ax_l.loglog(bands, sig_small.radiation_efficiency, "-s", ms=3, label="0,5 x 0,4 m")
ax_l.axhline(1.0, ls=":")
ax_l.axvline(fc, ls=":", color="r")
ax_l.set(xlabel="Frecuencia [Hz]", ylabel=r"Eficiencia de radiación $\sigma$")
ax_l.legend()

# Una línea — la placa con bafle que supone el modelo:
sig_big.plot_geometry(ax=ax_r)
plt.show()
```

</details>

```python
from phonometry import radiation_efficiency, sound_power_from_vibration

# El panel de vidrio de 6 mm (1.5 x 1.25 m) del ejemplo de panel simple anterior.
sig = radiation_efficiency(bands, 1.5, 1.25, fc)
print(sig.radiation_efficiency[bands == 2000].round(2))
# 2.6, el pico de coincidencia: la placa radia más que un pistón cerca de fc

# Alimenta la predicción directamente a ISO 7849 como el factor de radiación:
lw = sound_power_from_vibration(velocity_level=80.0, area=1.875,
                                radiation_factor=sig.radiation_efficiency,
                                frequencies=bands)

sig.plot()   # sigma(f) con el pico de coincidencia (requiere matplotlib)
```

## Movilidades puntuales de estructuras infinitas (Cremer Tabla 5.1)

La potencia vibratoria que inyecta una fuerza puntual es
$W = \tfrac12 |F|^2\,\mathrm{Re}\{Y\}$ (Cremer Ec. 5.23), así que la **movilidad**
puntual $Y$ (la inversa de la impedancia) fija cuánta energía absorbe una
estructura. Para estructuras infinitas son formas cerradas: una placa delgada
infinita es una resistencia pura $Z = 8\sqrt{B'\,m''}$ (real, independiente de
la frecuencia), mientras que una viga infinita tiene
$Y = (1-\mathrm{j})/(4 m' c_\mathrm{B})$ (45 grados, decayendo como $\omega^{-1/2}$).
Aportan la movilidad de receptor que EN 12354-5 necesita cuando no hay medida.
`infinite_plate_point_mobility` e `infinite_beam_point_mobility` devuelven esas
mismas magnitudes empaquetadas como un `MobilityResult` de ISO 7626, así que se
representan, se convierten y se informan igual que cualquier FRF medida; la
[guía de movilidad mecánica](/phonometry/es/vibration/structural/mechanical-mobility/#5-movilidades-de-referencia-cuando-no-se-ha-medido-nada)
las lee frente al resonador SDOF y añade los casos de momento y de barra
longitudinal.

```python
from phonometry import infinite_plate_impedance, infinite_beam_mobility, injected_power

z_plate = infinite_plate_impedance(bp, mass)          # Z = 8 sqrt(B' m'') [N.s/m]
print(round(z_plate))                                 # real, independiente de la frecuencia
w = injected_power(force=10.0, mobility=1.0 / z_plate)
print(round(float(w) * 1e3, 3), "mW")                 # W = |F|^2 / (16 sqrt(B' m''))
```

### Parámetros de las funciones

| Parámetro | Tipo | Unidades | Rango / defecto | Notas |
| :--- | :--- | :--- | :--- | :--- |
| `mass_per_area` | float | kg/m² | > 0 | Densidad superficial $m''$ |
| `critical_frequency` / `bending_stiffness` | float | Hz / N·m | dar uno | Coincidencia $f_\mathrm{c}$, o $B'$ para calcularla |
| `loss_factor` | float | — | > 0; defecto `0.01` en hoja simple, `0.1` en doble hoja | Factor de pérdidas total $\eta$ |
| `band` | str | — | `'third'` (−5,5 dB) / `'octave'` (−4,0 dB) | Ancho de la corrección de campo |
| `mass1` / `mass2` | float | kg/m² | > 0 | Densidades superficiales de las hojas |
| `gap` | float | m | > 0 | Profundidad de cámara $d$ |
| `cavity_medium` | `PorousMediumResult` | — | defecto `None` | Relleno poroso; baja $f_0$ |
| `width` (rendija) | float | m | > 0 | Anchura $w$ de la rendija. **Segundo** argumento posicional tanto de `slit_transmission_coefficient` como de `slit_resonance_frequencies` |
| `depth` (rendija) | float | m | > 0 | Fondo $d$ de la rendija (el espesor de la pared). **Tercer** argumento posicional de `slit_transmission_coefficient`, **primero** de `slit_resonance_frequencies`: las dos funciones toman el par en órdenes opuestos |
| `field` / `position` (rendija) | str | — | `'diffuse'`/`'normal'`, `'mid'`/`'edge'` | Campo incidente y posición |
| `radius` / `depth` (orificio) | float | m | > 0 | Radio $a$ / fondo $d$ del orificio |
| `areas` / `reduction_indices` | seq | m² / dB | longitud $N$ | Elementos de la composición (1-D o (N, bandas)) |
| `length_x` / `length_y` | float | m | > 0 | Dimensiones de la placa (radiación) |
| `boundary` / `baffle` | str | — | `'simply_supported'`/`'clamped'`, `'infinite'`/`'perpendicular'` | Constantes de borde y bafle |

`single_panel_transmission_loss` y `double_wall_transmission_loss` devuelven un
`SoundReductionResult` (`transmission_loss`, `transmission_coefficient`,
`critical_frequency` / `resonance_frequency`, `.rating()`, `.plot()`); las
funciones de rendija y orificio devuelven un `ApertureTransmissionResult`
(`transmission_coefficient`, `transmission_loss`, `.plot()`);
`radiation_efficiency` un `RadiationEfficiencyResult` (`radiation_efficiency`,
`radiation_index`, `.plot()`). Las predicciones arrastran las salvedades de sus
fuentes (el método de Sharp por encima de $1{,}5\times$ la primera resonancia del
panel; la rendija sin viscosidad de Gomperts válida para $w < 0{,}3\lambda$;
«método n.º 1» de Leppington).

## Qué cubre esta guía

Las propias fórmulas fuente: la ley de masas del apartado 7.2 de Bies y el
método de coincidencia de Sharp (Ec. 7.40/7.42/7.44) para un panel simple, la
resonancia masa-muelle-masa de la pared doble y su ganancia de cámara que
satura (Ec. 7.62-7.64), los coeficientes de transmisión de rendija de Gomperts
y de orificio circular de Wilson y Soroka de Hopkins con la suma compuesta
ponderada por área (Ec. 4.92), la eficiencia de radiación de placa de
Leppington/Maidanik (Ec. 2.227-2.230), y las impedancias y movilidades
puntuales de placas y vigas infinitas de la Tabla 5.1 de Cremer con la
relación de potencia inyectada, mediante `single_panel_transmission_loss`,
`double_wall_transmission_loss`, `slit_transmission_coefficient`,
`composite_transmission_loss`, `radiation_efficiency`,
`infinite_plate_impedance`, `infinite_beam_mobility` e `injected_power`. A
ellas se suma el capítulo ortótropo de Vigran: el rango de coincidencia de un
panel nervado o grecado y su pérdida por transmisión aplanada, por la integral
en campo difuso o por la forma cerrada de Heckl (Ec. 6.107-6.113), las
rigideces equivalentes de Timoshenko de una greca sinusoidal (Ec. 3.115) y la
frecuencia propia de placa ortótropa (Ec. 3.113), mediante
`orthotropic_transmission_loss`, `orthotropic_critical_frequencies`,
`corrugated_plate_stiffness`, `corrugated_plate_mass_factor` y
`orthotropic_plate_resonance`. Los muros de fábrica con cámara añaden el
puente de las llaves de las Secciones 3.11.3.2 y 4.3.5.4.1 de Hopkins: las
rigideces dinámicas de la Tabla A4, el conjunto de llaves actuando en paralelo
con el aire de la cámara (Ec. 4.89, accesible con el argumento
`tie_stiffness_per_area` de `mass_spring_mass_resonance` y
`double_wall_transmission_loss`) y el factor de pérdidas por acoplamiento de
unión puntual con conector de muelle lineal (Ecs. 4.87 y 4.88), mediante
`wall_tie_stiffness`, `wall_tie_stiffness_per_area` y
`wall_tie_coupling_loss_factor`.

Cada predicción se mantiene dentro del rango de validez que declara su fuente,
que la guía señala pero no extiende: el método de Sharp (y por tanto
`single_panel_transmission_loss`) no es válido por debajo de aproximadamente
$1{,}5\times$ la primera resonancia del panel, donde manda el propio
comportamiento modal de baja frecuencia del panel, no la ley de masas; el
modelo de rendija de Gomperts solo es válido para una rendija estrecha,
$w < 0{,}3\lambda$, así que una abertura ancha queda fuera de él; y solo está
implementado el «método n.º 1» de Leppington para la eficiencia de radiación,
no sus otras formulaciones publicadas. Los modelos ortótropos son modelos de
panel infinito en las mismas condiciones: por debajo de unos $0{,}7f_{\mathrm{c}1}$ la
rama de Heckl infravalora $R$ en paneles pequeños, y el valle entre 2 kHz y 4
kHz que muestra la chapa grecada real proviene de resonancias de los tramos de
panel entre nervios, que ninguna de las dos vías predice. Solo la greca
sinusoidal tiene aquí rigideces equivalentes; la chapa trapezoidal necesita
las suyas, de la bibliografía que cita Vigran. El modelo de llaves está en la
misma situación por su lado de salida: las entradas son datos impresos, pero
no hay tabulado ningún índice de reducción acústica publicado de un muro de
fábrica con cámara puenteado, así que la penalización por bandas que causan
las llaves no tiene oráculo numérico y solo está anclado el desplazamiento de
la resonancia (Hopkins Fig. 4.35, de 26 Hz a 50 Hz). El factor de pérdidas por
acoplamiento no se introduce aquí en un análisis estadístico de energía
completo; combinarlo con el camino aéreo exigiría toda la cadena
sala-placa-cámara-placa-sala.

## Véase también

- [Predicción del aislamiento (EN 12354)](/phonometry/es/buildings/design/insulation-prediction/):
  ensambla el $R$ de elemento predicho o medido en el $R'_\mathrm{w}$ in situ.
- [Potencia acústica a partir de la vibración (ISO 7849)](/phonometry/es/devices/emission/vibration-sound-power/):
  consume la eficiencia de radiación predicha como su factor de radiación.
- [Movilidad mecánica y la familia de FRF (ISO 7626-1)](/phonometry/es/vibration/structural/mechanical-mobility/):
  la contraparte medida de las movilidades puntuales teóricas.
- [Absorbentes porosos y multicapa](/phonometry/es/materials/absorbers/porous-absorbers/): los
  modelos de relleno de cámara que consume una pared doble.
- Referencia de la API: [`building.prediction.panel_transmission`](/phonometry/es/reference/api/building/panel-transmission/), [`building.prediction.masonry_cavity_wall`](/phonometry/es/reference/api/building/masonry-cavity-wall/), [`building.prediction.aperture_transmission`](/phonometry/es/reference/api/building/aperture-transmission/), [`vibration.structural.radiation_efficiency`](/phonometry/es/reference/api/vibration/radiation-efficiency/) y [`vibration.structural.point_mobility`](/phonometry/es/reference/api/vibration/point-mobility/).
- Teoría: [Aislamiento acústico y absorción, predichos](/phonometry/es/reference/theory/rooms-buildings/#aislamiento-acústico-y-absorción-predichos-en-12354-1-2-6-bies-cremer-hopkins): la ley de masas, la caída del aislamiento en la coincidencia y el coeficiente de transmisión que devuelven los modelos de panel.
