Ir al contenido

Materiales acústicos

Normas aplicables: ISO 354ISO 10534ASTM E2611ISO 9053ISO 11654ISO 12999Referencias: Allard y Atalla 2009Cox y D'Antonio 2017

Caracterizar un absorbente o una partición es un ejercicio de laboratorio con tres instrumentos distintos detrás. La cámara reverberante entrega un espectro de coeficientes de absorción acústica que ISO 11654 condensa en un único número valorado con una clase por letra. El banco de flujo (estacionario u oscilante) mide cuánto cuesta empujar aire a través de una muestra porosa, la resistencia al flujo de aire que gobierna su comportamiento a baja frecuencia (ISO 9053-1/-2). Y el tubo de impedancia recupera, a incidencia normal, la impedancia superficial compleja completa, el factor de reflexión y la absorción de una muestra pequeña, y, con cuatro micrófonos, su pérdida por transmisión (ISO 10534-1/-2, ASTM E2611). Esta página cubre las tres.

1. Valoración de la absorción acústica (ISO 11654)

Sección titulada «1. Valoración de la absorción acústica (ISO 11654)»

ISO 354 mide el coeficiente de absorción acústica de un material en bandas de tercio de octava en una cámara reverberante. ISO 11654:1997 convierte ese espectro en una valoración de número único comparable entre productos.

Flujo de valoración ISO 11654: el alpha_s medido pasa a alpha_p práctico por banda de octava, la curva de referencia se desplaza hasta el mejor ajuste, alpha_w se lee a 500 Hz con indicadores de forma, dando la clase de absorción A a EFlujo de valoración ISO 11654: el alpha_s medido pasa a alpha_p práctico por banda de octava, la curva de referencia se desplaza hasta el mejor ajuste, alpha_w se lee a 500 Hz con indicadores de forma, dando la clase de absorción A a E

Coeficiente de absorción práctico (cláusula 4.1). Los datos de tercio de octava se agrupan primero en bandas de octava, cada una la media aritmética de sus tres tercios:

evaluado al segundo decimal y luego redondeado en pasos de (la NOTA de la cláusula 4.1 fija el redondeo, p. ej. ); las medias redondeadas por encima de se fijan en . Las cinco bandas de valoración son 250, 500, 1000, 2000 y 4000 Hz.

Absorción ponderada (cláusula 4.2). Una curva de referencia fija se desplaza hacia abajo, hacia el medido, en pasos de hasta que la suma de las desviaciones desfavorables (tomadas solo donde la medida queda por debajo de la curva desplazada, con magnitud ) no supera . El coeficiente ponderado es el valor de la curva desplazada leído a 500 Hz.

Indicadores de forma (cláusula 4.3). Cuando un coeficiente práctico supera la curva desplazada en o más, se añade un indicador de forma: L a 250 Hz, M a 500 o 1000 Hz, H a 2000 o 4000 Hz (p. ej. 0.60(M)).

Clase de absorción (Tabla B.1). Por último, se asigna a una clase: A (0,90–1,00), B (0,80–0,85), C (0,60–0,75), D (0,30–0,55), E (0,15–0,25) o “no clasificado” (0,00–0,10). Como es siempre un múltiplo de , estos rangos particionan la rejilla de forma exacta.

Valoración ponderada de absorción acústica de ISO 11654: el espectro de absorción práctica trazado frente a la curva de referencia desplazada de 250 Hz a 4000 Hz, con la desviación desfavorable a 250 Hz sombreada y el coeficiente ponderado alpha_w leído a 500 HzValoración ponderada de absorción acústica de ISO 11654: el espectro de absorción práctica trazado frente a la curva de referencia desplazada de 250 Hz a 4000 Hz, con la desviación desfavorable a 250 Hz sombreada y el coeficiente ponderado alpha_w leído a 500 Hz

El ejemplo resuelto del Anexo A.2: la curva de referencia se desplaza hacia abajo 0,40 hasta que las desviaciones desfavorables suman 0,05 (≤ 0,10), dando ; el pico de 500 Hz sobrepasa la curva desplazada en ≥ 0,25, añadiendo el indicador M, de modo que la valoración es , clase C.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
from phonometry import materials
# Coeficientes prácticos del Anexo A.2 de ISO 11654 a 250/500/1000/2000/4000 Hz
result = materials.weighted_absorption([0.35, 1.00, 0.65, 0.60, 0.55])
result.plot(language="es") # curva práctica frente a la referencia desplazada
plt.show()
from phonometry import materials
# Coeficientes prácticos del Anexo A.2 de ISO 11654 a 250/500/1000/2000/4000 Hz
alpha_p = [0.35, 1.00, 0.65, 0.60, 0.55]
result = materials.weighted_absorption(alpha_p)
print(result.rating_label) # 0.60(M)
print(result.alpha_w) # 0.6
print(result.absorption_class) # C
print(round(result.unfavourable_sum, 2)) # 0.05
result.plot() # la figura de arriba: curva práctica frente a la referencia desplazada
# Un alpha_w a secas también se asigna directamente a su clase (Tabla B.1)
print(materials.absorption_class(0.85)) # B

weighted_absorption acepta los cinco valores de por banda de octava (como una secuencia o un mapeo {frecuencia: valor}); pasa antes los quince valores de de tercio de octava a practical_absorption_coefficient si partes de datos brutos de ISO 354. Para conservar los de tercio de octava en el resultado (de modo que la ficha pueda imprimir la tabla completa que lleva todo certificado ISO 354 acreditado), valora en un solo paso con weighted_absorption_from_third_octave(alpha_s), que forma , lo valora y retiene el de entrada y sus frecuencias centrales (third_octave_alpha_s, third_octave_bands). El resultado lleva la curva de referencia desplazada y las desviaciones por banda, y su .plot() genera la figura de arriba.

from phonometry import materials
# Quince alpha_s de tercio de octava (200 Hz a 5000 Hz), como los da un informe ISO 354
alpha_s = [0.30, 0.35, 0.40, 1.00, 1.00, 1.00, 0.62, 0.66, 0.67,
0.58, 0.60, 0.62, 0.53, 0.55, 0.57]
result = materials.weighted_absorption_from_third_octave(alpha_s)
print(result.rating_label) # 0.60(M)
print(result.third_octave_alpha_s) # el alpha_s de entrada, retenido para la ficha

AbsorptionRatingResult.report(path) renderiza una ficha PDF de una página con el formato de un informe de ensayo de absorción acreditado (una medición en cámara reverberante según ISO 354, valorada según ISO 11654): la línea de base normativa, un bloque opcional de metadatos de cabecera, la tabla de por banda de octava junto a la curva práctica frente a la referencia desplazada (el propio .plot() del resultado), el número único en caja con su clase de absorción y el desplazamiento aplicado, una fila opcional de veredicto y un pie con el descargo fijo. Cuando la valoración se construyó con weighted_absorption_from_third_octave, la tabla de la izquierda pasa a ser la tabla completa de de tercio de octava de ISO 354 con el de octava en las filas correspondientes, tal como la imprimen los certificados acreditados. Usa el mismo contenedor ReportMetadata y el mismo motor de renderizado que la ficha de aislamiento de ISO 717; pasar metadata=None produce una ficha ligera de predicción, y un requirement aportado se lee como el mínimo para el veredicto CUMPLE/NO CUMPLE. Con verbose=True la tabla cambia a las columnas de evaluación de ISO 11654 (coeficiente práctico, referencia desplazada, desviación desfavorable). El renderizado necesita reportlab (pip install phonometry[report]); solo se admite engine="reportlab". La ficha se genera en inglés por defecto; pasa language="es" para una ficha en español (cadenas fijas traducidas y coma como separador decimal), p. ej. result.report("alpha_w_fiche_es.pdf", language="es").

