Ir al contenido

Tonos discretos prominentes (ECMA-418-1)

Normas aplicables: ECMA-418

Los componentes tonales del ruido de maquinaria molestan mucho más de lo que sugiere su nivel. ECMA-418-1:2024 (referenciada por el Anexo D de ECMA-74) define dos métodos FFT para decidir si un tono discreto es prominente: tone_to_noise_ratio() compara el nivel del tono con el ruido enmascarante de su banda crítica (apartado 11) y prominence_ratio() compara la banda crítica centrada en el tono con las dos bandas contiguas (apartado 12). Ambos devuelven un veredicto estructurado frente a los criterios de prominencia dependientes de la frecuencia.

1. Relación tono-ruido y relación de prominencia

Sección titulada «1. Relación tono-ruido y relación de prominencia»
import numpy as np
from phonometry import psychoacoustics
fs = 48000
rng = np.random.default_rng(0)
t = np.arange(fs) / fs
x = np.sin(2 * np.pi * 1000 * t) + 0.05 * rng.standard_normal(fs) # tono de 1 kHz en ruido
tnr = psychoacoustics.tone_to_noise_ratio(x, fs) # pico más alto, o tone_freq=...
pr = psychoacoustics.prominence_ratio(x, fs, tone_freq=1000.0)
print(tnr.ratio_db, tnr.criterion_db, tnr.prominent)
tnr.plot() # el tono frente a su criterio de prominencia (necesita matplotlib)

Los métodos se apoyan en la banda crítica, el ancho de banda de análisis del oído, Hz (162 Hz a 1 kHz): a un tono solo lo enmascara el ruido que hay dentro de su banda crítica, así que ambos métodos se centran en esa banda y no en todo el espectro, pero la usan de forma distinta. La relación tono-ruido trabaja dentro de la banda, separando sus líneas espectrales en tono y ruido y restando sus niveles (apartado 11, Fórmulas 9–11); la relación de prominencia, en cambio, compara la banda completa centrada en el tono con la media de sus dos bandas críticas contiguas (apartado 12, Fórmula 23):

donde es el nivel del tono (la suma en energía de las líneas tonales por encima de la línea de base entre los bordes de la banda, Fórmula 9), el nivel del ruido enmascarante que queda en la banda crítica, reescalado al ancho de banda crítico completo (Fórmulas 10–11), y , , las potencias de las bandas críticas central, inferior y superior (por debajo de Hz la banda inferior truncada se reescala a un ancho de banda de 100 Hz, Fórmula 24).

Espectro promediado de un tono en ruido con la banda crítica sombreada y la relación tono-ruido anotada frente a su criterio de prominenciaEspectro promediado de un tono en ruido con la banda crítica sombreada y la relación tono-ruido anotada frente a su criterio de prominencia
Mostrar el código de esta figura
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import welch
from phonometry import psychoacoustics
fs = 48000
rng = np.random.default_rng(21)
t = np.arange(30 * fs) / fs
x = (np.sqrt(2) * 0.1 * np.sin(2 * np.pi * 1000 * t)
+ 0.05 * rng.standard_normal(t.size))
res = psychoacoustics.tone_to_noise_ratio(x, fs)
# Espectro Hann promediado a 1 Hz (el front-end del apartado 11.1) y la banda
# crítica en torno al tono detectado (bordes aproximados como +/- dfc/2):
f, p = welch(x, fs, window="hann", nperseg=fs, scaling="spectrum")
dfc = 25 + 75 * (1 + 1.4 * (res.frequency / 1000) ** 2) ** 0.69
sel = (f > 700) & (f < 1400)
plt.plot(f[sel], 10 * np.log10(p[sel]))
plt.axvspan(res.frequency - dfc / 2, res.frequency + dfc / 2, alpha=0.15)
plt.title(f"TNR = {res.ratio_db:.1f} dB (criterio {res.criterion_db:.1f} dB)")
plt.xlabel("Frecuencia [Hz]"); plt.ylabel("Potencia por bin [dB]")
plt.show()

Un TNR igual o superior a dB por debajo de 1 kHz (8 dB constantes para kHz) clasifica el tono como prominente; el criterio del PR es dB por debajo de 1 kHz y 9 dB a partir de ahí, aplicado igualmente con . Las frecuencias bajas reciben umbrales más altos porque unas bandas relativamente más anchas enmascaran más.

ToneAssessment.plot() sitúa el veredicto en su contexto: dibuja el criterio del método que lo ha producido en todo el rango de interés de 89,1 Hz a 11,2 kHz y marca el tono evaluado en su propia frecuencia, de modo que el margen que decide el veredicto se ve en lugar de deducirse.

