Ir al contenido

Intensidad acústica (p-p)

Normas aplicables: IEC 61043ISO 9614Referencias: Fahy 1995

La presión acústica dice cuánto suena un punto; la intensidad acústica dice hacia dónde va la energía. Es el flujo de potencia acústica (W/m²), una magnitud vectorial con signo: por eso las sondas de intensidad pueden localizar fuentes, separarlas del ruido de fondo y medir potencia acústica in situ (ISO 9614) donde una medición de presión por sí sola no puede.

Una sonda p-p sostiene dos micrófonos emparejados a una pequeña distancia . La presión en el centro de la sonda es su media, y la velocidad de partícula proviene del gradiente de presión (ecuación de Euler, en forma de diferencias finitas):

En la práctica, el estimador trabaja en el dominio de la frecuencia a través del espectro cruzado de los dos canales (la forma equivalente de la norma):

Todo lo de esta página se lee después como nivel. El nivel de intensidad acústica es con : el nivel es el del módulo, y el sentido va aparte, que es lo que declara total_direction como . Las dos referencias se eligieron para que casen: en una onda plana progresiva, donde , el nivel de presión y el de intensidad coinciden dentro de dB en condiciones normales del aire (apartado 5 de IEC 61043). Por eso el panel izquierdo de la figura de abajo muestra dos curvas superpuestas, y por eso el índice presión-intensidad tiene un suelo cercano a 0,14 dB y no a 0 — todo lo que una medición en campo enseñe por encima de ese suelo es o bien un campo genuinamente reactivo o contaminado por ruido, o bien el propio error de fase del instrumento.

Sonda de intensidad p-p de dos micrófonos con la distancia del espaciador y el eje de mediciónSonda de intensidad p-p de dos micrófonos con la distancia del espaciador y el eje de medición

La propia sonda es lo bastante pequeña para dibujarla a escala real. plot_pp_probe_geometry coloca el clásico espaciador macizo de 12 mm entre las dos cápsulas enfrentadas, y un IntensityResult calculado que retuvo su spacing redibuja su propia sonda con res.plot_geometry().

Vista lateral a escala de la sonda de intensidad p-p cara a cara: dos cápsulas azules de media pulgada sobre sus cuerpos cilíndricos grises enfrentadas a través del espaciador macizo claro de 12 mm, con la separación acotada debajo y el eje de intensidad Ir dibujado como flecha azul a la derechaVista lateral a escala de la sonda de intensidad p-p cara a cara: dos cápsulas azules de media pulgada sobre sus cuerpos cilíndricos grises enfrentadas a través del espaciador macizo claro de 12 mm, con la separación acotada debajo y el eje de intensidad Ir dibujado como flecha azul a la derecha

La diferencia finita a escala real: dos cápsulas de media pulgada cara a cara a través de 12 mm de espaciador macizo, y ese es a la vez la sensibilidad de la estimación del gradiente y el origen del error en alta frecuencia.

Ver el código de esta figura
import matplotlib.pyplot as plt
from phonometry import emission
# El clásico espaciador macizo de 12 mm entre dos micrófonos de media pulgada.
emission.plot_pp_probe_geometry(language="es")
plt.show()
# Un IntensityResult calculado retiene su separación:
# res = emission.sound_intensity(p1, p2, fs, spacing=0.012)
# res.plot_geometry(language="es")

La medición en sí son dos canales síncronos: p1 y p2 son las presiones calibradas de las dos cápsulas en pascales, p1 la más cercana a la fuente, adquiridas en el mismo analizador a la misma frecuencia de muestreo y con el eje de la sonda normal a la superficie de medición.

import numpy as np
from phonometry import emission
fs = 48000
rng = np.random.default_rng(0)
# Las presiones de los dos micrófonos de la sonda en Pa, p1 el más cercano a la fuente.
# En una medición real son tus dos grabaciones de sonda calibradas;
# sintetizadas aquí (p2 = p1 retardada una muestra) para que la guía funcione.
p1 = 0.02 * rng.standard_normal(fs)
p2 = np.concatenate(([0.0], p1[:-1])) # p2 = p1 retardada una muestra
res = emission.sound_intensity(p1, p2, fs, spacing=0.012, fraction=3,
limits=[100, 2500])
print(res.total_intensity_level, res.total_direction) # LI [dB], ±1
print(res.frequency, res.intensity_level) # por banda
res.plot() # Lp frente a LI por banda + el índice presión-intensidad (requiere matplotlib)
Niveles de presión e intensidad en tercios de octava para una onda plana progresiva frente a una onda estacionariaNiveles de presión e intensidad en tercios de octava para una onda plana progresiva frente a una onda estacionaria

Izquierda: en una onda plana progresiva toda la presión se transporta, así que . Derecha: una onda estacionaria no transporta (casi) energía neta, así que la presión es alta pero la intensidad se desploma. La diferencia es el índice presión-intensidad, el indicador de calidad fundamental de toda medición de intensidad.