from phonometry import materials, ReportMetadata
# Valora desde los quince alpha_s de tercio de octava para que la ficha imprima la
# tabla completa de ISO 354; materials.weighted_absorption([...]) también sirve desde alpha_p.
alpha_s = [0.30, 0.35, 0.40, 1.00, 1.00, 1.00, 0.62, 0.66, 0.67,
0.58, 0.60, 0.62, 0.53, 0.55, 0.57]
result = materials.weighted_absorption_from_third_octave(alpha_s)
result.report(
"ficha_alpha_w.pdf",
metadata=ReportMetadata(
specimen="Absorbente poroso de 50 mm sobre cámara de aire de 100 mm",
area=10.8, mounting="Tipo A (contra pared rígida)",
measurement_standard="ISO 354",
temperature=21.4, relative_humidity=54.0,
laboratory="Laboratorio de referencia Phonometry",
requirement=0.55, # añade la fila de veredicto CUMPLE/NO CUMPLE
),
) # alpha_w (forma) + clase de absorción

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

Informe de ejemplo de absorción ISO 11654 (PDF)

Ficha de absorción de una página: una cabecera de metadatos (cliente, muestra, superficie de la probeta, montaje, temperatura, humedad y presión de la cámara reverberante), la tabla completa de alpha_s de tercio de octava con el alpha_p de octava en las filas correspondientes junto a la curva práctica frente a la referencia desplazada, el resultado de un solo número alpha_w = 0,60 (M) en caja con la clase de absorción C y el desplazamiento aplicado, y una fila de veredicto CUMPLE frente al requisito de 0,55.

Descargar el informe (PDF)

Ficha de absorción ponderada (AbsorptionRatingResult.report), alpha_w con su clase.

Medición ISO 354 (measure_sound_absorption)

Sección titulada «Medición ISO 354 (measure_sound_absorption)»

La medición en cámara reverberante propiamente dicha es measure_sound_absorption. Toma el tiempo de reverberación en tercios de octava de la sala vacía () y de la sala con la probeta instalada (), el volumen de la sala y el área de la probeta , y devuelve un SoundAbsorptionMeasurement inmutable. Las áreas de absorción equivalente salen de la ecuación de Sabine (ISO 354:2003 Ec. (5)/(7)), , con la velocidad del sonido de la Ec. (6), ; el coeficiente de absorción acústica es (Ec. (8)/(9)). El coeficiente puede superar 1,0 por efectos de borde y difracción (apartado 3.7 NOTA 2) y nunca se recorta. La atenuación del aire entra solo por el coeficiente por banda (por defecto 0, la referencia sin atenuación); pasa attenuation_from_alpha de un valor de ISO 9613-1 cuando haga falta.

La ISO 354 es una caracterización: produce el espectro de , no un número único. El coeficiente ponderado es una magnitud de la ISO 11654; pasa el medido a weighted_absorption_from_third_octave (arriba) para obtenerlo.

import numpy as np
from phonometry import materials
freqs = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800,
1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000], float)
t_empty = np.array([9.0, 9.0, 8.8, 8.6, 8.4, 8.2, 8.0, 7.8, 7.5, 7.2,
6.9, 6.6, 6.2, 5.8, 5.4, 5.0, 4.6, 4.2])
t_specimen = np.array([8.4, 8.2, 7.7, 7.2, 6.5, 5.7, 4.9, 4.2, 3.6, 3.15,
2.85, 2.65, 2.55, 2.5, 2.55, 2.6, 2.7, 2.85])
m = materials.measure_sound_absorption(
freqs, t_empty, t_specimen, volume=200.0, area=10.8, temperature=20.0
)
print(m.alpha_s[7]) # alpha_s a 500 Hz: 0,328...
m.plot() # alpha_s frente a la frecuencia en tercios de octava
Absorción acústica en cámara reverberante ISO 354: el espectro de alpha_s de una probeta de absorbente poroso en las bandas de tercio de octava de 100 Hz a 5000 Hz, subiendo desde casi cero a baja frecuencia hasta un máximo ancho en torno a 0,69 cerca de 1600 Hz y suavizándose por encimaAbsorción acústica en cámara reverberante ISO 354: el espectro de alpha_s de una probeta de absorbente poroso en las bandas de tercio de octava de 100 Hz a 5000 Hz, subiendo desde casi cero a baja frecuencia hasta un máximo ancho en torno a 0,69 cerca de 1600 Hz y suavizándose por encima

La inversión de Sabine de los dos tiempos de caída: la probeta porosa apenas cambia las caídas largas de baja frecuencia (), muerde más donde su espesor se acerca a un cuarto de longitud de onda y se suaviza a alta frecuencia, la firma típica de un absorbente poroso delgado (Cox y D’Antonio 3.ª ed., cap. 5).

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
freqs = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800,
1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000], float)
t_empty = np.array([9.0, 9.0, 8.8, 8.6, 8.4, 8.2, 8.0, 7.8, 7.5, 7.2,
6.9, 6.6, 6.2, 5.8, 5.4, 5.0, 4.6, 4.2])
t_specimen = np.array([8.4, 8.2, 7.7, 7.2, 6.5, 5.7, 4.9, 4.2, 3.6, 3.15,
2.85, 2.65, 2.55, 2.5, 2.55, 2.6, 2.7, 2.85])
m = materials.measure_sound_absorption(
freqs, t_empty, t_specimen, volume=200.0, area=10.8, temperature=20.0
)
# Una línea: el espectro de alpha_s sobre el eje de bandas de tercio de octava.
m.plot(language="es")
plt.show()
# A mano, desde los campos del resultado:
fig, ax = plt.subplots()
ax.plot(np.arange(freqs.size), m.alpha_s, "o-")
ax.set_xticks(np.arange(freqs.size))
ax.set_xticklabels([f"{f:g}" if f < 1000 else f"{f/1000:g}k" for f in freqs],
rotation=45)
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Coeficiente de absorción acústica alpha_s")
plt.show()

SoundAbsorptionMeasurement.report(path) genera una ficha PDF de una página con el formato de un informe de ensayo de absorción acreditado en cámara reverberante (ISO 354:2003): la línea de base normativa, una cabecera de metadatos, la tabla de en tercios de octava junto a la curva de (el propio .plot() del resultado), un titular de caracterización en caja y un pie con el descargo fijo. La ISO 354 no tiene veredicto de cumplimiento ni número único, así que la ficha no incluye ninguno. Con verbose=True la tabla añade los tiempos de reverberación / y las áreas de absorción equivalente /.

Usa el mismo contenedor ReportMetadata y el mismo motor que las demás fichas. El área de la probeta , el volumen de la sala , la velocidad del sonido , la temperatura y la humedad se toman del resultado de la medición (guiaron la inversión de Sabine); los campos descriptivos de ReportMetadata que aplican aquí son client, manufacturer, specimen, mounting, test_room, test_date, pressure, measurement_standard, laboratory, operator, report_id y notes. El campo requirement se ignora (la ISO 354 no tiene veredicto). La generación necesita reportlab (pip install phonometry[report]); solo se admite engine="reportlab". La ficha se genera en inglés por defecto; pasa language="es" para una ficha en español (cadenas fijas traducidas y coma decimal).