Relación tono-ruido de un tono de ventilador de 250 Hz frente al criterio de prominencia de ECMA-418-1: el criterio baja desde unos 17 dB a 89 Hz hasta 8 dB constantes por encima de 1 kHz, y el tono evaluado se sitúa en 15,1 dB, 2,1 dB por encima del criterio de 13,0 dB a 250 Hz, luego es prominenteRelación tono-ruido de un tono de ventilador de 250 Hz frente al criterio de prominencia de ECMA-418-1: el criterio baja desde unos 17 dB a 89 Hz hasta 8 dB constantes por encima de 1 kHz, y el tono evaluado se sitúa en 15,1 dB, 2,1 dB por encima del criterio de 13,0 dB a 250 Hz, luego es prominente
Mostrar el código de esta figura
import numpy as np
import matplotlib.pyplot as plt
from phonometry import psychoacoustics
# Un tono de ventilador de 250 Hz en ruido de maquinaria, 10 s a 48 kHz.
fs = 48000
rng = np.random.default_rng(4)
t = np.arange(10 * fs) / fs
x = (np.sqrt(2) * 0.011 * np.sin(2 * np.pi * 250.0 * t)
+ 0.03 * rng.standard_normal(t.size))
res = psychoacoustics.tone_to_noise_ratio(x, fs)
print(round(res.ratio_db, 1), round(res.criterion_db, 1), res.prominent)
# 15.1 13.0 True
# En una línea: el tono frente a la curva de criterio de su propio método.
res.plot(language="es")
plt.show()
# A mano, reproduciendo lo que dibuja ToneAssessment.plot():
f = np.logspace(np.log10(89.1), np.log10(11200.0), 400)
criterio = np.where(f < 1000.0, 8.0 + 8.33 * np.log10(1000.0 / f), 8.0)
fig, ax = plt.subplots()
ax.semilogx(f, criterio, color="#d62728", label="criterio de prominencia")
ax.plot([res.frequency], [res.ratio_db], "o", label="tono evaluado")
ax.plot([res.frequency] * 2, [res.criterion_db, res.ratio_db], ":", color="0.6")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Relación tono-ruido TNR [dB]")
ax.legend()
plt.show()

Cuando los dos ratios discrepan. Cerca de los criterios los veredictos pueden diferir, porque cada ratio es frágil en una situación distinta. El TNR tiene que separar primero las líneas de la banda crítica en tonales y de ruido, así que se degrada cuando esa separación es ambigua: un tono montado sobre una pendiente abrupta de ruido, o componentes muy juntos cuyas faldas se solapan. El PR no necesita separación alguna, lo que lo convierte en la opción robusta y automatizable cuando varios tonos comparten la banda crítica (todos caen en ); a cambio lee de menos cuando una banda vecina también lleva un tono (las bandas laterales dejan de ser ruido) y se sesga en espectros de pendiente pronunciada, donde las dos bandas laterales ya no estiman el enmascaramiento en el tono. En la práctica: prefiere el TNR para un tono limpio y aislado, el PR para complejos multitono que comparten banda, y presenta ambos cuando ronden sus criterios.

ECMA-74 (que delega la evaluación tonal en ECMA-418-1) también fija dónde medir alrededor de un equipo (solo contexto): phonometry implementa las evaluaciones de ECMA-418-1, no el procedimiento de medida del Anexo D de ECMA-74:

Posiciones de medida de emisión ECMA-74: micrófono del operador sentado a 0,25 m y 1,20 m, y las cuatro posiciones de observador a 1 mPosiciones de medida de emisión ECMA-74: micrófono del operador sentado a 0,25 m y 1,20 m, y las cuatro posiciones de observador a 1 m

Los tonos secundarios próximos en la misma banda crítica se combinan según el apartado 11.6; para complejos armónicos evalúa cada componente (tone_freq=). Ambos métodos trabajan sobre espectros promediados RMS con ventana Hann y no necesitan calibración absoluta (los ratios son diferencias de nivel).

Parámetros de tone_to_noise_ratio() / prominence_ratio()

Sección titulada «Parámetros de tone_to_noise_ratio() / prominence_ratio()»
ParámetroTipoUnidadesRango / valor por defectoNotas
xarray 1Dcualquiera (vale sin calibrar)fs/resolution_hz muestrasLos ratios son diferencias de nivel: la calibración se cancela
fsintHz> 0
tone_freqfloat, opcionalHz89,1–11 200; por defecto NoneNone evalúa el pico más alto del rango de interés
resolution_hzfloatHz> 0; por defecto 1.0La banda del tono debe quedar dentro del 15 % de la banda crítica (apartado 11.2)