Ver el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal
from phonometry import emission
fs, dr, c = 48000, 0.012, 343.0
n = int(fs * 4.0)
# Ruido de banda ancha, limitado a 80 Hz - 6 kHz y escalado a unos 70 dB SPL.
rng = np.random.default_rng(2026)
noise = signal.sosfilt(
signal.butter(4, [80.0, 6000.0], btype="bandpass", fs=fs, output="sos"),
rng.standard_normal(n),
)
noise *= 0.063 / np.std(noise)
spectrum = np.fft.rfft(noise)
freqs = np.fft.rfftfreq(n, 1 / fs)
# Izquierda: una onda plana progresiva. El micrófono 2 ve la onda dr/c = 35 us
# más tarde, aplicado como desfase y no como un número entero de muestras.
plane = emission.sound_intensity(
noise, np.fft.irfft(spectrum * np.exp(-2j * np.pi * freqs * dr / c), n),
fs, dr, fraction=3, limits=[100.0, 5000.0],
)
# Derecha: una onda estacionaria, dos ondas iguales contrapropagantes, con la
# sonda centrada en x0 = 0,30 m de la terminación rígida.
k, x0 = 2 * np.pi * freqs / c, 0.30
def at(pos):
return np.fft.irfft(spectrum * 2.0 * np.cos(k * pos), n)
standing = emission.sound_intensity(at(x0 - dr / 2), at(x0 + dr / 2),
fs, dr, fraction=3, limits=[100.0, 5000.0])
fig, (axl, axr) = plt.subplots(1, 2, figsize=(12, 5), sharey=True)
plane.plot(ax=axl, language="es")
standing.plot(ax=axr, language="es")
plt.show()

El mismo contraste se despliega de forma dinámica abajo: los fasores de presión y velocidad de una onda progresiva y de una estacionaria, con la intensidad instantánea promediando a un flujo neto en un caso y a cero en el otro.

Una sonda p-p de dos micrófonos con fasores giratorios de presión y velocidad; la flecha de intensidad instantánea cambia de sentido mientras su promedio se estabiliza en un flujo neto para la onda progresiva y en cero para la onda estacionaria.

Descargar la animación (WebM)

Una sonda p-p de dos micrófonos con fasores giratorios de presión y velocidad; la flecha de intensidad instantánea cambia de sentido mientras su promedio se estabiliza en un flujo neto para la onda progresiva y en cero para la onda estacionaria.

Descargar la animación (WebM)

Dos límites físicos acotan toda medición p-p, y el objeto de resultado incluye ambos:

  • Alta frecuencia: el gradiente por diferencias finitas subestima en el factor , verificado en CI contra la Tabla 3 de IEC 61043. IntensityResult.bias_correction proporciona el factor y max_valid_frequency (; 2,9 kHz para un espaciador de 12 mm) el techo práctico. Los espaciadores mayores alcanzan frecuencias más bajas; los menores, más altas.
  • Campos reactivos: cuando pressure_intensity_index ( en ISO 9614-1) se acerca al índice residual de la sonda, dominan los errores de fase.

De aquí en adelante se repiten tres símbolos, deducidos en El margen sobre el índice residual, más abajo: es el índice presión-intensidad residual, el suelo de error de fase de la cadena sonda-espaciador-analizador; es el factor de sesgo que permite el grado (10 dB en ingeniería, 7 dB en inspección); y es la capacidad dinámica, el mayor índice de campo que el instrumento puede permitirse con ese grado.

Antes que nada, ISO 9614-1 plantea una pregunta sobre el campo y no sobre la superficie: ¿es lo bastante estacionario como para barrerlo? En el ensayo inicial (apartado 8.2) se elige una posición «típica» sobre una superficie inicial de medida y allí se muestrea la intensidad normal veces con un tiempo de promediación corto (la nota 9 sugiere y, para señales periódicas, de 8 s a 12 s por muestra o cualquier número entero de ciclos). , el indicador de variabilidad temporal, es el coeficiente de variación de esas muestras (ecuaciones (A.1)-(A.2)), de modo que vale cero para un campo perfectamente estacionario y crece a medida que la intensidad parásita fluctúa. La tabla B.3 pide el código de acción (e) cuando supera 0,6: reducir la variabilidad, medir en periodos más tranquilos o alargar el tiempo de promediación en cada posición. El Anexo B además exige que se evalúe inmediatamente antes y después de la medida en cualquiera de las superficies (B.1.4).

from phonometry import emission
# Las M muestras de tiempo corto de la intensidad normal en una posición fija (W/m²).
samples = [1.20e-5, 0.94e-5, 1.51e-5, 1.08e-5, 1.33e-5,
1.02e-5, 1.44e-5, 1.17e-5, 0.88e-5, 1.29e-5]
f1 = emission.temporal_variability_indicator(samples)
print(round(f1, 3)) # 0.177, un campo estacionario
# O bien acompañando al resultado de superficie junto a F2/F3/F4, pasando las
# mismas muestras a field_indicators junto con el barrido por posiciones:
fi = emission.field_indicators([74.1, 73.8, 74.5, 73.2],
[1.2e-5, 1.0e-5, 1.4e-5, 0.9e-5],
temporal_intensity=samples)
print(fi.field_is_stationary()) # True (límite 0,6 de la tabla B.3)