from phonometry import materials, ReportMetadata
m = materials.measure_sound_absorption(
freqs, t_empty, t_specimen, volume=200.0, area=10.8,
temperature=20.0, humidity=54.0,
)
m.report(
"alpha_s_fiche.pdf",
metadata=ReportMetadata(
specimen="50 mm porous absorber over a 100 mm air gap",
mounting="Type A (against a rigid wall)",
measurement_standard="ISO 354",
test_room="Reverberation room R1",
laboratory="Phonometry Reference Laboratory",
),
) # alpha_s en tercios de octava, 100 Hz a 5000 Hz
Informe de ejemplo de absorción ISO 354 (PDF)

Ficha de absorción acústica en cámara reverberante de una página: una cabecera de metadatos (cliente, muestra, superficie S, volumen de la sala V, velocidad del sonido c, montaje, temperatura, humedad y presión de la cámara reverberante), la tabla de alpha_s en tercios de octava agrupada por octavas junto a la curva de alpha_s, y el titular de caracterización en caja sobre el rango de tercios de octava ensayado.

Descargar el informe (PDF)

Ficha de absorción en cámara reverberante (SoundAbsorptionMeasurement.report), el espectro de alpha_s.

2. Resistencia al flujo de aire (ISO 9053-1/-2)

Sección titulada «2. Resistencia al flujo de aire (ISO 9053-1/-2)»

La resistencia al flujo de aire cuantifica con qué fuerza un material poroso se opone a un flujo estacionario o lentamente oscilante. Ambas partes comparten las mismas tres magnitudes y unidades (ISO 9053-1:2018, cláusula 3):

con la diferencia de presión a través de la probeta, el flujo volumétrico, la sección transversal y el espesor. Nótese que la resistencia específica al flujo de aire está en Pa·s/m (no Pa·s/m²); la resistividad al flujo de aire es por metro de espesor.

Bancos de medición de la resistencia al flujo de aire: el método estático de ISO 9053-1 con una probeta en un portamuestras, un flujo laminar estacionario q_v y un manómetro diferencial que lee la caída de presión; y el método alterno de ISO 9053-2 con un pistón oscilante que acciona una cavidad terminada por la probeta o por un tapón hermético, y un micrófono que lee el nivel de la cavidadBancos de medición de la resistencia al flujo de aire: el método estático de ISO 9053-1 con una probeta en un portamuestras, un flujo laminar estacionario q_v y un manómetro diferencial que lee la caída de presión; y el método alterno de ISO 9053-2 con un pistón oscilante que acciona una cavidad terminada por la probeta o por un tapón hermético, y un micrófono que lee el nivel de la cavidad

Método estático (ISO 9053-1:2018). Un flujo laminar estacionario se aumenta por escalones y la diferencia de presión se traza frente a la velocidad lineal . Se ajusta una regresión de al menos segundo orden forzada a pasar por el origen, , y y se leen a la velocidad de referencia (cláusula 7.5); la velocidad más alta no debe superar los 15 mm/s. Como , el término lineal es la resistencia específica al flujo de aire a velocidad nula.

Resistencia al flujo de aire por el método estático de ISO 9053-1: la caída de presión medida frente a la velocidad lineal del flujo, ajustada con una cuadrática que pasa por el origen, con la resistencia específica al flujo de aire evaluada a la velocidad de referencia de 0,5 mm/sResistencia al flujo de aire por el método estático de ISO 9053-1: la caída de presión medida frente a la velocidad lineal del flujo, ajustada con una cuadrática que pasa por el origen, con la resistencia específica al flujo de aire evaluada a la velocidad de referencia de 0,5 mm/s

La caída de presión, ligeramente superlineal, se ajusta pasando por el origen; la resistencia específica al flujo de aire es el ajuste leído a 0,5 mm/s.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
area = np.pi * 0.05**2 # celda de 100 mm de diámetro [m^2]
u = np.array([0.5, 1, 2, 4, 8, 12]) * 1e-3 # velocidad lineal [m/s]
dp = 1.6e4 * u + 4.0e5 * u**2 # caída de presión medida [Pa]
r = materials.static_airflow_resistance(u, dp, area=area, thickness=0.05)
u_fit = np.linspace(0.0, 13e-3, 200)
dp_fit = r.linear_coefficient * u_fit + r.quadratic_coefficient * u_fit**2
fig, ax = plt.subplots()
ax.plot(u_fit * 1e3, dp_fit, label="Ajuste por el origen dp = a u + b u^2")
ax.plot(u * 1e3, dp, "o", label="Caída de presión medida")
ax.plot(r.evaluation_velocity * 1e3, r.pressure_drop, "D",
label="Evaluación a 0.5 mm/s")
ax.set_xlabel("Velocidad lineal del flujo u [mm/s]")
ax.set_ylabel("Caída de presión dp [Pa]")
ax.set_title(f"R_s = {r.specific_resistance:.0f} Pa·s/m")
ax.legend()
plt.show()
import numpy as np
from phonometry import materials
area = np.pi * 0.05**2 # celda de 100 mm de diámetro [m^2]
u = np.array([0.5, 1, 2, 4, 8, 12]) * 1e-3 # velocidad lineal [m/s]
dp = 1.6e4 * u + 4.0e5 * u**2 # caída de presión medida [Pa]
r = materials.static_airflow_resistance(u, dp, area=area, thickness=0.05)
print(round(r.specific_resistance)) # 16200 R_s [Pa*s/m]
print(round(r.resistivity)) # 324000 sigma [Pa*s/m^2]
print(round(r.linear_coefficient)) # 16000 a = R_s cuando u -> 0
r.plot() # la figura de arriba: dp(u) ajustada con el punto de evaluación

StaticAirflowResult.report(path) genera una ficha PDF de una página con el formato de un informe de ensayo de resistencia al flujo de aire acreditado (ISO 9053-1:2018, método estático): una línea de norma de base, un bloque de cabecera de metadatos opcional, un cuerpo de dos paneles con una tabla de resultados (la velocidad de evaluación, la diferencia de presión ajustada, la resistencia al flujo de aire , la resistencia específica al flujo de aire , la resistividad al flujo de aire cuando hay espesor disponible, y los coeficientes del ajuste por el origen y ) junto a la curva ajustada (el propio .plot() del resultado), la resistencia específica al flujo de aire en un recuadro con y al lado, y un pie con el descargo de responsabilidad fijo. La ISO 9053-1 es una caracterización del material, por lo que la ficha no lleva veredicto de conformidad.

Usa el mismo contenedor ReportMetadata y el mismo motor de renderizado que las demás fichas. Los campos descriptivos que aplican aquí son client, manufacturer, specimen, thickness (el espesor de la probeta , en metros, mostrado en milímetros), test_room, test_date, temperature, relative_humidity, measurement_standard, laboratory, operator, report_id y notes. El campo requirement se ignora (la ISO 9053-1 no tiene veredicto). La ficha incrusta la curva ajustada, por lo que la generación necesita tanto reportlab como matplotlib (pip install "phonometry[report,plot]"); solo se admite engine="reportlab". La ficha se genera en inglés por defecto; pasa language="es" para una ficha en español (cadenas fijas traducidas y coma como separador decimal).

