Dispersión superficial, difusión y absorción in situ
Normas aplicables: ISO 17497ISO 13472ISO 9613Referencias: Cox y D'Antonio 2017Hargreaves et al. 2000
Cómo devuelve una superficie el sonido incidente (cuánto dispersa fuera de la dirección especular, con qué uniformidad reparte lo que dispersa y cuánto absorbe) se mide con una familia de métodos dedicados. La cámara reverberante proporciona el coeficiente de dispersión de incidencia aleatoria de una superficie comparando las caídas con la muestra inmóvil y en rotación (ISO 17497-1). Un goniómetro en campo libre mide la respuesta polar del sonido reflejado y la condensa en un coeficiente de difusión (ISO 17497-2). Y sobre un pavimento, un altavoz y un solo micrófono recuperan la absorción in situ del firme, ya sea sobre una superficie extensa restando la onda incidente (ISO 13472-1) o a través de un pequeño tubo apoyado sobre la superficie (ISO 13472-2). Esta página cubre los cuatro.
Los coeficientes de dispersión y de difusión responden a preguntas distintas y no son intercambiables: la dispersión es cuánta energía abandona la dirección especular; la difusión es cuán uniformemente se reparte en ángulo la energía reflejada.
1. Coeficiente de dispersión de incidencia aleatoria (ISO 17497-1)
Sección titulada «1. Coeficiente de dispersión de incidencia aleatoria (ISO 17497-1)»El coeficiente de dispersión es la fracción de energía reflejada que no abandona la superficie en la dirección especular. ISO 17497-1 lo mide en una cámara reverberante a partir de cuatro situaciones de tiempo de reverberación: con la muestra de ensayo montada sobre una plataforma giratoria y mantenida inmóvil, y con la plataforma en rotación (que promedia y elimina la reflexión especular coherente en fase), cada una con y sin una placa base reflectante.
Absorción a partir del tiempo de reverberación (cláusula 6). Cada situación se convierte en un coeficiente de absorción de Sabine con el propio término de atenuación del aire de la norma:
donde es el volumen de la sala, el área de la muestra, el tiempo de reverberación, la velocidad del sonido (ec. (2): ) y el coeficiente de atenuación en potencia del aire. El par inmóvil da la absorción de incidencia aleatoria (ec. (1)); el par en rotación da la absorción especular (ec. (4)).
Coeficiente de dispersión (ec. (5)). Ambos se combinan en
Una superficie totalmente especular refleja toda su energía no absorbida en la dirección especular, de modo que y ; un difusor fuerte envía energía en todas direcciones, elevando hacia 1 y hacia 1.
from phonometry import materials
# Cuatro situaciones de tiempo de reverberación reducidas a dos coeficientes de absorción.# alpha_s del par inmóvil (ec. 1); alpha_spec del par en rotación (ec. 4).# V = 200 m^3, S = 10 m^2, c = 343.2 m/s en todo momento.alpha_s = materials.random_incidence_absorption(200.0, 10.0, c1=343.2, T1=8.0, c2=343.2, T2=6.0)alpha_spec = materials.specular_absorption_coefficient(200.0, 10.0, c3=343.2, T3=7.5, c4=343.2, T4=5.0)s = materials.scattering_coefficient(alpha_spec, alpha_s) # ec. (5)print(round(float(alpha_s), 4)) # 0.1343print(round(float(alpha_spec), 4)) # 0.2148print(round(float(s), 4)) # 0.0931Sobre una medición completa en tercios de octava, scattering_coefficient_spectrum
empareja los y por banda con sus centros de banda y
devuelve un ScatteringResult representable:
import numpy as npfrom phonometry import materials
# Una medición de 13 bandas (250-4000 Hz): la absorción de incidencia aleatoria# alpha_s (muestra inmóvil) y la absorción especular alpha_spec (plataforma en# rotación). Un difusor dispersa más con la frecuencia, así que s(f) crece.freqs = np.array([250, 315, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000], float)alpha_s = np.full_like(freqs, 0.10)alpha_spec = 0.11 + 0.75 * (np.log10(freqs / 250) / np.log10(4000 / 250))
result = materials.scattering_coefficient_spectrum(freqs, alpha_spec, alpha_s)print(np.round(result.scattering[[0, 6, 12]], 3)) # [0.011 0.428 0.844]result.plot() # s(f) en eje de frecuencia logarítmico, de 0 a 1 (requiere matplotlib)El coeficiente de dispersión asciende con la frecuencia: a baja frecuencia el relieve de la superficie es pequeño frente a la longitud de onda y la reflexión permanece especular (); al acortarse la longitud de onda el relieve dispersa más energía fuera de la dirección especular ().
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import materials
# Una medición de 13 bandas (250-4000 Hz): la absorción de incidencia aleatoria# alpha_s (muestra inmóvil) y la absorción especular alpha_spec (plataforma en# rotación). Un difusor dispersa más con la frecuencia, así que s(f) crece.freqs = np.array([250, 315, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000], float)alpha_s = np.full_like(freqs, 0.10)alpha_spec = 0.11 + 0.75 * (np.log10(freqs / 250) / np.log10(4000 / 250))result = materials.scattering_coefficient_spectrum(freqs, alpha_spec, alpha_s)
# result es el ScatteringResult calculado arriba. En una línea:result.plot(language="es")plt.show()
# A mano, a partir de los campos del resultado, replicando lo que dibuja ScatteringResult.plot():fig, ax = plt.subplots()ax.semilogx(result.frequencies, result.scattering, "o-", color="#1f77b4")ax.set_xlabel("Frecuencia [Hz]")ax.set_ylabel("Coeficiente de dispersión s")ax.set_ylim(0.0, 1.0)ax.set_title("Coeficiente de dispersión de incidencia aleatoria (ISO 17497-1)")plt.show()Comprobación de la placa base (cláusula 6.4, Tabla 1). La placa base vacía debe dispersar por sí sola de forma despreciable, o sesgaría el resultado. ISO 17497-1 limita el coeficiente de dispersión de la placa base por banda de tercio de octava; la librería expone esos límites y un comprobador.
from phonometry import materials
# Los techos normativos por banda (Tabla 1): 0.05 hasta 500 Hz, ascendiendo a 0.25.# materials.BASE_PLATE_BANDS es la tupla de bandas; materials.BASE_PLATE_MAX_SCATTERING asigna banda -> techo.print(materials.BASE_PLATE_BANDS[0], materials.BASE_PLATE_MAX_SCATTERING[100]) # 100 0.05
# Una placa base cuya dispersión medida se mantiene bajo el techo pasa en silencio;# una banda que lo supera lanza un ScatteringDiffusionWarning que lista las infractoras.materials.check_base_plate_scattering([0.02] * len(materials.BASE_PLATE_BANDS))Ficha de informe de ensayo de dispersión
Sección titulada «Ficha de informe de ensayo de dispersión»ScatteringResult.report(path) genera un informe de ensayo de dispersión
acreditado de una página (ISO 17497-1): una cabecera de metadatos (probeta, área
de muestra , volumen de sala , sala de ensayo, clima), la tabla por tercio
de octava de la absorción de incidencia aleatoria y el coeficiente de
dispersión junto a la curva sobre un eje de bandas categórico, y un
titular de caracterización enmarcado. Es una caracterización, por lo que no hay
veredicto de apto/no apto. verbose=True añade la columna de absorción especular
y language="es" genera la ficha en español. Requiere el extra de
informes (pip install phonometry[report]).