Sobre una superficie de medición, los demás indicadores de campo del Anexo A de ISO 9614-1 cualifican el propio barrido. , el indicador presión-intensidad de superficie, es el nivel de presión de superficie menos el nivel de la magnitud media de la intensidad normal: cuanto mayor es, más cerca está la medición del suelo de error de fase de la sonda. , el indicador de potencia parcial negativa, es la misma diferencia tomada con la intensidad media con signo: revela potencia que entra por partes de la superficie. , el indicador de no uniformidad del campo, es la dispersión normalizada de las intensidades por posición: cuanto mayor es, más posiciones de medición necesita la superficie.

es el que se convierte en un número de posiciones, mediante el criterio 2 del Anexo B, (ecuación (B.2)). El factor no es una constante: la tabla B.2 lo hace depender de la banda y del grado que se pretende — unos 11 en baja frecuencia y hasta 29 en la banda media para el grado de ingeniería, y 19 subiendo hasta 57 para precisión, con 8 para el caso ponderado A de inspección. Así que una misma no uniformidad del campo pide alrededor del doble de posiciones en grado 1 que en grado 2. Con números: en la banda de 1 kHz necesita , es decir, al menos 8 posiciones en grado de ingeniería y al menos 15 en precisión; y cuando se usa un mismo número de posiciones para todas las bandas, la norma aplica el criterio en la banda con el mayor .

además se declara tal cual, que es lo que hace que merezca la pena calcularlo aunque el número de posiciones ya esté fijado: el intervalo de confianza del 95 % sobre el nivel de una banda es (ecuación (B.3)), así que sobre 10 posiciones lleva +1,2 dB / −1,7 dB. Una banda que falle el criterio 2 puede registrarse igualmente, pero solo acompañada de ese intervalo.

Junto con el criterio de capacidad dinámica, los indicadores están disponibles directamente:

import numpy as np
from phonometry import emission
# Mediciones por posición sobre la superficie de medición de ISO 9614-1
pressure_levels = np.array([74.1, 73.8, 74.5, 73.2]) # Lp por posición (dB)
normal_intensity = np.array([1.2e-5, 1.0e-5, 1.4e-5, 0.9e-5]) # In con signo por posición (W/m²)
fi = emission.field_indicators(pressure_levels, normal_intensity)
print(round(fi.f2, 2), round(fi.f3, 2), round(fi.f4, 3)) # 3.41 3.41 0.197
ld = emission.dynamic_capability_index(18.0) # δpI0 = 18 dB → Ld = δpI0 − K
print(ld, ld > fi.f2) # 8.0 True (criterio 1)

Con arrays 2D (posiciones, bandas) y las frecuencias centrales, los indicadores vuelven por banda y el resultado se dibuja en una línea, la forma en la que realmente se comprueban los criterios (cada banda aprueba o falla por sí sola):

fi = emission.field_indicators(lp_bands, in_bands, freqs) # (posiciones, bandas)
fi.plot(dynamic_capability=ld) # F2/F3 por banda frente a Ld, F4 en eje gemelo (requiere matplotlib)
Indicadores de campo de ISO 9614-1 de un barrido de diez posiciones sobre seis bandas de octava: F2 y F3 suben hacia baja frecuencia al volverse reactivo el campo, cruzando la línea discontinua de capacidad dinámica Ld en 125 Hz, donde F3 además sube por encima de F2, con la no uniformidad del campo F4 dibujada como barras en un eje gemeloIndicadores de campo de ISO 9614-1 de un barrido de diez posiciones sobre seis bandas de octava: F2 y F3 suben hacia baja frecuencia al volverse reactivo el campo, cruzando la línea discontinua de capacidad dinámica Ld en 125 Hz, donde F3 además sube por encima de F2, con la no uniformidad del campo F4 dibujada como barras en un eje gemelo

sube hacia baja frecuencia al volverse reactivo el campo y en 125 Hz cruza la capacidad dinámica del instrumento : esa banda falla el criterio 1, y ningún promediado lo arregla — pide un espaciador mayor, otra superficie o una sala más silenciosa. Que suba por encima de en la misma banda revela intensidad parcial entrante (negativa), y las barras de fijan el número de posiciones que necesita la superficie (criterio 2, ).

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import emission
# Un barrido de 10 posiciones en puntos discretos sobre seis bandas de octava:
# la presión sobre la superficie es casi uniforme, y la intensidad normal por
# banda se fija para que el campo se vuelva reactivo hacia baja frecuencia,
# con dos posiciones de flujo entrante en la banda de 125 Hz (reescaladas para
# que la media de la banda conserve su objetivo).
freqs = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0])
delta_pi = np.array([10.5, 8.5, 6.0, 4.5, 3.5, 3.0]) # objetivo Lp − L|In|
rng = np.random.default_rng(9614)
lp_bands = 78.0 + rng.normal(0.0, 0.4, (10, freqs.size))
i_mean = 10.0 ** ((78.0 - delta_pi) / 10.0) * 1.0e-12
in_bands = i_mean[None, :] * (1.0 + rng.normal(0.0, 0.18, (10, freqs.size)))
in_bands[:2, 0] = -0.35 * i_mean[0]
in_bands[2:, 0] *= (10.0 * i_mean[0] - in_bands[:2, 0].sum()) / in_bands[2:, 0].sum()
fi = emission.field_indicators(lp_bands, in_bands, freqs)
ld = emission.dynamic_capability_index(18.0) # δpI0 = 18 dB, K = 10 dB
# Una línea — F2/F3 por banda frente a Ld, con F4 en un eje gemelo:
fi.plot(dynamic_capability=ld, language="es")
plt.show()
# A mano, con los campos por banda que lleva el resultado — reflejando lo que
# dibuja FieldIndicators.plot() (línea escalonada de Ld, leyenda combinada):
fig, ax = plt.subplots()
ax.plot(fi.frequency, fi.f2, "o-", label="F2 (presión-intensidad superficial)")
ax.plot(fi.frequency, fi.f3, "s--", label="F3 (potencia parcial negativa)")
ax.plot(fi.frequency, np.full(fi.frequency.size, ld), ":",
drawstyle="steps-mid", label="Capacidad dinámica Ld")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Indicador [dB]")
twin = ax.twinx()
twin.bar(fi.frequency, fi.f4, width=fi.frequency * 0.2, alpha=0.25,
color="#2ca02c", label="F4 (no uniformidad)")
twin.set_ylabel("No uniformidad del campo F4")
lines, labels = ax.get_legend_handles_labels()
tlines, tlabels = twin.get_legend_handles_labels()
ax.legend(lines + tlines, labels + tlabels)
plt.show()