from phonometry import materials, ReportMetadata
r = materials.static_airflow_resistance(u, dp, area=area, thickness=0.05)
r.report(
"airflow_fiche.pdf",
metadata=ReportMetadata(
specimen="50 mm porous absorber (open-cell)",
thickness=0.050,
measurement_standard="ISO 9053-1",
test_room="Static airflow rig, 100 mm cell",
laboratory="Phonometry Reference Laboratory",
),
) # R_s, R y sigma a u = 0.5 mm/s
Informe de ejemplo de resistencia al flujo de aire (ISO 9053-1, PDF)

Ficha de una página de resistencia al flujo de aire por el método estático: una cabecera de metadatos (cliente, fabricante, probeta, espesor de la probeta, instalación de ensayo, temperatura y humedad), una tabla de resultados con la velocidad de evaluación, la diferencia de presión ajustada, la resistencia al flujo de aire R, la resistencia específica al flujo de aire R_s, la resistividad al flujo de aire sigma y los coeficientes del ajuste por el origen a y b junto a la curva ajustada de caída de presión, y la resistencia específica al flujo de aire R_s en un recuadro con R y sigma al lado, evaluadas a la velocidad de referencia de 0,5 mm/s.

Descargar el informe (PDF)

Ficha de resistencia al flujo de aire por el método estático (StaticAirflowResult.report), R_s, R y sigma a 0,5 mm/s.

Método alterno (ISO 9053-2:2020). Un pistón que oscila a 1–4 Hz acciona un flujo alterno hacia una cavidad terminada por la probeta o por un tapón hermético; la resistencia se obtiene de la diferencia de nivel de presión acústica entre las dos terminaciones (Fórmula (2)):

donde es la razón efectiva de calores específicos. La conducción de calor entre el aire oscilante y las paredes de la cavidad hace que la compresión no sea plenamente adiabática; el Anexo A normativo corrige a la baja hasta

con y la superficie y el volumen de la cavidad y el espesor de la capa límite térmica. Para la cavidad de ejemplo del Anexo A.3 esto da , cerca de un 2 % por debajo del adiabático 1,4008.

from phonometry import materials
# Cavidad del Anexo A.3: cilindro cerrado de 100 mm x 100 mm, pistón a 2 Hz
kp = materials.effective_kappa(cavity_surface=0.0471, cavity_volume=7.854e-4, frequency=2.0)
print(round(kp, 3)) # 1.37 razón efectiva de calores específicos
R = materials.alternating_airflow_resistance(
level_specimen=74.0, level_termination=90.0,
piston_stroke_specimen=14e-3, piston_stroke_termination=1.4e-3,
frequency=2.0, cavity_volume=7.854e-4, kappa_prime=kp,
)
print(round(R)) # 222956 resistencia al flujo de aire R [Pa*s/m^3]

Pasa el resultado de effective_kappa a alternating_airflow_resistance para una cifra conforme al Anexo A; en caso contrario, su argumento kappa_prime adopta por defecto el adiabático sin corregir 1,4. La llamada avisa (mediante AirflowResistanceWarning) cuando la frecuencia del pistón sale de 1–4 Hz o fallan los criterios de validez de las Fórmulas (3)/(4).

3. Tubo de impedancia (ISO 10534-1/-2, ASTM E2611)

Sección titulada «3. Tubo de impedancia (ISO 10534-1/-2, ASTM E2611)»

El tubo de impedancia mide una muestra pequeña a incidencia normal. Dos normas comparten la geometría pero difieren en método y convención de signo, así que la biblioteca mantiene sus ayudantes separados y nunca los mezcla.

Tubo de impedancia de dos micrófonos de ISO 10534-2: un altavoz radiando una onda plana por el tubo, dos micrófonos enrasados en la pared a la separación s y a la distancia x1 de la cara de la probeta, la probeta de ensayo contra un respaldo rígido, y las ondas incidente y reflejadaTubo de impedancia de dos micrófonos de ISO 10534-2: un altavoz radiando una onda plana por el tubo, dos micrófonos enrasados en la pared a la separación s y a la distancia x1 de la cara de la probeta, la probeta de ensayo contra un respaldo rígido, y las ondas incidente y reflejada

Rango de frecuencia de trabajo (ISO 10534-2, cláusula 4). Todo lo que informa el tubo supone que el campo interior es una única onda plana, y la geometría fija los dos extremos de la banda útil. Por encima del corte del primer modo transversal el campo deja de ser plano: un tubo circular de diámetro exige (Ec. (2); para un tubo rectangular, Ec. (3)). La separación de micrófonos debe además mantenerse lejos de la singularidad de media longitud de onda del método de la función de transferencia, (Ec. (4)). En el extremo bajo aparece el problema opuesto: una separación mucho menor que la longitud de onda apenas deja diferencia de fase entre micrófonos que medir, así que la pauta de la cláusula 4.2 mantiene la separación por encima del 5 % de la longitud de onda:

Ningún tubo cubre por sí solo el rango de la acústica de edificios. Un tubo de 100 mm con separación de 100 mm trabaja aproximadamente de 170 Hz a 1,5 kHz; llegar a las bandas de 5 kHz exige un tubo pequeño (29 mm) con separación corta, que a su vez no ve las bandas bajas. Los laboratorios emparejan por eso un tubo grande y uno pequeño (o un tubo con dos separaciones) y empalman los espectros; ambos deben coincidir en las bandas de solape, y una discrepancia ahí apunta al corte o al montaje de la muestra, no a la física.

from phonometry import materials
# Un tubo de 100 mm con separación de 100 mm y uno de 29 mm con 20 mm.
f_l, f_u = materials.plane_wave_frequency_range(0.100, 343.2, diameter=0.100)
print(round(f_l, 1), round(f_u, 1)) # 171.6 1544.4
f_l, f_u = materials.plane_wave_frequency_range(0.020, 343.2, diameter=0.029)
print(round(f_l, 1), round(f_u, 1)) # 858.0 6864.0

Esos límites se ven mejor sobre el propio equipo. plot_impedance_tube_geometry dibuja un tubo a escala con su banda de onda plana ya calculada, y un resultado medido de two_microphone_impedance al que se le dio su geometría (spacing, x1, diameter) redibuja su propio montaje con result.plot_geometry().

Vista lateral a escala de un tubo de impedancia ISO 10534-2 de 100 mm: el altavoz en el extremo izquierdo, los micrófonos 1 y 2 enrasados en la pared con separación s = 50 mm y el micrófono 1 a x1 = 150 mm de la cara de la probeta, la probeta contra el respaldo rígido a la derecha, la sección transversal circular junto al tubo y el rango de trabajo de onda plana de 343 a 1991 Hz que fija esta geometríaVista lateral a escala de un tubo de impedancia ISO 10534-2 de 100 mm: el altavoz en el extremo izquierdo, los micrófonos 1 y 2 enrasados en la pared con separación s = 50 mm y el micrófono 1 a x1 = 150 mm de la cara de la probeta, la probeta contra el respaldo rígido a la derecha, la sección transversal circular junto al tubo y el rango de trabajo de onda plana de 343 a 1991 Hz que fija esta geometría

Todo lo que cuentan las desigualdades del rango de trabajo, en una vista lateral a escala: el diámetro de 100 mm fija el extremo superior de 1991 Hz, la separación de 50 mm fija el extremo inferior de 343 Hz, y los micrófonos quedan a = 50 mm con el más lejano a = 150 mm de la cara de la probeta.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
from phonometry import materials
materials.plot_impedance_tube_geometry(spacing=0.05, x1=0.15,
diameter=0.10, language="es")
plt.show()
# Un resultado medido que retiene su geometría dibuja su propio tubo:
# res = materials.two_microphone_impedance(
# h12, frequency=f, spacing=0.05, x1=0.15, diameter=0.10, ...)
# res.plot_geometry()