Ficha de dispersión de incidencia aleatoria de una página: una cabecera de metadatos, la tabla por tercio de octava de la absorción de incidencia aleatoria y el coeficiente de dispersión junto a la curva s(f) con eje de bandas, y el titular de caracterización enmarcado sobre el rango de frecuencias ensayado.
2. Coeficiente de difusión (ISO 17497-2)
Sección titulada «2. Coeficiente de difusión (ISO 17497-2)»El coeficiente de difusión mide la uniformidad espacial del sonido reflejado, no cuánto se dispersa. Un goniómetro barre un receptor sobre un arco polar y registra el nivel reflejado en cada ángulo; el coeficiente es la autocorrelación normalizada de la distribución de energía polar.
Autocorrelación (fórmula (5)). Para receptores con espaciado angular igual, con la energía de banda en el receptor ,
Una respuesta polar perfectamente uniforme ( todos iguales) da ; un único lóbulo especular agudo da . Cuando los receptores subtienden ángulos sólidos desiguales, la fórmula (6) pondera por área cada energía con de la fórmula (8), y esos factores de área se evalúan en radianes, razón por la que un espaciado de 5° en el cenit produce un peso cercano a 1,57, no a 51,9.
La animación siguiente ejecuta ese experimento de goniómetro numéricamente: el mismo frente de onda plano incide sobre un panel rígido plano y sobre un difusor de Schroeder (un perfil de residuos cuadráticos con N = 7), y la energía dispersada sobre el arco de receptores convierte un haz especular colimado (d = 0,32) en un abanico ancho (d = 0,63).
Simulación FDTD 2D de un frente de onda plano incidiendo sobre un panel rígido plano y un difusor de Schroeder de residuos cuadráticos lado a lado. El panel plano devuelve un haz especular colimado mientras que los pozos del difusor reparten la misma energía en un abanico ancho, y el campo dispersado sobre un arco de receptores da coeficientes de difusión de 0,32 frente a 0,63.
Simulación FDTD 2D de un frente de onda plano incidiendo sobre un panel rígido plano y un difusor de Schroeder de residuos cuadráticos lado a lado. El panel plano devuelve un haz especular colimado mientras que los pozos del difusor reparten la misma energía en un abanico ancho, y el campo dispersado sobre un arco de receptores da coeficientes de difusión de 0,32 frente a 0,63.
La respuesta de un solo plano de abajo es la predicción en campo lejano de una geometría de difusor publicada: un difusor de residuos cuadráticos de 6 periodos, 3,6 m de anchura total y 0,2 m de profundidad máxima de pozo (la fila “N = 7 QRD, 6 periods, 0.2 m deep” de Cox & D’Antonio, Acoustic Absorbers and Diffusers, 3.ª ed., Apéndice B; el QRD comercial N = 7 medido por Hargreaves, Cox, Lam & D’Antonio, J. Acoust. Soc. Am. 108(4), 1710-1720, 2000, Tabla I) y su panel de referencia plano de igual huella, a 1000 Hz, incidencia normal, en el semicírculo estándar de 37 puntos (espaciado de 5°, de a ). Los mismos niveles del modelo alimentan el conjunto de conformidad de phonometry como oráculo aritmético de las Fórmulas (5) y (7); el anclaje externo de terceros compara la difusión normalizada del modelo promediada por banda con la tabla BEM publicada del Apéndice B en las bandas de 200-400 Hz (acuerdo dentro de 0,01; en todo el rango publicado de 100-5000 Hz la desviación absoluta media modelo-BEM ronda 0,09, porque la difracción de borde queda fuera del modelo de Fraunhofer).
La propia superficie merece dibujarse antes de predecir nada con ella.
plot_qrd_geometry convierte la secuencia de profundidades en el perfil de
pozos a escala de abajo, y una DiffuserPolarResponse predicha retiene su
geometría, así que qrd.plot_geometry() dibuja la superficie para la que se
calculó.
Dos de los seis periodos, a escala: los residuos cuadráticos convertidos en una superficie construible. La frecuencia de diseño de 490 Hz es la que deja el pozo más profundo exactamente en 200 mm.
Ver el código de esta figura
import matplotlib.pyplot as pltfrom phonometry import materials
# El QRD N = 7 publicado: ancho de pozo 3,6 m / 42, pozo más profundo 0,2 m.depths = materials.qrd_well_depths(7, 490.0, speed_of_sound=343.0)pitch = 3.6 / 42 # 42 pozos a lo ancho del panel de 3,6 mfin = 0.005 # aletas finas, incluidas en el pasomaterials.plot_qrd_geometry(depths, pitch - fin, fin_width=fin, periods=2, language="es")plt.show()
# Una DiffuserPolarResponse predicha retiene su geometría, así que# qrd.plot_geometry() dibuja el perfil para el que se calculó (los 6 periodos).from phonometry import materials
# La geometría publicada: QRD N = 7, 6 periodos, 3,6 m de ancho, 0,2 m de# profundidad (Cox & D'Antonio 3.ª ed., Apéndice B; Hargreaves et al. 2000,# Tabla I). La frecuencia de diseño de 490 Hz deja el pozo más profundo en# exactamente 0,2 m.depths = materials.qrd_well_depths(7, 490.0) # [0, 0.05, 0.2, 0.1, ...] mqrd = materials.predict_diffuser_polar_response( 3.6 / 42, 1000.0, depths=depths, periods=6)# El panel de referencia plano: la misma huella de 3,6 m con pozos a cero.flat = materials.predict_diffuser_polar_response( 3.6 / 42, 1000.0, depths=[0.0] * 7, periods=6)
qrd.plot() # respuesta polar predicha, d en el título (requiere matplotlib)
d = materials.directional_diffusion_coefficient(qrd.levels) # fórmula (5)print(round(float(d), 4)) # 0.1099d_ref = materials.directional_diffusion_coefficient(flat.levels)print(round(float(d_ref), 4)) # 0.0049
# Normaliza frente a la referencia plana para aislar el efecto propio del# difusor (fórmula (7)): d_n = (d - d_ref) / (1 - d_ref).d_n = materials.normalized_diffusion_coefficient(d, d_ref)print(round(float(d_n), 4)) # 0.1055
# Valor de incidencia aleatoria: promedia los coeficientes de banda sobre las# posiciones de fuente, con la ponderación 2-D de la norma (0 grados -> 1,# +/-30/+/-60 grados -> 3).d_random = materials.random_incidence_diffusion( [0.5, 0.2, 0.2, 0.2, 0.2], weights=materials.TWO_DIMENSIONAL_SOURCE_WEIGHTS)print(round(float(d_random), 4)) # 0.2231directional_diffusion mantiene los ángulos de los receptores junto a los
niveles de un barrido completo de goniómetro y devuelve un DiffusionResult
representable. Reutilizando los niveles polares del QRD de arriba:
import numpy as npfrom phonometry import materials
# qrd.levels: los 37 niveles predichos del QRD del ejemplo de arriba.angles = np.arange(-90.0, 90.5, 5.0)
result = materials.directional_diffusion(angles, qrd.levels)print(round(result.coefficient, 2)) # 0.11result.plot() # respuesta polar reflejada, d en el título (requiere matplotlib)La matriz periódica de QRD divide la energía reflejada en un abanico de lóbulos de red discretos en lugar de un único pico especular, pero seis repeticiones del mismo periodo concentran la energía en esas pocas direcciones, así que el coeficiente de difusión por autocorrelación se queda en un valor modesto (). El panel de referencia plano colapsa solo en la dirección especular y baja a ; esta penalización por lóbulos de las matrices periódicas es justo el motivo por el que Cox & D’Antonio recomiendan disposiciones moduladas.
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import materials
# qrd.levels: los 37 niveles predichos L_i del QRD N = 7 de seis periodos del# ejemplo de arriba (modelo de campo lejano de Fraunhofer, geometría publicada# del Apéndice B de Cox & D'Antonio, 1000 Hz, incidencia normal) en el# semicírculo de -90 a 90 grados con espaciado de 5 grados. La matriz# periódica concentra la energía en lóbulos de red, así que el coeficiente d# de la fórmula (5) es modesto.angles = np.arange(-90.0, 90.5, 5.0)result = materials.directional_diffusion(angles, qrd.levels)
# result es el DiffusionResult calculado arriba. En una línea:result.plot(language="es")plt.show()
# A mano: un diagrama polar de los niveles, con d anotado en el título.fig, ax = plt.subplots(subplot_kw={"projection": "polar"})theta = np.radians(result.angles)ax.plot(theta, result.levels, "o-", color="#1f77b4")ax.fill(theta, result.levels, color="#1f77b4", alpha=0.15)ax.set_theta_zero_location("N")ax.set_theta_direction(-1)ax.set_thetamin(-90)ax.set_thetamax(90)ax.set_title(f"Difusión direccional d = {result.coefficient:.2f} (ISO 17497-2)")plt.show()Ficha de informe de ensayo de difusión
Sección titulada «Ficha de informe de ensayo de difusión»Reunido a lo largo de las bandas de tercio de octava, el coeficiente de difusión
forma un DiffusionSpectrum, cuyo report(path) genera un informe de
ensayo de difusión de una página (ISO 17497-2, Cláusula 8.5): la tabla por banda
de junto a la curva con eje de bandas, con un titular de
caracterización enmarcado. Según la Cláusula 8.4, el coeficiente de incidencia
aleatoria es a su vez una magnitud por banda, la media de los coeficientes
direccionales sobre las posiciones de fuente banda a banda (no una media a
través de las frecuencias), de modo que aquí es un coeficiente por banda.
verbose=True añade la columna del coeficiente normalizado a la tabla (la
curva siempre dibuja como acompañante cuando está presente).
import numpy as npfrom phonometry import materials
# Un coeficiente de difusión por banda (aquí un ejemplo en forma cerrada). En la# práctica, la d de incidencia aleatoria de cada banda es la media, sobre las# posiciones de fuente, de los coeficientes direccionales: para la banda k, se# promedia directional_diffusion_coefficient sobre las fuentes con# random_incidence_diffusion (Cláusula 8.4).freqs = np.array([250, 500, 1000, 2000, 4000], float)d = np.array([0.30, 0.45, 0.60, 0.75, 0.88])spectrum = materials.diffusion_spectrum(freqs, d)spectrum.plot() # d(f) en el eje de bandas (requiere matplotlib)spectrum.report("difusion.pdf") # ficha de una página (requiere phonometry[report])
Ficha de difusión de una página: una cabecera de metadatos, la tabla por tercio de octava del coeficiente de difusión d junto a la curva d(f) con eje de bandas (con el normalizado d_n dibujado como curva acompañante), y el titular de caracterización enmarcado sobre el rango de frecuencias ensayado.
La respuesta polar de una sola banda también es informable: DiffusionResult.report(path)
genera la tabla de ángulo de recepción / nivel reflejado corregido junto al
diagrama polar semicircular, enmarcando el coeficiente de difusión direccional de
esa banda.