Una sonda p-p recorre el barrido en serpentina sobre la cara superior de la caja de medición mientras aparecen detrás las flechas de intensidad normal, y las potencias parciales de las cinco caras se acumulan en el nivel de potencia acústica L_W.

Descargar la animación (WebM)

Una sonda p-p recorre el barrido en serpentina sobre la cara superior de la caja de medición mientras aparecen detrás las flechas de intensidad normal, y las potencias parciales de las cinco caras se acumulan en el nivel de potencia acústica L_W.

Descargar la animación (WebM)

Los dos canales de cualquier sonda y analizador real nunca están perfectamente emparejados en fase. Alimenta ambos canales con la misma señal (el ensayo de intensidad residual de IEC 61043): la intensidad verdadera es exactamente cero y, aun así, el desajuste indica una pequeña intensidad falsa. La distancia entre el nivel de presión y ese nivel de intensidad falsa es el índice presión-intensidad residual , el suelo de error de fase del instrumento expresado como índice; IEC 61043 clasifica sondas y procesadores (clase 1 / clase 2) sobre todo por él.

En campo, el índice medido dice cuánto sobresale el nivel de presión respecto al del flujo neto, y el error sistemático de la estimación de intensidad está acotado por el margen entre ambos índices:

Un margen de 10 dB mantiene el sesgo dentro de unos 0,5 dB y uno de 7 dB dentro de aproximadamente 1 dB; son precisamente los factores de sesgo de ISO 9614, y la capacidad dinámica es el mayor índice de campo que el instrumento puede tolerar para un grado de precisión dado. Léelo como un presupuesto: cada decibelio que sube el del campo consume un decibelio de margen, y cuando alcanza la lectura es puro error de fase, de cualquier signo. Por eso el índice presión-intensidad, y no la calidad de los micrófonos, es el que acota la exactitud alcanzable de toda medida de intensidad.

Medir el índice residual, y comprobar la sonda

Sección titulada «Medir el índice residual, y comprobar la sonda»

es el número sobre el que descansan todos los criterios de esta página y de la página de barrido entera, y la biblioteca no lo calcula: se mide, una vez por cadena sonda-espaciador-analizador, en el banco.

Tres paneles. Primero, el dispositivo de ensayo de intensidad residual de IEC 61043: un pequeño acoplador que lleva ruido rosa o blanco a las dos cápsulas de la sonda al mismo nivel dentro de más menos 0,1 decibelios, del que se lee el índice residual como el nivel de presión menos el nivel de intensidad indicado. Segundo, un calibrador acústico de clase 0 o clase 1 según IEC 60942 aplicado a un micrófono cada vez, con el instrumento ajustado dentro de más menos 0,1 decibelios en los dos canales. Tercero, el ensayo in situ de inversión de la sonda: la sonda sobre la superficie de medición marcando una intensidad normal positiva y después girada 180 grados alrededor de su centro acústico marcando una negativa, aceptado cuando las dos tienen signos opuestos y difieren menos de 1,5 decibelios en la banda de nivel máximoTres paneles. Primero, el dispositivo de ensayo de intensidad residual de IEC 61043: un pequeño acoplador que lleva ruido rosa o blanco a las dos cápsulas de la sonda al mismo nivel dentro de más menos 0,1 decibelios, del que se lee el índice residual como el nivel de presión menos el nivel de intensidad indicado. Segundo, un calibrador acústico de clase 0 o clase 1 según IEC 60942 aplicado a un micrófono cada vez, con el instrumento ajustado dentro de más menos 0,1 decibelios en los dos canales. Tercero, el ensayo in situ de inversión de la sonda: la sonda sobre la superficie de medición marcando una intensidad normal positiva y después girada 180 grados alrededor de su centro acústico marcando una negativa, aceptado cuando las dos tienen signos opuestos y difieren menos de 1,5 decibelios en la banda de nivel máximo

