<!-- canonical: https://jmrplens.github.io/phonometry/es/guides/vibration-sound-power/ -->
Source: https://jmrplens.github.io/phonometry/es/guides/vibration-sound-power/

La potencia acústica aérea que una máquina radia a través de la vibración
estructural de su superficie exterior puede estimarse a partir de la velocidad
vibratoria de la superficie y un **factor de radiación** `ε` (la eficiencia de
radiación), sin una medición acústica. La potencia radiada es (ISO/TS 7849-1,
Fórmula 6)

$$
P = Z_c \, \langle v^2 \rangle \, S \, \varepsilon \quad [\mathrm{W}],
$$

con `Z_c` la impedancia característica del aire y `⟨v²⟩` la velocidad vibratoria
cuadrática media sobre el área radiante `S`. Expresada en niveles (nivel de
velocidad re `v₀ = 5·10⁻⁸ m/s`), el nivel de potencia acústica con ponderación A es
(Fórmula 12 / 15)

$$
L_W = L_v + 10\lg\frac{S}{S_0} + 10\lg\varepsilon
      + 10\lg\frac{Z_{c,n}}{Z_{c,0}},
$$

donde `S₀ = 1 m²`, la impedancia normalizada `Z_{c,n} = 411 N·s/m³` y la de
referencia `Z_{c,0} = 400 N·s/m³` dan el término fijo `10 lg(411/400) =
0,118 dB`. Este módulo alimenta las normas de fuente estructural y de predicción
en edificación (ISO 9611, EN 15657, EN 12354-5).

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

```python

from phonometry import emission

# Niveles de velocidad superficial y un factor de radiación medido por banda.
bands = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0])
lv = np.array([78.0, 82.0, 85.0, 83.0, 79.0, 74.0])
eps = np.array([0.20, 0.45, 0.75, 0.95, 1.00, 1.00])

lw_max = emission.radiated_sound_power_level(lv, 1.6)  # Parte 1, eps = 1
lw_eng = emission.radiated_sound_power_level(lv, 1.6, radiation_factor=eps)  # Parte 2

# Una línea: el espectro LW(f) de una determinación como objeto resultado:
res = emission.sound_power_from_vibration(lv, area=1.6, radiation_factor=eps,
                                          frequencies=bands)
res.plot(language="es")
plt.show()

# A mano, comparando las dos partes:
x = np.arange(bands.size)
fig, ax = plt.subplots()
ax.bar(x - 0.2, lw_max, width=0.4, label="límite superior Parte 1 ($\\varepsilon$ = 1)")
ax.bar(x + 0.2, lw_eng, width=0.4, label="ingeniería Parte 2 ($\\varepsilon$ medido)")
ax.set_xticks(x, [f"{b:g}" for b in bands])
ax.set(xlabel="Frecuencia [Hz]", ylabel="Nivel de potencia acústica $L_W$ [dB re 1 pW]")
ax.legend()
plt.show()
```

</details>

## 1. Las dos partes

Las dos partes difieren solo en el factor de radiación. La **Parte 1** (*survey
method*, sin versión en español)
asume `ε = 1` y da el *límite superior* `L_W,max`, necesitando solo el nivel de
velocidad y el área. La **Parte 2 (ingeniería)** aplica un factor de radiación
por banda `εⱼ` determinado (según ISO 9614) como `εⱼ = Pⱼ/(Z_{c,n}·⟨vⱼ²⟩·S)`.

```python

from phonometry import emission

bands = np.array([250.0, 500.0, 1000.0, 2000.0])
lv = np.array([82.0, 85.0, 83.0, 79.0])          # nivel de velocidad por banda [dB]

# Límite superior de la Parte 1 (epsilon = 1):
upper = emission.sound_power_from_vibration(lv, area=1.6, frequencies=bands)
print(round(upper.total_level, 1))               # p. ej. 89.4  dB re 1 pW

# Valor de ingeniería de la Parte 2 con un factor de radiación medido:
eps = np.array([0.45, 0.75, 0.95, 1.00])
eng = emission.sound_power_from_vibration(lv, area=1.6, radiation_factor=eps, frequencies=bands)
print(np.round(eng.sound_power_level, 1))        # L_W por banda

eng.plot()   # el espectro LW(f), como en la figura de arriba (requiere matplotlib)
```