El mismo ayudante cubre tubos cuadrados y rectangulares: con shape="square" o shape="rectangular" el factor de la Ec. (3) sustituye al circular, con el lado mayor. La rama de cuatro micrófonos mantiene sus propios límites en plane_wave_frequency_range_astm: ASTM E2611 conserva la constante circular sin redondear (, 6.2.4.1), el mismo rectangular (6.2.5), una cota de separación algo más estricta (6.5.4) y un extremo bajo más laxo en el 1 % de la longitud de onda (6.2.3). Pasar diameter= (y shape=) a two_microphone_impedance, wave_decomposition o los solucionadores transfer_matrix_* convierte la comprobación correspondiente en un aviso, y para la estimación de atenuación del anexo A en tubo rectangular hydraulic_diameter(width, height) proporciona el diámetro que espera tube_attenuation_constant.

Método de la razón de onda estacionaria (ISO 10534-1). Una sonda recorre la onda estacionaria y lee la diferencia de nivel entre un máximo de presión y el mínimo adyacente. La razón de onda estacionaria, la magnitud de reflexión y la absorción se obtienen en forma cerrada:

Método de la razón de onda estacionaria de ISO 10534-1: el coeficiente de absorción y la magnitud del factor de reflexión en función de la diferencia de nivel de la onda estacionaria, mostrando que una diferencia de 9,54 dB corresponde a una razón de onda estacionaria de 3, una magnitud de reflexión de 0,5 y una absorción de 0,75Método de la razón de onda estacionaria de ISO 10534-1: el coeficiente de absorción y la magnitud del factor de reflexión en función de la diferencia de nivel de la onda estacionaria, mostrando que una diferencia de 9,54 dB corresponde a una razón de onda estacionaria de 3, una magnitud de reflexión de 0,5 y una absorción de 0,75

Una diferencia de nivel pequeña significa un absorbente casi perfecto; una diferencia de nivel de 9,54 dB da , y .

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
level_diff = np.linspace(0.5, 40.0, 300) # L_max - L_min [dB]
swr = materials.standing_wave_ratio_from_level(level_diff)
fig, ax = plt.subplots()
ax.plot(level_diff, materials.standing_wave_absorption(swr),
label="Coeficiente de absorción alpha")
ax.plot(level_diff, materials.standing_wave_reflection_magnitude(swr), "--",
label="Magnitud del factor de reflexión |r|")
ax.set_xlabel("Diferencia de nivel de onda estacionaria L_max - L_min [dB]")
ax.set_ylabel("alpha, |r|")
ax.legend()
plt.show()
from phonometry import materials
s = float(materials.standing_wave_ratio_from_level(9.542)) # diferencia de nivel [dB] -> SWR
print(round(s, 2)) # 3.0
print(round(float(materials.standing_wave_absorption(s)), 2)) # 0.75

Método de la función de transferencia (ISO 10534-2). Dos micrófonos fijos miden la función de transferencia compleja ; de ella se obtienen el factor de reflexión en la cara de la muestra, la absorción y la impedancia superficial normalizada (ecs. (17)–(19)):

con , , la separación de micrófonos y la distancia de la muestra al micrófono más lejano.

Las ondas incidente y reflejada viajan dentro de un tubo de impedancia dibujado y su suma forma la envolvente de onda estacionaria; una terminación rígida con nodos profundos de la envolvente se compara con una muestra porosa con nodos someros, muestreados por los dos micrófonos enrasados en la pared.

Descargar la animación (WebM)

Las ondas incidente y reflejada viajan dentro de un tubo de impedancia dibujado y su suma forma la envolvente de onda estacionaria; una terminación rígida con nodos profundos de la envolvente se compara con una muestra porosa con nodos someros, muestreados por los dos micrófonos enrasados en la pared.

Descargar la animación (WebM)

import numpy as np
from phonometry import materials
f = np.array([500.0, 1000.0, 1800.0])
x1, spacing, c0 = 0.12, 0.03, 343.2
k0 = materials.tube_wavenumber(f, c0)
# Una función de transferencia H12 medida (aquí sintetizada a partir de r = 0.3 - 0.4j)
target = 0.3 - 0.4j
x2 = x1 - spacing
h12 = (np.exp(1j*k0*x2) + target*np.exp(-1j*k0*x2)) / \
(np.exp(1j*k0*x1) + target*np.exp(-1j*k0*x1))
r = materials.reflection_factor(h12, spacing=spacing, x1=x1, wavenumber=k0)
print(np.round(materials.absorption_from_reflection(r), 3)) # [0.75 0.75 0.75]
print(np.round(materials.normalized_surface_impedance(r), 2)) # Z / rho c0
# [1.15-1.23j 1.15-1.23j 1.15-1.23j]

El two_microphone_impedance de alto nivel envuelve esta cadena y devuelve un ImpedanceTubeResult con la absorción, el factor de reflexión, la impedancia superficial y la impedancia normalizada, aplicando la comprobación del rango de frecuencias de onda plana y la atenuación opcional del tubo; corrige antes cualquier desajuste de micrófonos con apply_mic_calibration. Su .plot() dibuja el espectro de absorción con el módulo del factor de reflexión superpuesto.

Resultado del tubo de dos micrófonos ISO 10534-2 para un absorbente poroso de 50 mm: el coeficiente de absorción a incidencia normal sube desde unos 0,2 a 200 Hz hasta 0,97 por encima de 1 kHz, con el módulo del factor de reflexión cayendo como su imagen especularResultado del tubo de dos micrófonos ISO 10534-2 para un absorbente poroso de 50 mm: el coeficiente de absorción a incidencia normal sube desde unos 0,2 a 200 Hz hasta 0,97 por encima de 1 kHz, con el módulo del factor de reflexión cayendo como su imagen especular

Un absorbente poroso de 50 mm medido en la banda de trabajo de un tubo de 100 mm: la absorción sube a medida que el espesor de la capa crece frente a la longitud de onda, y cae como su imagen especular ().

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
# Un absorbente poroso de 50 mm (Miki, sigma = 20 kPa s/m^2) en un tubo de
# 100 mm con separación de 100 mm (banda de trabajo ~170 Hz a 1,5 kHz): el
# modelo de capa da el factor de reflexión verdadero, del que sale la H12.
f = np.linspace(200.0, 1500.0, 260)
med = materials.miki(f, 20000.0)
layer = materials.layered_absorber(f, [materials.PorousLayer(0.05, med)])
spacing, x1, c0 = 0.10, 0.20, 343.2
k0 = materials.tube_wavenumber(f, c0)
x2 = x1 - spacing
r_true = layer.reflection
h12 = (np.exp(1j*k0*x2) + r_true*np.exp(-1j*k0*x2)) / \
(np.exp(1j*k0*x1) + r_true*np.exp(-1j*k0*x1))
result = materials.two_microphone_impedance(
h12, frequency=f, spacing=spacing, x1=x1, speed_of_sound=c0,
characteristic_impedance=407.0, diameter=0.10,
)
# Una línea: alpha(f) con |r| superpuesto.
result.plot(language="es")
plt.show()
# A mano, desde los campos del resultado:
fig, ax = plt.subplots()
ax.plot(f, result.absorption, label="Absorción alpha")
ax.plot(f, np.abs(result.reflection), "--", label="Factor de reflexión |r|")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Coeficiente")
ax.legend()
plt.show()

