👂 Enmascaramiento Psicoacústico
Un tono fuerte eleva el umbral auditivo de las frecuencias cercanas, ocultando sonidos más suaves bajo una curva de enmascaramiento — el mismo principio que explota la compresión MP3 para descartar datos inaudibles.
Cómo funciona
Cuando se reproduce un tono enmascarador de frecuencia f_m y nivel L_m, eleva el umbral auditivo efectivo en una región alrededor de f_m en el mapa de frecuencias de la cóclea. Esta región se describe mejor en la escala de Bark, que reescala la frecuencia de modo que cada unidad (1 Bark) corresponde aproximadamente a un ancho de banda crítico del banco de filtros auditivos. El umbral elevado — la curva de enmascaramiento — es empinado en el lado de baja frecuencia y mucho más suave en el lado de alta frecuencia, por lo que los tonos graves enmascaran hacia arriba de forma más efectiva que los tonos agudos enmascaran hacia abajo (la asimetría del enmascaramiento).
Se predice que un tono de sonda de frecuencia f_p y nivel L_p es audible solo si L_p supera el umbral enmascarado en f_p: el que sea mayor entre el umbral normal de audición en silencio, o la curva de propagación del enmascarador evaluada en la distancia de Bark Δz entre f_p y f_m. Esta simulación implementa una función de propagación lineal por tramos simplificada basada en el modelo usado en la codificación de audio perceptual MPEG temprana — un sustituto útil y honestamente aproximado de la verdadera forma del filtro auditivo, suavemente curvada, medida en laboratorios de psicoacústica.
Umbral de silencio (Terhardt 1979): T_q(f) = 3.64(f/1000)^-0.8 − 6.5·e^(−0.6(f/1000−3.3)²) + 0.001(f/1000)^4 dB SPL
Función de propagación SF(Δz,L_m), Δz = z(f_p) − z(f_m):
−3≤Δz<−1: 17Δz − 0.4L_m + 11
−1≤Δz<0: (0.4L_m+6)Δz
0≤Δz<1: −17Δz
1≤Δz≤8: (0.15L_m−17)Δz − 0.15L_m
Umbral enmascarado: T_m(f_p) = max(T_q(f_p), L_m + SF(Δz,L_m))
Ancho de banda crítico (Zwicker 1961): CB(f) = 25 + 75·(1+1.4(f/1000)²)^0.69 Hz
Preguntas frecuentes
¿Qué es el enmascaramiento psicoacústico?
El enmascaramiento psicoacústico es el fenómeno por el cual un sonido más fuerte (el enmascarador) eleva el umbral auditivo efectivo para otros sonidos más suaves (la sonda) que caen cerca de él en frecuencia y en tiempo. Si el nivel de la sonda está por debajo de ese umbral elevado, se vuelve inaudible aunque sería perfectamente audible en silencio.
¿Por qué es asimétrico el enmascaramiento — enmascaran más los tonos graves a los agudos que al revés?
Sí. La curva de enmascaramiento tiene una falda de baja frecuencia empinada (aproximadamente -27 dB por Bark por debajo del enmascarador) y una falda de alta frecuencia mucho más suave. Esto significa que un enmascarador de baja frecuencia se extiende hacia arriba y enmascara frecuencias más altas de forma más efectiva que un enmascarador de alta frecuencia enmascara las más bajas, una propiedad llamada asimetría del enmascaramiento o propagación ascendente del enmascaramiento.
¿Cómo explotan el enmascaramiento las compresiones MP3 y AAC?
Los códecs de audio perceptual calculan un umbral de enmascaramiento a lo largo del espectro para cada bloque corto de audio, y luego asignan menos bits de cuantización (o ninguno) a los componentes de frecuencia que caen por debajo de ese umbral, ya que un oyente no podría escuchar allí el ruido de cuantización añadido de todos modos. Esto permite al códec descartar o codificar de forma tosca información inaudible, reduciendo el tamaño del archivo con una pérdida de calidad percibida mínima.
¿Qué es el enmascaramiento temporal (pre-enmascaramiento y post-enmascaramiento)?
El enmascaramiento temporal es la contraparte en el dominio del tiempo del enmascaramiento simultáneo. Un sonido fuerte puede enmascarar un sonido más suave que lo sigue durante decenas a cientos de milisegundos (post-enmascaramiento o enmascaramiento hacia adelante) y, más sorprendentemente, incluso puede enmascarar un sonido más suave que lo precede unos milisegundos antes (pre-enmascaramiento o enmascaramiento hacia atrás) porque el sistema auditivo necesita tiempo para procesar los inicios fuertes. Esta simulación se centra únicamente en el enmascaramiento simultáneo (en el dominio de la frecuencia).
¿Por qué importan las bandas críticas y la escala de Bark para el enmascaramiento?
La cóclea se comporta como un banco de filtros pasabanda superpuestos llamados bandas críticas; los sonidos dentro de la misma banda crítica interactúan y se enmascaran mutuamente con mucha más fuerza que los sonidos en bandas diferentes. La escala de Bark (24 bandas que abarcan el rango audible) reescala la frecuencia de modo que cada paso unitario corresponde aproximadamente a un ancho de banda crítico, razón por la cual las curvas de enmascaramiento se dibujan y calculan sobre un eje de Bark en lugar de un eje lineal de Hz.
¿Por qué elevar el nivel del enmascarador amplía el rango de frecuencias que enmascara?
La altura de la curva de enmascaramiento escala directamente con el nivel del enmascarador, y su pendiente de alta frecuencia también se vuelve más suave a medida que aumenta el nivel del enmascarador, de modo que un enmascarador más fuerte no solo eleva más el umbral, sino que extiende ese umbral elevado a un rango de frecuencias más amplio, particularmente hacia arriba en frecuencia.
¿Por qué podrían los auriculares revelar sonidos que los altavoces ocultan, o viceversa?
Los distintos sistemas de reproducción y las salas alteran los niveles relativos y el balance espectral de los sonidos simultáneos. Si un cambio de equipo desplaza el nivel de un enmascarador con respecto a un tono de sonda, un sonido que estaba por debajo del umbral enmascarado en un sistema puede superarlo en otro, haciendo audibles de repente detalles antes enmascarados.
¿Por qué importa el enmascaramiento para las pruebas auditivas y la audiología?
La audiometría clínica de tonos puros debe presentar un tono de prueba a un oído mientras a veces enmascara el otro oído con ruido, para evitar que el oído no evaluado "escuche de forma cruzada" el tono a través de la conducción ósea y dé un umbral falso. Los audiólogos usan niveles de ruido de enmascaramiento calibrados derivados de los mismos principios de enmascaramiento modelados en esta simulación.
¿Cuál es la función de propagación utilizada en esta simulación?
Esta simulación utiliza una función de propagación lineal por tramos simplificada sobre la escala de Bark, basada en el modelo clásico usado en la codificación de audio perceptual MPEG temprana (según Schroeder, Atal y Hall). Aproxima la forma de la curva de enmascaramiento con distintas pendientes por debajo y por encima de la frecuencia del enmascarador, y es una aproximación de la verdadera forma del filtro auditivo en lugar de una medición fisiológica exacta.
Acerca de esta simulación
Este simulador traza la curva de propagación de un tono enmascarador en un gráfico de nivel de presión sonora escalado en Bark y comprueba si un segundo tono de sonda, más suave, se eleva por encima del umbral enmascarado resultante. Arrastra la frecuencia y el nivel del enmascarador para remodelar la curva, arrastra la sonda a cualquier frecuencia y nivel, y luego pulsa Reproducir para escuchar realmente — a través de osciladores reales de Web Audio — si la sonda queda enterrada bajo el enmascarador o se sitúa claramente por encima de él.
🔬 Qué muestra
Un gráfico en vivo de nivel de presión sonora frente a frecuencia que combina el umbral normal de audición en silencio con la curva de propagación asimétrica de un enmascarador, más un marcador de tono de sonda que se vuelve verde (audible) o rojo (enmascarado) según si su nivel supera maskedThresholdAt() en su propia frecuencia.
🎮 Cómo usarlo
Ajusta la frecuencia f_m y el nivel L_m del enmascarador, luego mueve la frecuencia f_p y el nivel L_p de la sonda para explorar la curva de enmascaramiento. Pulsa Reproducir tonos para escuchar ambos juntos a través de osciladores de Web Audio. P pausa la animación del lienzo, R reinicia todos los controles deslizantes.
💡 ¿Sabías que...?
Debido a que la falda de alta frecuencia de la curva de enmascaramiento es mucho más suave que su falda de baja frecuencia, un enmascarador con mucho grave puede ocultar una banda mucho más amplia de detalle en frecuencias más altas de lo que un enmascarador agudo puede ocultar el grave — esta asimetría es una de las razones por las que los codificadores MP3 gastan bits extra protegiendo las frecuencias bajas.
Preguntas frecuentes
¿Por qué acercar f_p a f_m en distancia de Bark cambia el Estado de Enmascarado a Audible?
dz = bark(fp) − bark(fm) se reduce hacia cero a medida que f_p se acerca a f_m, y spreadingFunction(dz, Lm) es mayor (menos negativa) cerca de dz = 0, por lo que maskedThresholdAt() alcanza su punto más alto justo alrededor del enmascarador — la sonda tiene que superar ese pico, razón por la cual distancias de Bark pequeñas hacen que el enmascaramiento sea más fuerte.
¿Por qué elevar L_m eleva el umbral enmascarado incluso a grandes separaciones de frecuencia?
maskedThresholdAt() devuelve Math.max(quietThreshold(f), Lm + spreadingFunction(dz, Lm)), y la función por tramos spreadingFunction() en sí depende de Lm a través de términos como (0.4·Lm+6)·dz y (0.15·Lm−17)·dz, por lo que un enmascarador más fuerte tanto parte de una base Lm más alta como obtiene una pendiente más suave (menos negativa), empujando el umbral hacia arriba a lo largo de un rango más amplio de dz.
¿Por qué la curva de enmascaramiento dibujada es más empinada a la izquierda de f_m que a la derecha?
Las ramas por tramos de spreadingFunction() usan pendientes muy diferentes por debajo de cero (17·dz y (0.4Lm+6)·dz para dz negativo, es decir, por debajo del enmascarador) frente a por encima de cero (−17·dz y (0.15Lm−17)·dz para dz positivo), lo que codifica directamente el hallazgo real de la asimetría del enmascaramiento de que la falda de baja frecuencia de la curva cae mucho más abruptamente que la falda de alta frecuencia.
¿Por qué criticalBandwidthHz() devuelve un número mucho mayor a 4000 Hz que a 200 Hz?
criticalBandwidthHz(f) implementa la fórmula de Zwicker 25 + 75·(1+1.4·(f/1000)²)^0.69, cuyo término (f/1000)² crece cuadráticamente, por lo que las bandas críticas se ensanchan bruscamente a frecuencias centrales más altas — por eso la escala de Bark comprime las frecuencias altas en relación con los Hz, empaquetando muchos kHz en cada unidad de Bark por encima de unos pocos kHz.
¿Por qué bajar L_p hasta 0 dB nunca hace que el Estado muestre otra cosa que "Enmascarado" cerca del enmascarador?
maskedThresholdAt() siempre devuelve al menos quietThreshold(f_p) incluso cuando la contribución de propagación del enmascarador es negativa, así que el Estado solo puede leerse como "Audible" una vez que L_p supera el mayor entre el umbral de silencio o la curva del enmascarador — bajar L_p solo hace mayor la brecha hasta ese suelo, no reduce el suelo en sí.
Un tono fuerte eleva el umbral auditivo de las frecuencias cercanas, ocultando sonidos más suaves bajo una curva de enmascaramiento — el mismo principio que explota la compresión MP3 para descartar datos inaudibles.
2D · HTML5 Canvas 2D · objetivo 60 FPS · se ejecuta totalmente en el navegador, sin instalación