## 2. Nivel de velocidad, calibración y factor de radiación

El nivel de velocidad es `L_v = 20·lg(v/v₀)` (Fórmula 3); una aceleración de
calibración sinusoidal se convierte como `L_v = 20·lg(â/(2πf·v₀·√2))`
(Fórmula 8). El factor de radiación procede de una potencia medida de forma
independiente:

```python
from phonometry import emission

# El EJEMPLO de calibración de la norma: 9,81 m/s^2 a 100 Hz.
print(round(float(emission.velocity_level_from_acceleration(9.81, 100.0)), 1))   # 106.9 dB

# Factor de radiación desde una potencia medida (ISO 9614): eps = P / (Zc <v^2> S).
eps = emission.radiation_factor(3.0e-4, area=2.0, mean_square_velocity=(1e-3)**2)
print(round(float(eps), 3))                                                # 0.365
```

Los niveles de velocidad superficial de varias posiciones se combinan con la
media energética `mean_velocity_level` (Fórmula 10) o su forma ponderada por área
(Fórmula 11), y la corrección `extraneous_velocity_correction` elimina la
vibración extraña según la Tabla 2.

## 3. Cuándo se rompe la hipótesis del factor de radiación

Todo el método descansa en una sustitución: reemplazar la medición acústica
por `ε`. El valor `ε = 1` de la Parte 1 solo se acerca al factor de
radiación real por encima de la **frecuencia crítica (de coincidencia)** de
las partes tipo placa, donde las ondas de flexión viajan más rápido que el
sonido y la superficie radia como un pistón. Por debajo de la coincidencia,
zonas adyacentes de la placa se mueven en contrafase y su radiación se
cancela en gran medida: `ε` cae muy por debajo de uno y baja deprisa al bajar
la frecuencia, de modo que el método de control puede sobrestimar las bandas
graves de una carcasa grande y delgada en 10 dB o más. La misma cancelación hace que las fuentes pequeñas
radien mal (el cortocircuito acústico alrededor de un panel sin bafle). Otras
dos hipótesis son fáciles de violar en campo:

* **La vibración medida debe ser la de la propia máquina.** La vibración que
  entra desde la maquinaria vecina infla `⟨v²⟩`; la Tabla 2 prescribe la
  comprobación con la fuente parada y `extraneous_velocity_correction` la
  aplica.
* **La superficie debe ser el radiador dominante.** El sonido aéreo de
  aberturas, tomas o fuentes internas que esquiva la carcasa medida es
  invisible para una medición de velocidad; el método caracteriza solo la
  parte estructural.

La Parte 2 existe exactamente para el problema del factor de radiación:
sustituye el `ε = 1` fijo por un `εⱼ` banda a banda determinado a partir de una medición de
referencia de la potencia radiada (intensidad ISO 9614), tras lo cual la
medición de velocidad puede repetirse a bajo coste en máquinas nominalmente
idénticas.

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

Una determinación termina como un *documento*. El `VibrationSoundPowerResult`
expone 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 (el método de control de la ISO/TS 7849-1 con un
factor de radiación fijo `ε = 1`, o el método de ingeniería de la ISO/TS
7849-2 con un factor de radiación determinado), una cabecera de metadatos
opcional (cliente, máquina/fuente, entorno de ensayo, instrumentación, clima,
fecha), una tabla por bandas (frecuencia nominal de octava/tercio de octava, el
nivel de velocidad vibratoria superficial $L_v$ y el nivel de potencia acústica
de banda $L_W$), el espectro de potencia acústica $L_W(f)$ con eje de banda
nominal, y un nivel de potencia acústica ponderado A $L_{WA}$ (dB re 1 pW)
recuadrado con el total $L_W$, el área radiante $S$ y el método aplicado al
lado.