ImpedanceTubeResult.report(path) genera una ficha PDF de una página con el formato de un informe de ensayo en tubo de impedancia a incidencia normal acreditado (ISO 10534-2:2001): la línea de base normativa, una cabecera de metadatos, la tabla por frecuencia (el coeficiente de absorción y las partes real e imaginaria de la impedancia superficial normalizada ) junto a la curva de (el propio .plot() del resultado, en un eje de frecuencia logarítmico continuo), un titular de caracterización en caja y un pie con el descargo fijo. La ISO 10534-2 es una caracterización, así que la ficha no incluye veredicto de cumplimiento ni número único; el coeficiente a incidencia normal no es comparable con el / a incidencia aleatoria de la ISO 354 / ISO 11654. Con verbose=True se añade la columna del módulo del factor de reflexión .

Usa el mismo contenedor ReportMetadata y el mismo motor que las demás fichas. El rango de frecuencias medido se toma del resultado; los campos descriptivos y geométricos de ReportMetadata que aplican aquí son client, manufacturer, specimen, tube_diameter, tube_shape, mic_spacing, mounting, test_room, test_date, temperature, pressure, measurement_standard, laboratory, operator, report_id y notes (tube_diameter y mic_spacing se dan en metros y se imprimen en milímetros). El campo requirement se ignora (la ISO 10534-2 no tiene veredicto). La generación necesita reportlab (pip install phonometry[report]); solo se admite engine="reportlab". La ficha se genera en inglés por defecto; pasa language="es" para una ficha en español (cadenas fijas traducidas y coma decimal).

from phonometry import materials, ReportMetadata
result = materials.two_microphone_impedance(
h12, frequency=freqs, spacing=0.05, x1=0.10,
speed_of_sound=c0, characteristic_impedance=rho_c, diameter=0.10,
)
result.report(
"alpha_fiche.pdf",
metadata=ReportMetadata(
specimen="Capa resistiva sobre cavidad de aire de 86 mm con respaldo rígido",
tube_diameter=0.10, # m (se imprime como 100 mm)
mic_spacing=0.05, # m (se imprime como 50 mm)
measurement_standard="ISO 10534-2",
laboratory="Phonometry Reference Laboratory",
),
) # alpha e impedancia a incidencia normal en la banda del tubo
Informe de ejemplo en tubo de impedancia ISO 10534-2 (PDF)

Ficha de tubo de impedancia a incidencia normal de una página: una cabecera de metadatos (cliente, muestra, diámetro del tubo d, separación de micrófonos s, el rango de frecuencias medido, montaje, instalación de ensayo, temperatura y presión), la tabla por frecuencia del coeficiente de absorción alpha y las partes real e imaginaria de la impedancia superficial normalizada z junto a la curva de alpha en un eje de frecuencia logarítmico, y el titular de caracterización en caja sobre el rango de frecuencias ensayado.

Descargar el informe (PDF)

Ficha de tubo de impedancia a incidencia normal (ImpedanceTubeResult.report), el espectro de alpha con la impedancia superficial.

Pérdida por transmisión (ASTM E2611). Con cuatro micrófonos (dos aguas arriba, dos aguas abajo de la muestra) una medición de dos cargas (o de una carga) recupera la matriz de transferencia de la muestra, cuyos elementos dan la pérdida por transmisión a incidencia normal, la reflexión y el número de onda:

Tubo de pérdida por transmisión de cuatro micrófonos de ASTM E2611: una fuente sonora, dos micrófonos aguas arriba y dos aguas abajo de la probeta de ensayo a las separaciones s1 y s2 y los desplazamientos l1 y l2, una terminación ajustable para el método de dos cargas, las ondas viajeras A y B aguas arriba y C y D aguas abajo, y las relaciones de matriz de transferencia y pérdida por transmisiónTubo de pérdida por transmisión de cuatro micrófonos de ASTM E2611: una fuente sonora, dos micrófonos aguas arriba y dos aguas abajo de la probeta de ensayo a las separaciones s1 y s2 y los desplazamientos l1 y l2, una terminación ajustable para el método de dos cargas, las ondas viajeras A y B aguas arriba y C y D aguas abajo, y las relaciones de matriz de transferencia y pérdida por transmisión

A escala tiene este aspecto. Una TransferMatrix recuperada por los solucionadores de dos cargas o de una carga retiene l1, s1, l2, s2 y el espesor de la probeta, así que tm.plot_geometry() redibuja el tubo en el que se midió.

Vista lateral a escala de un tubo de transmisión ASTM E2611 de 100 mm: el altavoz a la izquierda, los micrófonos 1 y 2 aguas arriba con separación s1 = 50 mm y a l1 = 100 mm de la probeta, la probeta de 50 mm en el centro del tubo, los micrófonos 3 y 4 aguas abajo con separación s2 = 50 mm y a l2 = 200 mm, la terminación intercambiable del método de dos cargas a la derecha, la sección transversal circular junto al tubo y el rango de trabajo de onda plana de 69 a 2011 HzVista lateral a escala de un tubo de transmisión ASTM E2611 de 100 mm: el altavoz a la izquierda, los micrófonos 1 y 2 aguas arriba con separación s1 = 50 mm y a l1 = 100 mm de la probeta, la probeta de 50 mm en el centro del tubo, los micrófonos 3 y 4 aguas abajo con separación s2 = 50 mm y a l2 = 200 mm, la terminación intercambiable del método de dos cargas a la derecha, la sección transversal circular junto al tubo y el rango de trabajo de onda plana de 69 a 2011 Hz

Dónde se sitúan de verdad los cuatro micrófonos del método de la matriz de transferencia alrededor de una probeta de 50 mm en un tubo de 100 mm: = 50 mm, = 100 mm, = 200 mm, y la terminación intercambiable que aporta la segunda carga. El rango de trabajo ASTM para esta geometría es de 69 a 2011 Hz.

Mostrar el código de esta figura
import matplotlib.pyplot as plt
from phonometry import materials
materials.plot_transmission_tube_geometry(
l1=0.10, s1=0.05, l2=0.20, s2=0.05, thickness=0.05, diameter=0.10,
language="es")
plt.show()
# Una TransferMatrix de transfer_matrix_two_load / _one_load retiene su
# geometría, así que tm.plot_geometry() redibuja el tubo en el que se midió.
import numpy as np
from phonometry import materials
# Una capa de aire es una matriz de transferencia conocida; TL = 0 dB (no se pierde nada)
f = np.array([500.0, 1000.0, 2000.0])
k0 = 2*np.pi*f / 343.2
rho_c = 1.186 * 343.2
tm = materials.air_layer_transfer_matrix(thickness=0.05, wavenumber=k0,
characteristic_impedance=rho_c)
print(np.round(tm.transmission_loss(rho_c), 6)) # [0. 0. 0.]