Ambos devuelven un ToneAssessment(frequency, ratio_db, criterion_db, prominent).

3. Qué métrica de tonalidad usar y cuándo

Sección titulada «3. Qué métrica de tonalidad usar y cuándo»

La biblioteca implementa cuatro evaluaciones de tonalidad, y no son intercambiables: cada una pertenece a una norma distinta, con su propio objetivo, su entrada y su salida.

TNR / PRAudibilidad tonal ΔLTonalidad psicoacústica TAudibilidad tonal de aerogeneradores
NormaECMA-418-1:2024, apartados 11 y 12ISO/PAS 20065:2016, adoptada por el Anexo J de ISO 1996-2:2017ECMA-418-2:2025, apartado 6IEC 61400-11:2012, apartado 9.5
Pregunta que responde¿Es prominente este tono discreto en la emisión de un equipo?¿Es audible el tono por encima del ruido que lo enmascara, y en cuánto?¿Cuán tonal se percibe el sonido?¿Es audible el tono del aerogenerador en la posición de referencia, bin de viento a bin de viento?
EntradaUn espectro FFT, sin necesidad de calibraciónEspectros de banda estrecha con la separación entre líneas declaradaLa señal de presión calibrada, a través del modelo auditivo de SottekEspectros de banda estrecha por bin de velocidad de viento, con la distancia de referencia
SalidaUn ratio en dB frente a un criterio dependiente de la frecuencia, más un veredicto prominente / no prominenteUna audibilidad en dB, cuyos valores decisivo y medio alimentan el ajuste tonal KtUna tonalidad en tu_HMS, una magnitud perceptiva sin criterio asociadoUna audibilidad en dB por bin, informada junto a la potencia acústica del aerogenerador
Se usa paraDeclarar la emisión de equipos TIC (Anexo D de ECMA-74)Evaluación de ruido ambiental: justificar, o descartar, una penalización tonalCalidad sonora: comparar diseños, no superar un límiteEnsayos de tipo y aceptación de aerogeneradores

La tabla se lee como una decisión: la métrica la elige el objetivo del informe, no la comodidad de la entrada. La declaración de emisión de un equipo es un veredicto de prominencia de ECMA-418-1; una queja por un tono de una instalación es una evaluación según ISO 1996-2, así que necesita la audibilidad ΔL que se traduce en Kt (la guía de audibilidad tonal); una comparación de productos en la que nadie va a ser sancionado es donde la tonalidad de ECMA-418-2 se gana su sitio, porque es una magnitud y no un ensayo de umbral (la guía de calidad sonora); y un aerogenerador es un régimen propio, con un procedimiento de medida en IEC 61400-11 que fija la geometría y los bins de viento (la guía de aerogeneradores).

Dos consecuencias que conviene tener presentes. Primera, los números no se convierten: un TNR de 12 dB no es una audibilidad de 12 dB, porque el modelo de enmascaramiento, la definición de banda y la referencia son distintos. Segunda, las métricas pueden discrepar sobre el mismo sonido, y con razón. Un tono puede ser prominente según ECMA-418-1 en el campo próximo de la máquina y resultar inaudible en la vivienda donde se hace la evaluación de ISO 1996-2, mientras la tonalidad del modelo auditivo se mantiene moderada en ambos casos porque valora el sonido completo y no una línea espectral. Informa la métrica que exija la evaluación y cita cualquier otra solo como evidencia de apoyo.

Cubierto. ECMA-418-1:2024 (3.ª edición): los métodos de relación tono-ruido (apartado 11, Fórmulas 9 a 12) y relación de prominencia (apartado 12, Fórmulas 23 a 26) sobre espectros promediados RMS con ventana Hann, el modelo de banda crítica del apartado 10, los criterios de prominencia dependientes de la frecuencia y la combinación de tonos secundarios que comparten banda del apartado 11.6, todo a través de tone_to_noise_ratio() y prominence_ratio().

No cubierto. El veredicto prominent que devuelven estas funciones es solo el criterio numérico. La norma exige además que un tono prominente se confirme por examen auditivo (apartados 11.8/12.8) y que supere el filtro del umbral inferior de audición de los apartados 8/9, que necesita niveles absolutos calibrados: ambas comprobaciones quedan a cargo de quien llama. ECMA-74:2025 está cubierta solo como la norma que delega su evaluación tonal en ECMA-418-1; su propio procedimiento de medida del Anexo D y las posiciones de operador/observador (mostradas arriba solo como contexto) no están implementados aquí.