Los metadatos se aportan mediante un `ReportMetadata`, cuyos campos aplicables
aquí son la **descripción de la máquina/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
de ensayo** (`test_date`) y la identidad del pie (`laboratory`, `operator`,
`report_id`, `notes`); el área radiante $S$ procede del propio resultado y se
imprime en el recuadro, junto con la relación de potencia acústica
$L_W = L_v + 10\lg(S/S_0) + 10\lg\varepsilon + 10\lg(Z_{c,n}/Z_{c,0})$ en la
tira de base. Aportar `requirement` añade un veredicto APTO/NO APTO frente a un
límite de potencia acústica ponderado A declarado (una emisión de potencia
acústica es una magnitud en la que menos es mejor, así que la fuente cumple en
el límite o por debajo). `verbose=True` añade la columna del factor de radiación
$\varepsilon$ a la tabla. `language="es"` genera la ficha en español con
decimales de coma.

```python

from phonometry import ReportMetadata, emission

freqs = np.array([125, 250, 500, 1000, 2000, 4000], float)
lv = np.array([78.0, 82, 85, 83, 79, 74])          # nivel de velocidad superficial [dB]
eps = np.array([0.20, 0.45, 0.75, 0.95, 1.00, 1.00])  # factor de radiación medido
res = emission.sound_power_from_vibration(
    lv, area=1.6, radiation_factor=eps, frequencies=freqs,
)

res.report(
    "vibration_sound_power.pdf",
    metadata=ReportMetadata(
        client="Planta de fabricación de ejemplo",
        specimen="Carcasa de reductor (panel de acero)",
        test_room="Nave de máquinas (medición de vibración de la fuente)",
        instrumentation="Acelerómetro piezoeléctrico (calibración ISO 16063-21), n/s 0042",
        laboratory="Ejemplo de referencia de phonometry",
        report_id="EXAMPLE-7849",
        requirement=90.0,
    ),
    language="es",
)   # LWA = 88,7 dB(A) re 1 pW -> límite declarado 90 dB(A): APTO
```

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

## Qué cubre esta guía

**Cubierto.** La ISO/TS 7849-1:2009 y la ISO/TS 7849-2:2009 en lo que
definen el cálculo de la potencia acústica a partir de la vibración: la
potencia radiada `P = Z_c⟨v²⟩Sε` (Fórmula 6), el nivel de velocidad y su
conversión de calibración (Fórmulas 3, 8) que ejecutan `velocity_level` y
`velocity_level_from_acceleration`, la media sobre la superficie (Fórmulas
10/11) que ejecuta `mean_velocity_level`, la corrección por vibración
extraña de la Tabla 2 que ejecuta `extraneous_velocity_correction`, y el
nivel de potencia acústica con el término fijo de impedancia (Fórmula 12,
Parte 1) o con un factor de radiación medido por banda (Fórmula 15, Parte 2)
que ejecutan `radiated_sound_power_level` y `sound_power_from_vibration`.
`radiation_factor` implementa la Fórmula 8 de la Parte 2 para una sola
máquina, que convierte una potencia acústica medida de forma independiente
en `ε`.

**No cubierto.** Los apartados de procedimiento de medición de ambas partes
(instrumentación, instalación de la fuente, el número y montaje de las
posiciones de medición, las condiciones ambientales: apartados 5 a 7) y sus
apartados de incertidumbre de medida y anexos informativos no están
implementados: son práctica de laboratorio que esta guía asume. El apartado
8 de la Parte 2 pide además el factor de radiación de un lote o familia de
máquinas, promediando `εⱼ` sobre varias máquinas y su desviación estándar
(Fórmulas 9, 10); solo está implementada la Fórmula 8 de una sola máquina,
así que pasa un `ε` ya promediado para una determinación de familia. La
potencia acústica que alimenta a `radiation_factor` debe proceder de una
medición de intensidad según la ISO 9614, cubierta aparte en la
[guía de intensidad acústica](/phonometry/es/guides/intensity/).

## Véase también

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