transfer_matrix_two_load / transfer_matrix_one_load construyen la TransferMatrix a partir de las funciones de transferencia de los cuatro micrófonos (H1, H2, H3, H4) medidas en cada carga; sus métodos (transmission_loss, reflection_hard_backed, absorption_hard_backed, characteristic_impedance_material, material_wavenumber) leen entonces las magnitudes de ASTM E2611, y su .plot() dibuja la pérdida de transmisión con la absorción con respaldo rígido superpuesta (una matriz construida por los solucionadores retiene y, si se aporta, el vector de frecuencias, de modo que solo una matriz construida a mano los necesita como argumentos). La matriz no tiene por qué venir de una medición: el solucionador multicapa expone la matriz de cadena de cualquier apilado modelado en el mismo convenio, de modo que una probeta predicha se lee exactamente igual que una medida.

import numpy as np
from phonometry import materials
# La matriz de cadena de una capa porosa de 50 mm modelada, leída de vuelta
# por la maquinaria de ASTM E2611: TL y absorción con respaldo rígido de la
# misma probeta.
f = np.linspace(200.0, 1600.0, 300)
med = materials.miki(f, 20000.0)
layer = materials.layered_absorber(f, [materials.PorousLayer(0.05, med)])
chain = layer.transfer_matrix # forma (2, 2, len(f))
tm = materials.TransferMatrix(t11=chain[0, 0], t12=chain[0, 1],
t21=chain[1, 0], t22=chain[1, 1])
print(np.round(float(tm.transmission_loss(407.0)[-1]), 1)) # 9.7 dB a 1,6 kHz
tm.plot(f, 407.0) # TL(f) con la absorción con respaldo rígido superpuesta
Magnitudes de la matriz de transferencia ASTM E2611 de una capa porosa de 50 mm: la pérdida de transmisión a incidencia normal sube desde unos 6,6 dB a 200 Hz hasta más de 9 dB a 1,6 kHz en el eje izquierdo, y el coeficiente de absorción con respaldo rígido sube de 0,19 a 0,97 en el eje derechoMagnitudes de la matriz de transferencia ASTM E2611 de una capa porosa de 50 mm: la pérdida de transmisión a incidencia normal sube desde unos 6,6 dB a 200 Hz hasta más de 9 dB a 1,6 kHz en el eje izquierdo, y el coeficiente de absorción con respaldo rígido sube de 0,19 a 0,97 en el eje derecho

Los mismos cuatro polos responden dos preguntas distintas: cuánto sonido deja pasar la capa exenta (la pérdida de transmisión, Ec. (26)) y cuánto absorbe la misma capa con respaldo rígido (Ec. (28)).

Mostrar el código de esta figura
import matplotlib.pyplot as plt
import numpy as np
from phonometry import materials
f = np.linspace(200.0, 1600.0, 300)
med = materials.miki(f, 20000.0)
layer = materials.layered_absorber(f, [materials.PorousLayer(0.05, med)])
chain = layer.transfer_matrix # forma (2, 2, len(f))
tm = materials.TransferMatrix(t11=chain[0, 0], t12=chain[0, 1],
t21=chain[1, 0], t22=chain[1, 1])
# Una línea: TL(f) en el eje izquierdo, absorción con respaldo rígido a la derecha.
tm.plot(f, 407.0, language="es")
plt.show()
# A mano, desde los métodos de la matriz:
fig, ax = plt.subplots()
ax.plot(f, tm.transmission_loss(407.0), label="Pérdida de transmisión TL_n")
twin = ax.twinx()
twin.plot(f, tm.absorption_hard_backed(407.0), "--", color="gray",
label="Absorción con respaldo rígido alpha")
ax.set_xlabel("Frecuencia [Hz]")
ax.set_ylabel("Pérdida de transmisión TL_n [dB]")
twin.set_ylabel("Absorción con respaldo rígido alpha")
plt.show()

Errores de montaje. La mayoría de los malos datos de tubo se fabrican en el portamuestras, mucho antes del procesado de señal. Los fallos recurrentes:

  • Holguras perimetrales. Una probeta cortada ligeramente pequeña deja una lámina de aire junto a la pared del tubo. El sonido se cortocircuita alrededor y por detrás de la muestra, y la propia holgura resuena, de modo que la absorción medida gana una joroba espuria de baja a media frecuencia. Corte con ajuste deslizante ceñido y selle el borde (una película fina de vaselina es el remedio clásico) sin cargar la cara frontal.
  • Compresión. Una probeta cortada grande y embutida a la fuerza es más densa que el producto que debe representar: la resistividad al flujo sube, un esqueleto flexible se rigidiza, y la curva de absorción se desplaza y se aplana. El resultado es repetible y erróneo.
  • Cavidad trasera oculta. Si la probeta no asienta a ras del respaldo rígido, la capa de aire involuntaria actúa como cavidad de cuarto de longitud de onda y desplaza el pico de absorción hacia abajo en frecuencia, favoreciendo al material. Las cámaras de aire traseras son montajes perfectamente legítimos, pero solo cuando son deliberadas, dimensionadas y declaradas con el resultado.
  • Cara no plana. Una cara frontal abombada, inclinada o desgarrada dispersa hacia modos transversales por debajo del corte nominal y rompe la hipótesis de incidencia normal sobre la que descansan las ecuaciones. Corte con herramienta afilada; no rasgue los materiales fibrosos a medida.
  • Una probeta no es el material. Los productos porosos son inhomogéneos a la escala de una muestra de tubo. Mida varios cortes y promedie; la dispersión entre probetas es varianza del producto que merece declararse, no ruido de medida que esconder.

El tubo y la cámara reverberante entregan ambos un número llamado “coeficiente de absorción”, y los dos se confunden de forma rutinaria. Son magnitudes físicas distintas, medidas bajo campos sonoros distintos, y no coinciden, a veces ni de lejos.

El tubo mide un coeficiente a incidencia normal: una onda plana, un ángulo, una probeta de unos centímetros y un factor de reflexión complejo que conserva módulo y fase. ISO 354 mide el coeficiente de incidencia aleatoria : un campo difuso que golpea una muestra de 10 a 12 m² desde todas las direcciones a la vez, recuperado del cambio del tiempo de caída de la cámara mediante la fórmula de Sabine, un promedio de energía sin fase alguna. Como el campo difuso encuentra más caminos hacia el interior del absorbente que la única onda a incidencia normal (las ondas oblicuas recorren más camino dentro de la capa), suele salir más alto. Para una superficie de reacción local ambos se conectan mediante el promedio angular de Paris, que define el coeficiente de absorción estadístico

una integral que pondera sobre todo los ángulos oblicuos; evaluarla exige el dependiente del ángulo a partir de la impedancia superficial medida, no solo el propio coeficiente a incidencia normal.

Por qué los valores de ISO 354 superan 1. Un cociente de energía absorbida sobre incidente no puede superar la unidad y, sin embargo, los informes de cámara reverberante con a para absorbentes porosos gruesos son rutinarios y correctos según el método. La fórmula de Sabine convierte el cambio del tiempo de caída en un área de absorción equivalente , y divide por el área geométrica de la muestra . La difracción en los bordes de la muestra permite a la probeta drenar energía de un campo sonoro más ancho que su huella (el efecto de borde), de modo que el área equivalente puede superar la geométrica. Esos valores no son errores, pero tampoco son portables: dependen del tamaño y del perímetro de la muestra, que es exactamente la razón por la que ISO 354 fija ambos. La valoración de ISO 11654 simplemente trunca: los coeficientes prácticos por encima de se fijan en (sección 1). Las entradas de predicción no reciben ese recorte silencioso en esta biblioteca: cada estimador del tiempo de reverberación aplica su propio dominio matemático, de modo que Sabine y Eyring aceptan los valores de ISO 354 iguales o superiores a uno tal cual (Eyring siempre que la absorción media quede por debajo de uno), mientras que Millington-Sette los rechaza (su logaritmo por superficie diverge en uno) y cualquier ajuste por debajo de uno queda en manos de quien llama. El presupuesto de área de absorción equivalente de EN 12354-6 también acepta los coeficientes tal cual se suministran.