Ficha de respuesta polar de fuente única de una página: una cabecera de metadatos, el nivel reflejado corregido por ángulo de recepción junto al diagrama polar semicircular, y el coeficiente de difusión direccional enmarcado.
Predicción de la difusión a partir del diseño de un difusor
Sección titulada «Predicción de la difusión a partir del diseño de un difusor»El coeficiente de autocorrelación anterior reduce una respuesta polar medida.
El mismo coeficiente puede predecirse a partir del diseño físico de un difusor
de rejilla de fase de Schroeder, de modo que una secuencia de profundidades de
pozo pueda evaluarse antes de fabricar una muestra.
predict_diffuser_polar_response evalúa el modelo de Fraunhofer (campo lejano)
de plano único de Cox y D’Antonio: cada pozo de fondo rígido y profundidad
aporta un coeficiente de reflexión de presión , y la
presión dispersada al ángulo de reflexión para una fuente con incidencia
es la suma sobre los pozos de la superficie periódica (Ec. (5.8)),
con el centro del pozo y . Los niveles polares predichos
alimentan el mismo directional_diffusion_coefficient
que una medición. Para un difusor de residuo cuadrático la secuencia de
profundidades se obtiene del generador primo y la frecuencia de diseño
(Ecs. (10.2)/(10.3)): y con
.
import numpy as npfrom phonometry import materials
# Un difusor de residuo cuadratico N = 7, frecuencia de diseno 500 Hz.depths = materials.qrd_well_depths(7, 500.0) # Ecs. (10.2)/(10.3)print(np.round(depths * 100, 1)) # profundidades de pozo en cm: # [ 0. 4.9 19.6 9.8 9.8 19.6 4.9]
# Respuesta polar de campo lejano predicha a una frecuencia (5 periodos# repetidos, pozos de 10 cm), reducida al coeficiente de difusion direccional# ISO 17497-2.surface = materials.predict_diffuser_polar_response(0.10, 2000.0, depths=depths, periods=5)print(round(surface.coefficient, 3)) # 0.210surface.plot() # respuesta polar predicha, d en el titulo (requiere matplotlib)
# La variante de espectro normaliza banda a banda frente a la referencia plana# de la misma huella (Formula (7)): el panel plano se aplica a cero exacto y el# QRD queda muy por encima.freqs = np.array([500, 1000, 2000, 4000], float)qrd = materials.predicted_diffusion_spectrum(0.10, freqs, depths=depths, periods=5)print(np.round(qrd.normalized, 3)) # [0.352 0.275 0.208 0.073]
flat = materials.predicted_diffusion_spectrum(0.10, freqs, depths=np.zeros_like(depths), periods=5)print(np.round(flat.normalized, 3)) # [0. 0. 0. 0.]Predicho solo a partir del diseño: el QRD N = 7 reparte la energía reflejada
mucho más uniformemente que el panel plano de la misma huella, de modo que su
coeficiente de difusión predicho queda muy por encima de la referencia plana
casi especular en toda la banda. Se trata de una estimación de diseño en campo
lejano, no un sustituto de una medición ISO 17497-2; como todo modelo de Fourier
de difusores pierde precisión a baja frecuencia, en ángulos rasantes y para
superficies muy absorbentes. Se puede pasar una secuencia arbitraria de
coeficientes de reflexión complejos por pozo mediante el argumento reflection,
de modo que una superficie de admitancia o cargada con resonadores calculada en
otro lugar pueda evaluarse igual.
Mostrar el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom phonometry import materials
# QRD N = 7 (frecuencia de diseno 500 Hz, pozos de 10 cm, cinco periodos) frente# al panel plano de la misma huella, sobre las bandas de tercio de octava.freqs = np.array([250, 315, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000], float)depths = materials.qrd_well_depths(7, 500.0)qrd = materials.predicted_diffusion_spectrum(0.10, freqs, depths=depths, periods=5)
# El DiffusionSpectrum dibuja la d(f) predicha directamente. Una linea:qrd.plot(language="es")plt.show()
# A mano: d(f) predicha para el QRD frente a la referencia plana.flat = materials.predicted_diffusion_spectrum(0.10, freqs, depths=np.zeros_like(depths), periods=5, normalize=False)fig, ax = plt.subplots()ax.semilogx(freqs, qrd.diffusion, "o-", color="#1f77b4", label="Diseno QRD N = 7")ax.semilogx(freqs, flat.diffusion, "s--", color="#d62728", label="Panel plano")ax.set_ylim(0.0, 1.0)ax.set_xlabel("Frecuencia [Hz]")ax.set_ylabel("Coeficiente de difusion predicho d")ax.legend()plt.show()¿Dispersión o difusión? Dos coeficientes, dos trabajos
Sección titulada «¿Dispersión o difusión? Dos coeficientes, dos trabajos»Los dos coeficientes anteriores se tratan de forma rutinaria como intercambiables, en fichas de producto y a veces en manuales de simulación. No lo son, y ninguno puede calcularse a partir del otro. El coeficiente de dispersión (ISO 17497-1) hace contabilidad de energía: qué fracción de la energía reflejada abandona la dirección especular. No dice nada sobre a dónde va esa energía. El coeficiente de difusión (ISO 17497-2) califica la calidad espacial: cuán uniformemente cubre la energía reflejada el arco de receptores, para una dirección de fuente cada vez. No dice nada sobre cómo se reparte la energía entre el lóbulo especular y el resto.
Un par de contraejemplos los mantiene separados. Un elemento curvo o inclinado que redirige la reflexión concentra casi toda la energía reflejada en un lóbulo intenso alejado de la dirección especular: casi todo es no especular, así que es alto, pero el haz queda tan colimado como el de un espejo, así que se mantiene bajo. A la inversa, un panel plano pequeño medido a baja frecuencia envía casi toda la energía reflejada hacia la dirección especular, así que se queda cerca de cero, y sin embargo la difracción de borde reparte esa reflexión tan ampliamente sobre el arco de receptores que el medido sale sorprendentemente alto. Un alto no significa uniforme; un decente no significa que se dispersara mucha energía.
Cuál usar en diseño. Los dos números sirven a consumidores distintos:
- El coeficiente de dispersión alimenta la simulación de salas. Los motores de acústica geométrica deciden en cada reflexión de pared cuánta energía continúa especularmente y cuánta se redistribuye; el de incidencia aleatoria por banda de cada superficie es precisamente ese reparto, que es lo que ISO 17497-1 se redactó para suministrar. Equivocarlo se traduce en predicciones erróneas de tiempo de reverberación y claridad en salas no mezcladoras.
- El coeficiente de difusión califica difusores. Cuando la tarea es deshacer un eco, un flutter o una reflexión focalizada, lo que importa es que la energía reflejada se reparta en ángulo, y mide exactamente eso. El normalizado (fórmula (7)) resta además la difracción de borde que exhibe todo panel finito, de modo que productos de tamaños distintos puedan compararse con justicia.
Intercambiarlos falla en ambos sentidos: un coeficiente de difusión metido en la casilla de dispersión de un simulador sesga el reparto de energía, y un coeficiente de dispersión citado como prueba de “difusión” puede describir una superficie que simplemente redirige la reflexión problemática a otro sitio. Ambos coeficientes son funciones por banda de tercio de octava que en general crecen cuando el relieve de la superficie deja de ser pequeño frente a la longitud de onda; un número único ciego a la frecuencia (“dispersa el 90 % del sonido”) no es ninguno de los dos.
3. Absorción in situ de pavimentos: técnica de sustracción (ISO 13472-1)
Sección titulada «3. Absorción in situ de pavimentos: técnica de sustracción (ISO 13472-1)»En campo no hay cámara reverberante. ISO 13472-1 mide la absorción acústica de un pavimento (o de cualquier superficie plana extensa) in situ disparando un impulso desde un altavoz a la altura hacia la superficie y registrando la respuesta al impulso en un micrófono a la altura . Las componentes incidente y reflejada se separan en el tiempo con una ventana de Adrienne; su función de transferencia da el factor de reflexión y de ahí la absorción.
Divergencia geométrica (cláusula 4.1). La onda reflejada recorre más camino que la directa, así que se atenúa por el factor de divergencia geométrica
que vale para la geometría obligatoria m, m. La absorción se obtiene de los espectros incidente y reflejado enventanados , :
import numpy as npfrom phonometry import materials
# Una respuesta al impulso incidente limitada en banda y una reflexión de# pavimento sintética hr = Kr * r0 * delayed(hi): una reflexión de magnitud# r0 = 0.4, retardada por el camino adicional y escalada por el factor de# divergencia geométrica Kr.fs, n = 48000.0, 4096t = np.arange(n) / fshi = np.zeros(n)hi[:64] = np.hanning(64) * np.cos(2.0 * np.pi * 1500.0 * t[:64])
kr = materials.geometric_spreading_factor() # (ds - dm)/(ds + dm) = 2/3hr = kr * 0.4 * np.roll(hi, 96)
# Absorción de banda estrecha, luego reducida a tercios de octava en 250-4000 Hz.alpha = materials.insitu_absorption_coefficient(hi, hr) # 1 - (1/Kr^2)|Hr/Hi|^2freq = np.fft.rfftfreq(n, 1.0 / fs)centres, band = materials.one_third_octave_absorption(freq, alpha)print(round(kr, 4)) # 0.6667print(round(float(band[2]), 3)) # 0.84 (alpha = 1 - 0.4^2 = 0.84)Ventana de Adrienne (cláusula 6.4). La ventana temporal que aísla la reflexión solo exige un flanco de subida abrupto, una porción plana de 5 ms y un flanco de bajada de coseno cuadrado o Blackman-Harris; las duraciones exactas se informan en cada medición, no son fijas, así que aquí son configurables.
from phonometry import materials
# Por defecto: flanco de subida de 0.5 ms, meseta de 5 ms, bajada Blackman-Harris de 5 ms.w = materials.adrienne_window(48000.0)print(w.shape[0]) # 504 muestras a 48 kHzprint(round(float(w.max()), 3)) # 1.0 (la meseta y los flancos se encuentran en la unidad)Espectro de principio a fin. insitu_absorption_spectrum ejecuta toda la
cadena (de las respuestas al impulso incidente y reflejada enventanadas a la
absorción de banda estrecha y de ahí a las bandas de tercio de octava) y devuelve
un InsituAbsorptionResult representable:
import numpy as npfrom phonometry import materialsfrom scipy.signal import firwin, lfilter
# Una medición sintética pero realista. hi es un impulso incidente unitario; la# reflexión del pavimento hr = Kr * r0 * roll(hi, shift) usa el factor de# divergencia geométrica Kr, un r0 levemente dependiente de la frecuencia (un# suave paso-bajo, de modo que una superficie porosa refleja menos al subir la# frecuencia) y el retardo del camino reflejado shift = round(2 dm / c * fs).fs, n = 48000.0, 8192kr = materials.geometric_spreading_factor() # (ds - dm)/(ds + dm) = 2/3hi = np.zeros(n)hi[0] = 1.0taps = firwin(41, 1200.0, fs=fs)taps = taps / taps.sum()shift = int(round(2.0 * 0.25 / 340.0 * fs)) # retardo del camino reflejado 2 dm / chr = kr * 0.85 * np.roll(lfilter(taps, 1.0, hi), shift)
result = materials.insitu_absorption_spectrum(hi, hr, fs)print(result.frequencies[[0, -1]].astype(int)) # [ 250 4000]print(np.round(result.absorption[[0, 6, 12]], 2)) # [0.31 0.65 1. ]result.plot() # diagrama de barras alpha(f) en 250-4000 Hz (requiere matplotlib)La absorción crece con la frecuencia porque la superficie refleja menos energía de alta frecuencia, exactamente como dicta el factor de reflexión paso-bajo a través de .
Ver el código de esta figura
import matplotlib.pyplot as pltimport numpy as npfrom scipy.signal import firwin, lfilterfrom phonometry import materials
# Una medición sintética pero realista. hi es un impulso incidente unitario; la# reflexión del pavimento hr = Kr * r0 * roll(hi, shift) usa el factor de# divergencia geométrica Kr, un r0 levemente dependiente de la frecuencia (un# suave paso-bajo, de modo que una superficie porosa refleja menos al subir la# frecuencia) y el retardo del camino reflejado shift = round(2 dm / c * fs).fs, n = 48000.0, 8192kr = materials.geometric_spreading_factor() # (ds - dm)/(ds + dm) = 2/3hi = np.zeros(n)hi[0] = 1.0taps = firwin(41, 1200.0, fs=fs)taps = taps / taps.sum()shift = int(round(2.0 * 0.25 / 340.0 * fs)) # retardo del camino reflejado 2 dm / chr = kr * 0.85 * np.roll(lfilter(taps, 1.0, hi), shift)result = materials.insitu_absorption_spectrum(hi, hr, fs)
# result es el InsituAbsorptionResult calculado arriba. En una línea:result.plot(language="es")plt.show()
# A mano: un diagrama de barras de alpha sobre las bandas de tercio de octava.freqs = result.frequenciespositions = np.arange(freqs.size)fig, ax = plt.subplots()ax.bar(positions, np.nan_to_num(result.absorption), width=0.7, color="#1f77b4")ax.set_xticks(positions)ax.set_xticklabels([f"{f:g}" for f in freqs], rotation=45, ha="right")ax.set_xlabel("Frecuencia [Hz]")ax.set_ylabel("Coeficiente de absorción alpha")ax.set_ylim(0.0, 1.0)ax.set_title("Absorción in situ de pavimentos (ISO 13472-1)")plt.show()Área máxima muestreada (Anexo A). La ventana temporal finita limita cuánta superficie contribuye a la reflexión. El área máxima muestreada es un círculo cuyo radio la librería calcula a partir de la geometría y la anchura de la ventana; el ejemplo trabajado del Anexo A ( m, m, m/s, ventana plana de 5 ms) da unos 1,34 m.
from phonometry import materialsprint(round(materials.max_sampled_area_radius(5.0e-3), 3)) # 1.343 (metros)4. Absorción in situ de pavimentos: método puntual (ISO 13472-2)
Sección titulada «4. Absorción in situ de pavimentos: método puntual (ISO 13472-2)»Para parches más pequeños, ISO 13472-2 sella un tubo circular corto sobre la
superficie y mide la absorción con el método de la función de transferencia de
dos micrófonos de ISO 10534-2. La librería aporta la geometría del método puntual
y los ayudantes de validez; el propio DSP de la función de transferencia es la
rutina de tubo de impedancia two_microphone_impedance (véase la
guía de Materiales acústicos).
Límites de onda plana (cláusula 5.4). El tubo solo soporta ondas planas por debajo de
con el diámetro del tubo, y el espaciado de micrófonos debe situarse entre y . El rango informado son las bandas de tercio de octava de 250 a 1600 Hz.
from phonometry import materials
# Frecuencia superior utilizable de un tubo de 100 mm y la ventana de espaciado válida.print(round(materials.spot_tube_upper_frequency(0.100, 343.0), 1)) # 1989.4 Hzs_min, s_max = materials.spot_microphone_spacing_bounds( 343.0, f_min=220.0, f_max=1800.0)print(round(s_min, 3), round(s_max, 3)) # 0.078 0.086 (metros)Qué cubre esta guía
Sección titulada «Qué cubre esta guía»Cubierto. El coeficiente de dispersión de incidencia aleatoria de la
ISO 17497-1:2004+A1:2014 (las relaciones de absorción a partir del tiempo
de reverberación del apartado 6 y la Fórmula (5)) con los límites de placa
base de la Tabla 1, mediante materials.random_incidence_absorption,
materials.specular_absorption_coefficient, materials.scattering_coefficient,
materials.scattering_coefficient_spectrum y
materials.check_base_plate_scattering; el coeficiente de difusión
direccional y de incidencia aleatoria de la ISO 17497-2:2012 (Fórmulas (5) a
(8)) mediante materials.directional_diffusion y
materials.random_incidence_diffusion, más el modelo de predicción de
difusor de Fraunhofer de Cox y D’Antonio; la técnica de sustracción de la
ISO 13472-1:2002 (la propagación geométrica del apartado 4.1, la ventana
temporal Adrienne del apartado 6.4 y el radio de área muestreada del anexo
A) mediante materials.insitu_absorption_spectrum y sus piezas; y el
límite de frecuencia de onda plana y la geometría de separación de
micrófonos del método puntual de la ISO 13472-2:2010.
No cubierto. Ambas normas de absorción in situ de pavimentos se han revisado desde entonces (ISO 13472-1:2022, ISO 13472-2:2025); aquí solo están implementadas las ediciones anteriores de 2002 y 2010, como indican las notas de referencia de arriba. El procesado de función de transferencia propio de la ISO 13472-2 tampoco está implementado en este módulo: solo se proporcionan la geometría y las funciones de validación, y el DSP de dos micrófonos real es la rutina ISO 10534-2 de la guía de Materiales Acústicos. El modelo de predicción de difusor de Fraunhofer es una estimación de diseño, no forma parte de la ISO 17497-2 en sí, y sus propios límites declarados (pierde precisión a baja frecuencia, en ángulos rasantes y para superficies muy absorbentes, e ignora la difracción de borde) hacen que no sustituya a una medición real del coeficiente de difusión.
Véase también
Sección titulada «Véase también»- Propagación en exteriores: el modelo completo de absorción atmosférica de ISO 9613-1, cuyo coeficiente de tono puro consumen las relaciones de atenuación del aire de ISO 17497-1.
- Referencia de la API:
materials.scattering_diffusionymaterials.road_absorption.
Referencias
Sección titulada «Referencias»- Cox, T. J. y D'Antonio, P. (2017). Acoustic absorbers and diffusers: Theory, design and application (3.ª ed.). CRC Press. https://doi.org/10.1201/9781315369211ISBN 978-1-4987-4099-9. La monografía de referencia sobre teoría y diseño de difusores, de los autores del método del coeficiente de difusión de ISO 17497-2: la distinción dispersión-difusión, los montajes de medida y la guía de diseño que esta página condensa. El Apéndice B (tabla de coeficientes de difusión normalizados, pp. 481-485) es el anclaje BEM publicado del modelo de predicción de difusores de esta página.
- Hargreaves, T. J., Cox, T. J., Lam, Y. W. y D'Antonio, P. (2000). Surface diffusion coefficients for room acoustics: Free-field measures of single-plane diffusion. The Journal of the Acoustical Society of America, 108(4), 1710-1720. https://doi.org/10.1121/1.1310192El método del coeficiente de difusión en campo libre que sustenta ISO 17497-2; su Tabla I documenta la geometría del QRD comercial N = 7 (0,2 m de profundidad máxima de pozo) usada en el ejemplo de esta página.
- International Organization for Standardization. (1993). Acoustics — Attenuation of sound during propagation outdoors — Part 1: Calculation of the absorption of sound by the atmosphere (ISO 9613-1:1993). Solo el coeficiente de atenuación de tono puro alfa que consumen las relaciones de atenuación del aire del apartado 8 de ISO 17497-1 (Ecs. (2)/(3)); el modelo completo de absorción atmosférica está en la guía de propagación en exteriores.
- International Organization for Standardization. (2002). Acoustics — Measurement of sound absorption properties of road surfaces in situ — Part 1: Extended surface method (ISO 13472-1:2002). La absorción in situ de una superficie extensa por la técnica de sustracción de la sección 3. Revisada después como ISO 13472-1:2022 (https://www.iso.org/standard/77032.html); la edición de 2002 es la implementada.
- International Organization for Standardization. (2004). Acoustics — Sound-scattering properties of surfaces — Part 1: Measurement of the random-incidence scattering coefficient in a reverberation room (ISO 17497-1:2004+A1:2014). La edición implementada aquí: el método de mesa giratoria de la sección 1 y los límites de placa base de la Tabla 1 de la norma.
- International Organization for Standardization. (2010). Acoustics — Measurement of sound absorption properties of road surfaces in situ — Part 2: Spot method for reflective surfaces (ISO 13472-2:2010). El método de tubo puntual de la sección 4. Revisada después como ISO 13472-2:2025 (https://www.iso.org/standard/84925.html); la edición de 2010 es la implementada.
- International Organization for Standardization. (2012). Acoustics — Sound-scattering properties of surfaces — Part 2: Measurement of the directional diffusion coefficient in a free field (ISO 17497-2:2012). El coeficiente de autocorrelación del goniómetro que sustenta la sección 2 de esta página, su ponderación por área y el d_n normalizado.