El ensayo de intensidad residual (apartado 10.2 de IEC 61043). El dispositivo de ensayo es un pequeño acoplador que presenta el mismo campo sonoro a las dos cápsulas en todo o parte del rango de 45 Hz a 7,1 kHz, excitado con ruido rosa o blanco, y que aplica la presión a los dos micrófonos al mismo nivel dentro de ±0,1 dB al menos de 45 Hz a 1 kHz, con una diferencia de fase acotada entre puertos. Como la intensidad verdadera en ese campo es exactamente cero, lo que indique el instrumento es su propio error de fase, y se lee banda a banda como el nivel de presión menos ese nivel de intensidad indicado. De qué hay en el acoplador se siguen dos consecuencias: el índice pertenece a la sonda, al espaciador montado y al analizador juntos, así que hay que volver a medirlo cada vez que cambie el espaciador; y es una propiedad de la cadena, no una especificación de los micrófonos.

Antes de cada serie (apartado 14). Deja calentar el instrumento lo que diga el fabricante. En modo de presión acústica, aplica un calibrador acústico a los dos micrófonos, por turnos o a la vez, y ajusta hasta la indicación correcta dentro de ±0,1 dB en los dos canales — el apartado 6.2.1 de ISO 9614-2 pide aquí un calibrador IEC 60942 de clase 0 o de clase 1. Después aplica otra vez el dispositivo de intensidad residual y confirma que sigue cumpliendo el requisito de clase en el rango que cubre el dispositivo, con la compensación de fase del fabricante aplicada y, preferiblemente, a un nivel próximo al de uso.

In situ (apartado 6.2.2 de ISO 9614-2): el ensayo de inversión de la sonda. Es la única comprobación que no necesita banco y la que caza el error que ningún banco puede ver. Coloca la sonda sobre la superficie de medición, con el eje normal, en una posición donde la intensidad supere la media de la superficie; registra en todas las bandas. Gira la sonda 180° alrededor de un eje normal al eje de medición, dejando el centro acústico en el mismo sitio — lo que en la práctica significa montarla en un trípode en vez de sostenerla a mano — y mide otra vez. Para que el sistema de medición sea aceptable, en la banda de nivel máximo los dos valores de deben tener signos opuestos y los dos niveles de intensidad deben diferir menos de 1,5 dB. Los dos modos de fallo se leen como diagnóstico: signos iguales significan que los canales están cruzados o que uno está invertido, y una diferencia de más de 1,5 dB significa que la sonda está perturbando su propio campo o que los dos canales no están emparejados. El apartado 10.5 c) hace que el resultado forme parte del informe de ensayo.

Ese signo merece leerse también en el uso normal, no solo en la comprobación. Una intensidad neta negativa en parte de una superficie envolvente significa que entra más potencia por ese trozo de la que sale — de lo más normal en la cara a la sombra de una máquina que está junto a otra más ruidosa, y completamente carente de sentido si los canales están cruzados.

Clasificar el instrumento: tabla 2 de IEC 61043

Sección titulada «Clasificar el instrumento: tabla 2 de IEC 61043»

no es solo un número al que restar ; es aquello por lo que IEC 61043 clasifica el hardware. La tabla 2 de la norma fija un mínimo en cada banda de tercio de octava de 50 Hz a 6,3 kHz, por separado para una sonda, un procesador y un instrumento completo, en clase 1 y clase 2, impreso para la separación nominal entre micrófonos de 25 mm. La nota 1 reescala toda la tabla para cualquier otro espaciador con , con en milímetros: los mismos 3 dB por duplicación a los que llegaba el apartado anterior a partir de la física.

intensity_class_compliance compara un espectro de medido con ambas máscaras banda a banda y devuelve un IntensityInstrumentComplianceResult que lleva la clase que la cadena cumple realmente: la clase más laxa que superan todas las bandas, o None cuando alguna banda no supera ninguna de las dos.

from phonometry import metrology
# Las frecuencias centrales sobre las que se define la tabla 2, y el índice
# residual medido de la cadena: un valor por banda, tomado con el espaciador que
# se montará en campo. Sustituye el marcador por tu propio ensayo residual.
freqs, _, _ = metrology.residual_index_limits("instrument", spacing=0.012)
measured_delta_pi0 = [11.0, 11.9, 11.2, 10.0, 13.2, 15.9, 17.0, 18.0,
19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 24.0, 24.0,
24.0, 24.0, 24.0, 24.0, 24.0, 24.0] # dB, 22 bandas
res = metrology.intensity_class_compliance(measured_delta_pi0, freqs,
device="instrument", spacing=0.012)
print(res.overall_class) # 2: una banda no llega al mínimo de clase 1
print(res.binding_margin()) # menor margen por banda hasta esa clase [dB]
print(res.failing_bands(1)) # las bandas que le cuestan la clase 1 [Hz]
res.plot() # δpI0 medido sobre las dos máscaras de la tabla 2
res.report("verificacion.pdf") # ficha de verificación de una página (PDF)
Índice presión-intensidad residual medido de un instrumento de intensidad completo con espaciador de 12 mm, dibujado como curva escalonada sobre los mínimos de clase 1 y clase 2 de la tabla 2 de IEC 61043; la región de aceptación de clase 2 sombreada queda por encima de la máscara discontinua de clase 2, y la banda de 100 Hz aparece marcada donde el índice medido cae por debajo de la máscara continua de clase 1Índice presión-intensidad residual medido de un instrumento de intensidad completo con espaciador de 12 mm, dibujado como curva escalonada sobre los mínimos de clase 1 y clase 2 de la tabla 2 de IEC 61043; la región de aceptación de clase 2 sombreada queda por encima de la máscara discontinua de clase 2, y la banda de 100 Hz aparece marcada donde el índice medido cae por debajo de la máscara continua de clase 1