Cuál usar. Responden a preguntas distintas. El valor de cámara reverberante es el que alimenta la predicción en campo difuso: las estimaciones de reverberación de Sabine, las áreas de absorción equivalentes de EN 12354-6 y la valoración con su clase, todas las cuales esperan incidencia aleatoria sobre una muestra finita y montada (los tipos de montaje del Anexo B de ISO 354 existen porque el montaje es parte del resultado). El valor de tubo es la herramienta de laboratorio y desarrollo: necesita solo unos centímetros cuadrados de material, resuelve módulo y fase, y su impedancia superficial fija los parámetros de los modelos de material poroso de la tradición de Allard y Atalla, con la resistividad al flujo de la sección 2 como primera entrada; el modelo ajustado predice después la capa a cualquier ángulo, espesor o respaldo. Lo que el número del tubo no es, es un sustituto directo de : alimentar coeficientes a incidencia normal en un presupuesto de Sabine o de EN 12354-6 subestima sistemáticamente la absorción instalada.

4. Incertidumbre de medida de la absorción (ISO 12999-2)

Sección titulada «4. Incertidumbre de medida de la absorción (ISO 12999-2)»

Un coeficiente de absorción valorado significa poco sin su incertidumbre. La ISO 12999-2:2020 da la incertidumbre típica de las magnitudes que produce una medida en cámara reverberante (ISO 354) y sus valoraciones (ISO 11654, EN 1793-1), estimada a partir de ensayos interlaboratorio según ISO 5725. Es la compañera, en absorción acústica, de la incertidumbre de aislamiento de la ISO 12999-1 (Medición del aislamiento en campo e índices).

Bandas de tercio de octava (cláusula 5). Para el coeficiente de absorción, la desviación típica de reproducibilidad es (fórmula (1)), y para el área de absorción equivalente con (fórmula (2)), donde y son las constantes dependientes de la frecuencia de la Tabla 1 (63–5000 Hz). El valor de repetibilidad es (fórmula (3)).

Coeficiente práctico (cláusula 6). Para el coeficiente práctico de ISO 11654, en bandas de octava con las constantes de la Tabla 2 (250–4000 Hz); de nuevo .

Números únicos (cláusula 7). El coeficiente ponderado tiene una incertidumbre típica constante (, ); la valoración de número único de EN 1793-1 escala con el valor (, ).

Notificación (cláusula 8). La incertidumbre expandida es (fórmula (10)) con el factor de cobertura de la Tabla 3 ( al 95 %, gaussiano). El notificado se redondea a dos decimales para los coeficientes de absorción y a un decimal para el área equivalente y .

Incertidumbre del coeficiente de absorción acústica ISO 12999-2: el espectro medido de alpha_s en bandas de tercio de octava de 63 Hz a 5000 Hz con una banda sombreada de más-menos U con factor de cobertura k = 2, reproduciendo el ejemplo resuelto de la Tabla 4 de la normaIncertidumbre del coeficiente de absorción acústica ISO 12999-2: el espectro medido de alpha_s en bandas de tercio de octava de 63 Hz a 5000 Hz con una banda sombreada de más-menos U con factor de cobertura k = 2, reproduciendo el ejemplo resuelto de la Tabla 4 de la norma
Ver el código de esta figura
import matplotlib.pyplot as plt
from phonometry import materials
# Ejemplo resuelto de la Tabla 4 de ISO 12999-2: alpha_s por tercio de octava.
freqs = [63, 80, 100, 125, 160, 200, 250, 315, 400, 500,
630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000]
alpha_s = [0.33, 0.35, 0.39, 0.38, 0.37, 0.36, 0.36, 0.36, 0.43, 0.49,
0.58, 0.63, 0.68, 0.71, 0.73, 0.75, 0.77, 0.79, 0.81, 0.81]
result = materials.sound_absorption_coefficient_uncertainty(alpha_s, freqs, confidence=0.95)
result.plot(language="es") # alpha_s con la banda +/-U (k = 2) de reproducibilidad
plt.show()
from phonometry import materials
# Incertidumbre de reproducibilidad de alpha_s a 1000 Hz (Tabla 1: m=0,040, n=0,015).
r = materials.sound_absorption_coefficient_uncertainty([0.68], [1000], confidence=0.95)
print(round(float(r.standard_uncertainty[0]), 4)) # 0.0422 (sigma_R)
print(float(r.reported_expanded_uncertainty[0])) # 0.08 (U, k=2)
r.plot() # la figura de arriba: alpha_s con su banda +/-U (k = 2)
# Valoraciones de número único (ejemplos resueltos de la cláusula 7).
print(float(materials.weighted_coefficient_uncertainty(0.70).reported_expanded_uncertainty[0])) # 0.07
print(float(materials.single_number_rating_uncertainty(8.1).reported_expanded_uncertainty[0])) # 1.6

Cubierto. La valoración ponderada de absorción de ISO 11654:1997: el coeficiente práctico de la cláusula 4.1, el desplazamiento de la curva de referencia de la cláusula 4.2, los indicadores de forma de la cláusula 4.3 y la clase de absorción de la Tabla B.1. Los construyen weighted_absorption y weighted_absorption_from_third_octave. La inversión de Sabine de ISO 354:2003 (Ecs. (5)-(9)) en measure_sound_absorption. Las dos partes de ISO 9053: el método estático de la cláusula 7.5 (static_airflow_resistance) y el método alterno con la relación efectiva de calores específicos del Anexo A (effective_kappa, alternating_airflow_resistance). El trío del tubo de impedancia: el método de la razón de onda estacionaria de ISO 10534-1 (standing_wave_ratio_from_level y sus acompañantes), el método de la función de transferencia de ISO 10534-2 con su comprobación de rango de frecuencias de la cláusula 4 (two_microphone_impedance, plane_wave_frequency_range), y el método de matriz de transferencia de cuatro micrófonos de ASTM E2611 (transfer_matrix_two_load, transfer_matrix_one_load, TransferMatrix). Las fórmulas de incertidumbre de medida de ISO 12999-2:2020 (cláusulas 5-8) para los coeficientes de tercio de octava y prácticos y para las valoraciones de número único, en sound_absorption_coefficient_uncertainty, weighted_coefficient_uncertainty y single_number_rating_uncertainty.

No cubierto. El coeficiente de absorción estadístico (a incidencia aleatoria) del promedio angular de Paris se describe pero no se calcula: necesita el dependiente del ángulo a partir de la impedancia superficial, que nada aquí deriva. Dos ediciones citadas solo como revisiones posteriores no están implementadas: ISO 10534-2:2023 (el código sigue el método de la función de transferencia de 1998/2001) y ASTM E2611-24 (el código sigue E2611-19). ISO 10534-1:1996 está implementada como su adopción europea BS EN ISO 10534-1:2001, no leída directamente del texto ISO de 1996. La fórmula de incertidumbre de ISO 12999-2 para la valoración de número único de EN 1793-1 está implementada, pero el propio método de medida in situ de EN 1793-1 (dispositivos reductores de ruido de tráfico rodado) no lo está.