Ambas máscaras de la tabla 2 bajan por el espaciador de 12 mm. El índice medido sube 10 dB por década en baja frecuencia, paralelo al requisito, porque un desfase entre canales constante en grados compra exactamente esa pendiente; se aplana por encima de 1 kHz, donde el desfase de una cadena real empieza a crecer con la frecuencia. Una resonancia de ventilación en torno a 100 Hz cuesta 4 dB y hace caer esa única banda por debajo del mínimo de clase 1, así que toda la cadena se clasifica como clase 2.

Ver el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import metrology
# Un instrumento completo con el espaciador habitual de 12 mm. El índice medido
# se modela a partir de la física que hay tras la tabla 2: un desfase residual
# φs se lee como δpI0 = 10 lg(kd/φs), de modo que un desfase constante en
# grados ya sube 10 dB por década y, por encima de 1 kHz, el desfase de una
# cadena real crece con la frecuencia y el índice se aplana.
spacing = 0.012
freqs, _, _ = metrology.residual_index_limits("instrument", spacing=spacing)
phase_mismatch = 0.05 * np.maximum(1.0, freqs / 1000.0) # grados
measured = metrology.residual_index_from_phase_mismatch(phase_mismatch, freqs,
spacing)
measured = measured - 4.0 * np.exp(-((np.log(freqs / 100.0) / 0.25) ** 2))
res = metrology.intensity_class_compliance(measured, freqs, spacing=spacing)
res.plot()
plt.show()

Con ello llegan dos reglas complementarias de la norma. El apartado 6.1 fija el rango de frecuencias que acredita una clase: de 45 Hz a 7,1 kHz en tercios de octava, que la clase 1 exige y la clase 2 también puede emplear, o de 45 Hz a 5,6 kHz en octavas, que se ofrece a la clase 2 como alternativa. Un veredicto calculado sobre menos bandas se marca con range_limited para que no pueda leerse como una declaración de rango completo. La traducción UNE-EN 61043:1999 recoge solo la alternativa en octavas para la clase 2 y omite la de tercios de octava; la biblioteca sigue el texto EN/CEI (véase el registro de erratas). El apartado 8 combina componentes suministrados por separado: instrument_class_from_components(probe_class, processor_class) devuelve 1 solo cuando ambos son de clase 1, y 2 para cualquier otra combinación.

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

Informe de ejemplo de verificación de clase de instrumento de intensidad IEC 61043 (PDF)

Ficha de verificación de clase de instrumento de una página: una cabecera de metadatos, una tabla por bandas con los mínimos de clase 1 y clase 2, el índice residual medido, el margen y la clase alcanzada en cada banda de tercio de octava de 50 Hz a 6,3 kHz, el índice medido trazado como curva escalonada sobre las dos máscaras de la Tabla 2 con la banda de 100 Hz marcada por debajo del mínimo de clase 1, el resultado encuadrado Class 2 - COMPLIES (binding margin +4.20 dB), la separación entre micrófonos y el desfase equivalente, y un veredicto NO CUMPLE frente a la clase 1 exigida.

Descargar el informe (PDF)

Ficha de verificación de clase de instrumento (IntensityInstrumentComplianceResult.report), la clase alcanzada con su margen vinculante y el δpI0 medido sobre los mínimos de la Tabla 2 reescalados al espaciador de 12 mm.

El requisito es en realidad un requisito de emparejamiento de fase disfrazado. En una onda plana que se propaga axialmente la diferencia de fase verdadera entre los dos puntos es , de modo que una intensidad residual producida por un desfase entre canales da

y las dos conversiones funcionan en ambos sentidos:

from phonometry import metrology
# 20 dB de índice residual a 1 kHz con un espaciador de 25 mm:
phi = metrology.phase_mismatch_from_residual_index(20.0, 1000.0, 0.025)
print(round(float(phi), 2)) # 0.26 grados, una centésima de kd
# Y a la inversa, para una cadena con los canales emparejados a 0,05°:
print(round(float(metrology.residual_index_from_phase_mismatch(
0.05, 1000.0, 0.012)), 1)) # 24.0 dB

Por eso el extremo de baja frecuencia de la tabla 2 sube 1 dB por banda de tercio de octava y después se aplana: por debajo del codo la norma pide un emparejamiento de fase constante, y por encima un índice constante. El codo está en 250 Hz para las tres columnas de clase 1 y para el procesador de clase 2, y en 630 Hz para la sonda de clase 2 y el instrumento completo de clase 2, que es además donde la tabla deja de avanzar en decibelios enteros (el instrumento pasa por 14 dB a 315 Hz, 14,5 dB a 400 Hz y 15 dB a 500 Hz). También por eso una décima de grado de desfase entre canales es una especificación exigente, y por eso una sonda debe verificarse con el espaciador con el que realmente se va a usar.

Antes de tomar ningún dato hay dos decisiones: dónde se puede colocar la superficie de medición y qué espaciador se monta en la sonda.

Cerca de una fuente el campo se vuelve reactivo: la presión y la velocidad de partícula tienden a la cuadratura, así que una presión grande transporta poco flujo neto. Para una fuente pequeña la componente en cuadratura crece como ; a 100 Hz y 0,25 m de la fuente ya es aproximadamente el doble de la activa, y sube igual que en la onda estacionaria de la figura de dos paneles del principio de esta página. Lo mismo ocurre entre una máquina y una superficie reflectante rígida, y en cámaras reverberantes donde el campo difuso eleva la presión sin transportar energía hacia fuera. Por eso ISO 9614-1 mantiene la superficie de medición a más de 0,5 m de la fuente en promedio, y por eso, cuando un barrido no cumple el criterio de capacidad dinámica, alejar la superficie o añadir absorción a la sala suele bajar por debajo de con menos coste que un hardware mejor.

El espaciador fija los dos extremos de la banda utilizable, en sentidos opuestos:

  • El extremo alto es geometría. La diferencia finita subestima el gradiente en el factor , así que el techo escala como : max_valid_frequency mantiene el sesgo dentro de unos 0,3 dB, lo que da aproximadamente 5,7 kHz con un espaciador de 6 mm, 2,9 kHz con 12 mm y 690 Hz con 50 mm (bias_correct=True deshace el sesgo conocido algo más allá).
  • El extremo bajo es fase. Una onda progresiva introduce solo grados de fase verdadera a lo largo del espaciador, 0,8° a 63 Hz con 12 mm, mientras el desajuste entre canales permanece fijo. Bajar la frecuencia encoge la señal, no el error, así que el margen sobre se desploma en baja frecuencia. Un espaciador mayor recupera ese margen: los requisitos de índice residual de IEC 61043 escalan como , de modo que doblar el espaciador aporta 3 dB de margen en baja frecuencia.
Dos paneles apilados frente a la frecuencia. Arriba, el sesgo por diferencias finitas de los espaciadores de 6, 12 y 50 mm, cada uno alejándose de 0 dB y cruzando la línea discontinua de menos 0,3 dB justo en su propia frecuencia máxima válida de 5,72, 2,86 y 0,69 kHz. Abajo, el margen de índice residual que hereda cada espaciador respecto a la separación de 25 mm para la que está escrita la tabla 2 de IEC 61043: menos 6,2 dB con 6 mm, menos 3,2 dB con 12 mm y más 3,0 dB con 50 mmDos paneles apilados frente a la frecuencia. Arriba, el sesgo por diferencias finitas de los espaciadores de 6, 12 y 50 mm, cada uno alejándose de 0 dB y cruzando la línea discontinua de menos 0,3 dB justo en su propia frecuencia máxima válida de 5,72, 2,86 y 0,69 kHz. Abajo, el margen de índice residual que hereda cada espaciador respecto a la separación de 25 mm para la que está escrita la tabla 2 de IEC 61043: menos 6,2 dB con 6 mm, menos 3,2 dB con 12 mm y más 3,0 dB con 50 mm

Los dos límites se cierran desde lados opuestos. El panel superior es geometría: la max_valid_frequency de cada espaciador está exactamente donde su propia curva de sesgo cruza los −0,3 dB. El panel inferior es el presupuesto de fase: el requisito se mueve con el espaciador según , así que una sonda de 50 mm parte con 3 dB de ventaja sobre una de 25 mm y con 9 dB sobre una de 6 mm. Donde los dos paneles dejan utilizable un espaciador está la banda en la que se le puede creer.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
# El sesgo sale de la propia sound_intensity: bias_correction es el factor
# compensador (k dr)/sin(k dr), así que el sesgo es su inverso en dB.
fs, c = 48000, 343.0
rng = np.random.default_rng(61043)
x = rng.standard_normal(fs)
espectro, bins = np.fft.rfft(x), np.fft.rfftfreq(fs, 1 / fs)
fig, (axs, axi) = plt.subplots(2, 1, sharex=True)
for dr in (0.006, 0.012, 0.050):
p2 = np.fft.irfft(espectro * np.exp(-2j * np.pi * bins * dr / c), fs)
res = emission.sound_intensity(x, p2, fs, dr, fraction=3,
limits=[20.0, 12500.0])
utiles = res.frequency < c / (4.0 * dr) # descartar las bandas saturadas
axs.semilogx(res.frequency[utiles],
-10.0 * np.log10(res.bias_correction[utiles]),
label=f"{dr * 1000:.0f} mm")
axs.axvline(res.max_valid_frequency, linestyle=":")
axi.semilogx(res.frequency,
np.full(res.frequency.shape, 10.0 * np.log10(dr / 0.025)))
axs.axhline(-0.3, linestyle="--")
axs.set(ylabel="Sesgo [dB]", ylim=(-2.4, 0.35))
axi.set(xlabel="Frecuencia [Hz]", ylabel="Margen de δpI0 re 25 mm [dB]")
axs.legend()
plt.show()

Ningún espaciador cubre por sí solo todo el rango de audio: el de 6 mm sirve para el trabajo en alta frecuencia, el de 50 mm para la baja frecuencia y el habitual de 12 mm cubre la banda media. Las mediciones de banda ancha se realizan dos veces con dos espaciadores y se combinan los resultados por banda; sea cual sea el espaciador montado, verifica con ese espaciador instalado, porque el índice pertenece a la cadena sonda-espaciador-analizador, no a los micrófonos por sí solos.

ParámetroTipoUnidadesRango / valor por defectoNotas
p1, p2arrays 1DPamisma longitudPrimero el micrófono más cercano a la fuente; invertirlos cambia el signo
fsintHz> 0
spacingfloatm> 0Separación entre micrófonos (típ. 6/12/50 mm)
rhofloatkg/m³por defecto 1.204Densidad del aire
cfloatm/spor defecto 343.0Velocidad del sonido (estimaciones de sesgo/validez)
fractionint, opcional1, 3 o None (por defecto)Integración en bandas de octava/tercio de octava
limitslista, opcionalHzpor defecto el rango de bandas de la bibliotecaLímites del análisis por bandas
bias_correctbooldefecto FalseAplica la corrección por bin (IEC 61043 §7.3) antes de sumar, para que los totales de banda/banda ancha dejen de subestimar cuando max_valid_frequency; los bins pasado el primer nulo se dejan sin corregir. El factor bias_correction por banda se da en ambos casos

Consulta Teoría para las derivaciones y Calibración para el escalado absoluto de los dos canales.

  • Cubierto

    IEC 61043:1993 (EN 61043:1994) para el estimador de intensidad por espectro cruzado de dos micrófonos de sound_intensity, la corrección de sesgo por diferencias finitas y su límite de ancho de banda útil (apartado 7.3, tabla 3), el índice residual de presión-intensidad como el suelo de error de fase del instrumento, y la clasificación del instrumento construida sobre él: los mínimos por banda de la tabla 2 para sondas, procesadores e instrumentos con la regla de separación de la nota 1, los rangos de frecuencia del apartado 6.1 y la regla de combinación de componentes del apartado 8 (intensity_class_compliance, residual_index_limits, instrument_class_from_components), además de la conversión entre y desfase en ambos sentidos. ISO 9614-1:1993 para los indicadores de campo del Anexo A a (temporal_variability_indicator, field_indicators) con el límite de la tabla B.3 sobre , y el criterio de capacidad dinámica del Anexo B (dynamic_capability_index).

  • No cubierto

    La propia determinación de potencia acústica de ISO 9614-1, apartados 8 y 9, que suma las potencias parciales de los puntos de medida discretos hasta , no está implementada como función aquí: sound_intensity y field_indicators informan de la intensidad y la calidad de campo, no de una potencia sumada. Las vías de barrido que sí calculan a partir de la intensidad (ISO 9614-2 e ISO 9614-3) están en la guía de potencia acústica por barrido de intensidad. El propio ensayo de intensidad residual de IEC 61043 tampoco lo realiza la biblioteca: es un valor que quien mide obtiene en su propia cadena sonda-analizador, con el espaciador que va a montar, y aporta — el procedimiento está en Medir el índice residual, más arriba, y lo que phonometry hace con el número es clasificarlo frente a la tabla 2. La comprobación previa al uso del apartado 14 y el ensayo de inversión de la sonda de ISO 9614-2 son igualmente procedimientos, no funciones.

  • Fahy, F. J. (1995). Sound intensity (2.ª ed.). E&FN Spon. https://doi.org/10.4324/9780203475386ISBN 978-0-419-19810-9. La monografía sobre la materia: intensidad activa y reactiva, el estimador p-p y el presupuesto de error por desfase que hay detrás de esta página.
  • International Electrotechnical Commission. (1993). Electroacoustics — Instruments for the measurement of sound intensity — Measurements with pairs of pressure sensing microphones (IEC 61043:1993). Adoptada en Europa como EN 61043:1994. La norma de instrumentación: el estimador por espectro cruzado con dos micrófonos, el ensayo de intensidad residual detrás de δpI0, los mínimos por banda del índice residual de la tabla 2 para sondas, procesadores e instrumentos en clase 1 y clase 2 con su regla de separación +10 lg(x/25) (nota 1), los rangos de frecuencia de los procesadores (apartado 6.1), la regla de combinación de componentes (apartado 8), y la corrección del sesgo por diferencias finitas con su límite de ancho de banda utilizable (apartado 7.3, tabla 3).
  • International Organization for Standardization. (1993). Acoustics — Determination of sound power levels of noise sources using sound intensity — Part 1: Measurement at discrete points (ISO 9614-1:1993). El índice presión-intensidad, los indicadores de campo F1 a F4 del Anexo A (F1 según las ecuaciones (A.1)-(A.2), evaluado en el ensayo inicial del apartado 8.2 y de nuevo según B.1.4), el límite de variabilidad temporal de la tabla B.3, el criterio de capacidad dinámica (Anexo B) y la regla de los 0,5 m de distancia de la superficie.