MG-IV: Taller de ecualización. ATC SCM 12

Imprescindibles si queremos que las creaciones HUM tengan calidad y sentido.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

MG-IV: Taller de ecualización. ATC SCM 12

Mensaje por wynton »

Hola a todos,

voy a comentar por entregas las actividades que se realizaron durante el sabado en el taller de ecualización. La idea es ir repasando lo que se hizo y profundizar en como se hizo.

El taller consistió en la ecualización de diferentes cajas empleando un filtro generado mediante el conjunto de programas DRC, basado en una medida a micrófono en la zona de escucha, y aplicado mediante el programa de convolución Brutefir. Una vez preparado el filtro se realizaron pruebas de escucha comparativa "sistema con filtro" frente a "sistema sin filtro", con ajuste manual de niveles y posibilidad de conmutación instantanea.

Voy a iniciar la presentación por las medidas y los ajustes efectuados a unas cajas que se convirtieron, casi sin querer, en la "referencia" (a veces para bien, a veces para mal) de la reunión:

ATC SCM 12

http://matrixhifi.com/foro/viewtopic.ph ... sc&start=0

El equipo en este caso consitió en:

- Reproductor de CD Wadia. No recuerdo el modelo. Conectado en salida digital coaxial S/PDIF a:

- Tarjeta de sonido Terratec Phase 26 trabajando en modo 2 entradas/6 salidas 48 KHz/16 bits, conectado por usb a:

- Portatil Fujitsu-Siemens Amilo Pro V2060
http://www.fujitsu-siemens.com/sme/prod ... ition.html ) Sistema Operativo: GNU/Linux Debian etch con kernel 2.6.16 tunizado a realtime-preemption con los parches de Ingo Molnar.

- Cuatro canales de salida de la tarjeta de sonido conectados a una mesa de mezclas Yamaha MG 12/4. Dos canales van ecualizados (derecho/izquierdo) y dos sin ecualizar (derecho/izquierdo).

- La salida de la mesa de mezclas conectada a una etapa de potencia Yamaha P-3500-S que alimentaba las cajas ATC.

- Sistema de medida mediante micrófono ECM8000 y previo de micro con alimentación phantom Samsom S-Mix

El sistema de gestión de sonido en el portatil era jackd version 0.100.0 trabajando a 44.1 KHz, con 17 ms de latencia (tres buffers de 256 frames).


La medida se realizó ubicando el micrófono ligeramente delante de la posición principal de escucha, centrada con respecto a las cajas. Cada respuesta impulsiva de cada caja se midió separadamente y se aplicó un filtro distinto a cada canal. El sweep de medida fue de 20 segundos en un rango de frecuencias de 20 Hz a 20 KHz. Como sistema de grabación del sweep se empleo ardour

Sobre sweeps, setup para medidas y generación de la respuesta impulsiva se ha hablado extensamente en:

http://www.matrixhifi.com/foro/viewtopic.php?t=1037

Así que paso directamente a mostrar los espectros en frecuencia de las medidas para cada caja (click en las gráficas para ver su versión agrandada):

Izquierdo:
Imagen

Derecho:
Imagen

Estas gráficas están generadas mediante unos scripts para octave basados en los que incluye el paquete de software DRC. Si alguien quiere una copia que me lo comente por privado y se los envio sin problema.
En cada caso las gráficas superiores son los espectros sin suavizar y las gráficas inferiores son los espectros suavizados y con una aplicación de ventana de tiempo variables en bandas de frecuencia.

La primera sorpresa de algunos de los presentes en el taller fue que cada caja acústicamente medía distinto. Es lo habitual, dado que una disposición acústicamente simétrica es casi imposible de conseguir. Y por eso estas técnicas de ecualización funcionan mejor midiendo y ajustando un filtro independiente para cada canal. Otra sorpresa para algunos puede ser lo lejos de respuesta plana +/- 3 dB que tenemos en todo el rango de frecuencias de audio. Esto también es lo normal. Hay que tener en cuenta que, dada la ubicación del micrófono, se está midiendo tanto la interacción de la sala (de eso se trata) como las características de respuesta de la caja.

A oido lo principal que recuerdo es que había un desequilibrio en agudos (apagados) con estas cajas, aunque este comentario "subjetivo" es, muchas veces, dificil de cuantificar: ¿Qué banda es la que entendemos por agudos? Pongo un ejemplo: los platillos de una bateria, ¿cuanto de agudos son?

Para terminar este primer post voy a incluir, solo para el canal derecho, la respuesta a impulso, la ETC, la fase, el retardo de grupo (suavizado) y la respuesta a escalón. Sobre este canal vamos a ver cuales son los pasos que con DRC se van a dar para generar un filtro y cual es su resultado:

Respuesta a impulso:
Imagen

Envolvente del impulso (ETC), en lineal y en decibelios:
Imagen

Diagrama de fase tras un suavizado análogo al del espectro:
Imagen

Retardo de grupo (centrado en el pico del impulso como t=0):
Imagen

Respuesta a escalón:
Imagen

Todo este desfile de gráficas iremos viendo como se va transformando según generamos el filtro por DRC.

Continuará.

* NOTA: Todo el software empleado en el taller es software libre, a disposición gratuita de quién lo quiera. Algunos de estos programas, además de funcionar en GNU/Linux, tienen versión para Windows.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Una vez que tenemos la medida con la que generar el filtro inverso, vamos a ir analizando por qué etapas pasa esta señal hasta alcanzar el objetivo deseado.

Lo primero es recortar la entrada hasta obtener una muestra utilizable. Dado que el producto final es un filtro a emplear por convolución, su longitud no será superior a 65536 muestras (1.48 segundos a 44100 Hz de muestreo digital), o a lo sumo 131072 (2.9 segundos). Para esto no es lógico emplear 20 segundos de medida, así como tampoco tiene sentido analizar la señal tan lejana cuando el campo reverberante más aberrante en una sala normal dificilmente va a superar los 1.5 segundos (aunque nunca se sabe donde puede aparecer la sorpresa).
Si examinamos la evaluación de la función impulso obtenida a partir del sweep grabado, vemos que son 45 segundos de señal de la cual solo nos interesa para nuestros fines una pequeña fracción.

Imagen

Para realizar esta tarea de selección está la primera etapa de DRC, cuya configuración en este caso ha sido:

# BC = Base Configuration
BCInFile = impulse.pcm
BCSampleRate = 44100
BCInFileType = F
BCImpulseCenterMode = A
BCImpulseCenter = 0
BCInitWindow = 65536
BCPreWindowLen = 256
BCPreWindowGap = 192
BCNormFactor = 0.0
BCNormType = E

Aqui le indicamos al programa donde están los datos de partida (BCInFile), su formato (BCInFileType = F significa 32 bits coma flotante)y su tasa de muestreo (44100 Hz).
Además le vamos a pedir que tome una ventana de tamaño 65536 muestras, centrada en el punto donde se localice el máximo de señal y que sea el programa el que busque automáticamente ese punto (BCImpulseCenterMode = A y BCImpulseCenter = 0).
La parte de la señal que nos interesa (que contiene la información acústica) es primordialmente la parte posterior a la llegada del impulso principal, pero no conviene eliminar del todo el ruido previo a la llegada de ese pico, por eso definimos un BCPreWindowLen de 256 muestras anteriores al pico y empleamos un BCPreWindowGap de 192 muestras.

En definitiva (una imagen vale por mil palabras), la señal con la que DRC va a trabajar es esta:

Imagen

Donde podemos apreciar el centrado de la señal en torno a su pico y la eliminación del ruido pre-impulso (salvo en la pequeña ventana configurada).

Esta parametrización de la etapa "BC = Base Configuration" es bastante usual. Aquí no se encuentra el "truco de la receta".

Una vez recortada la muestra de trabajo comienzan las transformaciones.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Ahora comiezan los "problemas". La siguiente etapa " HD = Homomorphic Deconvolution" es tan enrevesada como su nombre (incomprensible) indica. Se trata de tomar la señal y dividirla en dos partes: una de fase mínima y otra con el resto (o morralla) que finamente denominamos de exceso de fase.
La configuración de esta etapa solo maneja un parámetro, el resto es pedirle a DRC que guarde en ficheros el resultado de la operación para poder analizarlos.

# HD = Homomorphic Deconvolution
HDMultExponent = 3

HDMPNormFactor = 1.0
HDMPNormType = E
HDMPOutFile = rmp.pcm
HDMPOutFileType = F

HDEPNormFactor = 1.0
HDEPNormType = E
HDEPOutFile = rep.pcm
HDEPOutFileType = F

HDMultExponent indica la longitud de las tramas de fase mínima (rmp) y de exceso de fase (rep), que será BCInitWindow * (2 ^ HDMultExponent). En nuestro caso será 65536*2^3=65536*8. Es decir, el tamaño de las componentes extraidas es ocho veces mayor que la señal de entrada. Esto se hace buscando una adecuada precisión en la deconvolución que se va a aplicar en la "homomorphic deconvolution".

¿Que es lo que se hace en esta etapa?. Otra vez (una más) vamos a ir a las imagenes y sobre ellas entenderemos lo que esta pasando.
A continuación muestro el espectro, la fase, el retardo de grupo y el impulso de la componente en fase mímina extraida:

Espectro (en rojo la fase mínima rmp, en azul el impulso original imp, las normalizaciones no coinciden y por eso hay un salto de nivel):

Imagen

Diagrama de fase suavizado:

Imagen

Retardo de grupo:

Imagen

Y respuesta a impulso (muy reveladora):

Imagen

La última gráfica, la respuesta a impulso, es concluyente: estamos ante una señal de fase mínima. El pico de la señal es la primera muestra distinta de cero, no hay señal previa. Esto concuerda con la explicación de lo que es un sistema de fase mínima en el dominio temporal:

http://en.wikipedia.org/wiki/Minimum_ph ... ime_domain

La energía queda concentrada de forma lo más próxima posible al inicio del impulso. Comparado este gráfico con el del impulso de la medida, en el primer post, vemos que la forma en los primeros milisegundos de señal cambia y ha desaparecido la marcada reflexión a 1.95 ms. La "forma en tiempo" con la cual la sala ha dispersado y reflejado la energía del altavoz ha cambiado al pasar a un modelo fase-mínima. No obstante, si miramos el espectro, vemos que son muy similares.

En efecto, la forma de extraer la fase mínima es buscar el impulso con espectro igual al de la señal pero que concentre su energía lo más posible. O lo que es lo mismo, que minimice el retardo de grupo. En el propio enlace a la wikipedia explican la propiedad en la que se basa el algoritmo que emplea Denis Sbragion en DRC:

http://en.wikipedia.org/wiki/Minimum_ph ... e_response

Por eso no nos va a extrañar la forma que presenta el espectro de la componente de exceso de fase, que junto con la componente de fase mínima componen la señal inicial.

Espectro de la componente de exceso de fase (rep):

Imagen

Como vemos (en la curva superior, donde no hay suavizado) no todo el espectro de la señal inicial es minimizable en fase (en retardo de grupo realmente); hay varias cancelaciones que tienen una marcada componente de exceso de fase.

¿Comentarios?
Última edición por wynton el Mar 09 May 2006 , 22:25, editado 2 veces en total.
Avatar de Usuario
Luismax
Site Admin
Site Admin
Mensajes: 7081
Registrado: Lun 03 Nov 2003 , 18:44
Ubicación: MatrixHell
Contactar:

Mensaje por Luismax »

Si el sr. wynton lo permite al final del artículo se puede poner un fotoreportaje de las cajas, sus tripas, los altavoces y las mediciones de impedancia y valores T/S del midwoofer que saqué.
Al final digo.
Y si recuerdo quien hizo las fotos
¿Alí fuiestes tu?. :?:
“No es señal de buena salud estar bien adaptado a una sociedad profundamente enferma”
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

luismax escribió: Y si recuerdo quien hizo las fotos
¿Alí fuiestes tu?. :?:
Fotos si que habrá. Pero es que no uso el emule. He hecho un intento de descarga pero ha resultado infructuoso. La lista de servidores que me pillé por ahí no engancha con nuestros fotógrafos.
Avatar de Usuario
luegotelodigo
Mensajes: 584
Registrado: Dom 21 Nov 2004 , 13:28
Ubicación: Graná

Mensaje por luegotelodigo »

Muchas gracias Wynton por el curro que te has pegado con la explicación, de parte de uno que no lo comprende del todo bien pero que hará un esfuerzo :wink:

Saludos
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

luegotelodigo escribió:Muchas gracias Wynton por el curro que te has pegado con la explicación, de parte de uno que no lo comprende del todo bien pero que hará un esfuerzo :wink:
Te confieso que yo tampoco lo comprendo bien del todo.

Por cierto, si los fotografos plasman algún momento selecto en este hilo se lo agradecería muchísimo. La mula cansa, la muy testaruda.
Avatar de Usuario
atcing
Mensajes: 9260
Registrado: Dom 13 Feb 2005 , 20:48

Mensaje por atcing »

Hola

Si vosotros con lo que sabéis no lo entendéis del todo imagínate los que prácticamente no tenemos ni idea :cry: :cry: :cry: ............. y ......... :roll: ........ se me ocurre meterme en el HUM :!: :oops: :oops: :oops: .................. :roll:............... que no me pase nada :lol: :lol: :lol:



Un saludete
Avatar de Usuario
luegotelodigo
Mensajes: 584
Registrado: Dom 21 Nov 2004 , 13:28
Ubicación: Graná

Mensaje por luegotelodigo »

Atcing, tú tranquilo que se pueden hacer cajas acojonantes sin tener ni puta idea, y además es divertidísimo.
Avatar de Usuario
atcing
Mensajes: 9260
Registrado: Dom 13 Feb 2005 , 20:48

Mensaje por atcing »

Hola

Wynton dijo:
Otra sorpresa para algunos puede ser lo lejos de respuesta plana +/- 3 dB que tenemos en todo el rango de frecuencias de audio. Esto también es lo normal. Hay que tener en cuenta que, dada la ubicación del micrófono, se está midiendo tanto la interacción de la sala (de eso se trata) como las características de respuesta de la caja.
Ahí está la clave, anda que se parecen en algo a las medidas que colgó Alf de dicha caja :!:

(A partir de ahora me refiero a cualquier caja)......... luego pasa lo de siempre: se escuchan en una sala que las deforma totalmente y hala :!: :!: :!: ya se critican que si suenan apagadas o demasiado brillantes, que le faltan graves o le sobran, etc :x :x :x ......... :roll: ....... más adelante las escuchas en otra sala diferente y te suenan todo lo contrario :shock: :shock: :shock: je,je,je :lol: . Entonces.......hum...... en que quedamos :?: :!: , serían buenas o no :?: :!: ........a claro, dependiendo de donde las hayas escuchado te parecerán unas buenas cajas o unas malas cajas, no? :twisted: je,je,je :lol: :wink:


Un saludete


P.D.: Por eso soy tan pesado con la sala :oops:



luegotelodigo, gracias por tu apoyo moral :oops: seguro que me sale un churro me sale :oops: je,je,je :lol: pero pasar, me lo pasaré en grande, de eso estoy seguro :wink:
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Esta muy bien contado. Felicitaciones.

No me entero bien.

¿El impulso esta centrado con la mitad borrada?

¿El fragmento de impulso comienza con 256 muestras de las cuales 192 están borradas y el resto es del impulso hasta 65536?

¿Se hace la función inversa de la respuesta de fase mínima o se suaviza previamente?
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

luisggarcia escribió: ¿El impulso esta centrado con la mitad borrada?

¿El fragmento de impulso comienza con 256 muestras de las cuales 192 están borradas y el resto es del impulso hasta 65536?
Otra vez una imagen vale por mil palabras (click para agrandar):

Imagen

Arriba está el impulso recortado por el programa DRC en su fase BC (Base Configuration). Abajo está el impulso tal cual ha sido procesado (44 segundos de duración). Los picos han sido alineado y la escala es en muestras. En sombreado está el rango desde que alguna muestra de la señal de arriba deja de ser cero hasta el pico máximo (en este caso es mínimo porque es negativo; máximo en valor absoluto). Son 256 muestras. El pico está en 32768, que es justo la mitad del tamaño del impulso procesado. La ventana de 192 muestras se selecciona para que al recortar no tengamos un salto brusco de cero a -60 dB, que es lo que pasaría si se tomara la trama original que aparece sombreada abajo.
La ventana empleada en esas 192 muestras es una Blackman.

La parte final (por la derecha) del impulso recortado no se suaviza mediante ventana. Y eso es porque la parte realmente crítica de los dos extremos es la previa al pico del impulso: ahí está la inercia de los altavoces y ahí es donde los efectos digitales asociados al preringing pueden ser problematicos.

¿Cual es la extensión temporal acústica que se va a emplear para generar el filtro final? 32768 muestras que a 44100 Hz son 740 milisegundos. Es importante conocer sobre que sala estamos trabajando para seleccionar un tamaño de impulso correcto, aunque 740 milisegundos es bastante en términos de corrección digital. Una sala muy reverberante quizás requiera de más muestras pero seguramente la corrección digital suene más artificial. La máxima a tener en mente es: "shit in/shit out" y las herramientas que nos protegen de la gran cagada son dos: "ensayo/error" y "sentido común".
luisggarcia escribió: ¿Se hace la función inversa de la respuesta de fase mínima o se suaviza previamente?
Demasiada prisa, pero verás la respuesta.

Lo que si quiero aclarar, antes de que se pierda el enfoque, es que estoy explicando UN algoritmo. Puede haber más, se pueden hacer cosas distintas y de formas distintas. Simplemente DRC es así por decisión de su desarrollador.

Siempre es posible partir de las piezas de código que conforman el puzzle DRC y ensamblarlas de formas distintas y generar un sistema de evaluación de filtros diferente. Para ello hay que conocer cada pieza y su efecto antes de imaginarse una nueva combinación del puzzle.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

La siguiente fase va a dar lugar a un gran cambio en la señal tratada, concretamente en la parte de fase mínima que hemos extraido. Esta fase se denomina MP = Minimum phase band windowing stage.
En ella vamos a tomar la parte de fase mínima y le vamos a aplicar una ventana de tiempo variable por bandas de frecuencia. El detalle de la configuración empleada en el taller es esta:

# MP = Minimum phase band windowing stage
MPPrefilterType = s
MPPrefilterFctn = B
MPWindowGap = 44
MPLowerWindow = 65536 # 740 ms aprox. a 44100
MPUpperWindow = 88 # 0.5 ms
MPStartFreq = 20
MPEndFreq = 20000
MPFilterLen = 4096 # valor reducido sobre el típico de 24575
MPFSharpness = 0.25
MPBandSplit = 6
MPWindowExponent = 0.8
MPHDRecover = Y
MPEPPreserve = Y
MPHDMultExponent = 3
MPPFFinalWindow = 0
MPPFNormFactor = 0.0
MPPFNormType = E
MPPFOutFile = rmppf.pcm
MPPFOutFileType = F

El número de parámetros aquí es excesivo para una explicación detallada y concisa a la vez. Voy a comentar los principales y el resto están explicados en el manual de DRC. Lo que estamos pidiendo en esta etapa es que la señal de fase mínima se filtre en 1/6 de octava (MPBandSplit). Este filtrado en frecuencia irá de 20 Hz (MPStartFreq) a 20 KHz (MPEndFreq), lo que, junto con el parámetro anterior, dará lugar a 60 bandas de filtrado. Para 20 Hz se van a tomar unos 740 milisegundos de señal (MPLowerWindow) y para 20 KHz van a ser 0.5 ms (MPUpperWindow). Entre ambos puntos vamos a generar ventanas interpolando mediante la ecuación:

W = 1/ A*(F+Q)^WE

Donde W es la longitud temporal de la ventana, F es la frecuencia (normalizada a la frecuencia de muestreo), A y Q se ajustan para que las ventanas en 20 Hz y en 20 KHz resulten ser del tamaño pedido y WE es el factor MPWindowExponent. Este factor es de gran relevancia porque junto con las ventanas inicial y final hacen la tarea de contrapesar la respuesta directa de la caja de altavoces y la respuesta, retrasada en el tiempo, de las reflexiones de sala. Y este contrapeso no debe equilibrarse solo mediante criterios de "medida perfecta" (que también) sino mediante la incorporación de criterios de "ensayo de escucha". Es decir, por una vez, la prueba subjetiva es clave para entender si el ajuste previo a la generación del filtro es correcta. Esto requiere ensayos, pruebas con filtros diversos para analizar a oido "efectos" y "relaciones causa/efecto". Y requiere una escucha crítica con el trabajo propio.

Otra vez vamos a verlo mucho más claro con gráficas. Este es un waterfall de la rmp (respuesta de fase mínima) obtenido mediante la función specgram de octave. Se muestra el rango 20 Hz a 1 KHz:

Imagen

Aqui podemos apreciar como la sala hace resonar la señal emitida por el altavoz de modo variable con la frecuencia: como es de esperar la respuesta en graves se extiendo más que la respuesta a 1 KHz. Pues bien, DRC, cuando pasa por esta sección del calculo nos ofrece la siguiente información:

Minimum phase component single side sliding lowpass prefiltering.
Input signal prewindowing.
R - Initial lowpass convolution...
R - Band: 0, 20.0 Hz, width: 32768, FIR, convolution...
R - Band: 1, 22.4 Hz, width: 25229, FIR, convolution...
R - Band: 2, 25.2 Hz, width: 20054, FIR, convolution...
R - Band: 3, 28.3 Hz, width: 16302, FIR, convolution...
R - Band: 4, 31.7 Hz, width: 13475, FIR, convolution...
R - Band: 5, 35.6 Hz, width: 11281, FIR, convolution...
R - Band: 6, 40.0 Hz, width: 9539, FIR, convolution...
R - Band: 7, 44.9 Hz, width: 8131, FIR, convolution...
R - Band: 8, 50.4 Hz, width: 6977, FIR, convolution...
R - Band: 9, 56.6 Hz, width: 6019, FIR, convolution...
R - Band: 10, 63.5 Hz, width: 5216, FIR, convolution...
R - Band: 11, 71.3 Hz, width: 4538, FIR, convolution...
R - Band: 12, 80.0 Hz, width: 3961, FIR, convolution...
R - Band: 13, 89.8 Hz, width: 3467, FIR, convolution...
R - Band: 14, 100.8 Hz, width: 3042, FIR, convolution...
R - Band: 15, 113.2 Hz, width: 2675, FIR, convolution...
R - Band: 16, 127.0 Hz, width: 2357, FIR, convolution...
R - Band: 17, 142.6 Hz, width: 2080, FIR, convolution...
R - Band: 18, 160.0 Hz, width: 1839, FIR, convolution...
R - Band: 19, 179.6 Hz, width: 1628, FIR, convolution...
R - Band: 20, 201.7 Hz, width: 1442, FIR, convolution...
R - Band: 21, 226.3 Hz, width: 1280, FIR, convolution...
R - Band: 22, 254.1 Hz, width: 1137, FIR, convolution...
R - Band: 23, 285.2 Hz, width: 1011, FIR, convolution...
R - Band: 24, 320.1 Hz, width: 900, FIR, convolution...
R - Band: 25, 359.3 Hz, width: 802, FIR, convolution...
R - Band: 26, 403.4 Hz, width: 715, FIR, convolution...
R - Band: 27, 453.1 Hz, width: 638, FIR, convolution...
R - Band: 28, 508.7 Hz, width: 570, FIR, convolution...
R - Band: 29, 570.9 Hz, width: 510, FIR, convolution...
R - Band: 30, 640.4 Hz, width: 457, FIR, convolution...
R - Band: 31, 720.1 Hz, width: 409, FIR, convolution...
R - Band: 32, 808.5 Hz, width: 367, FIR, convolution...
R - Band: 33, 907.0 Hz, width: 330, FIR, convolution...
R - Band: 34, 1017.9 Hz, width: 297, FIR, convolution...
R - Band: 35, 1140.8 Hz, width: 268, FIR, convolution...
R - Band: 36, 1285.7 Hz, width: 241, FIR, convolution...
R - Band: 37, 1442.0 Hz, width: 218, FIR, convolution...
R - Band: 38, 1612.8 Hz, width: 198, FIR, convolution...
R - Band: 39, 1817.8 Hz, width: 179, FIR, convolution...
R - Band: 40, 2036.1 Hz, width: 163, FIR, convolution...
R - Band: 41, 2294.7 Hz, width: 148, FIR, convolution...
R - Band: 42, 2578.9 Hz, width: 135, FIR, convolution...
R - Band: 43, 2881.2 Hz, width: 124, FIR, convolution...
R - Band: 44, 3264.2 Hz, width: 113, FIR, convolution...
R - Band: 45, 3663.0 Hz, width: 104, FIR, convolution...
R - Band: 46, 4109.5 Hz, width: 96, FIR, convolution...
R - Band: 47, 4600.6 Hz, width: 89, FIR, convolution...
R - Band: 48, 5125.9 Hz, width: 83, FIR, convolution...
R - Band: 49, 5787.1 Hz, width: 77, FIR, convolution...
R - Band: 50, 6484.5 Hz, width: 72, FIR, convolution...
R - Band: 51, 7373.3 Hz, width: 67, FIR, convolution...
R - Band: 52, 8281.9 Hz, width: 63, FIR, convolution...
R - Band: 53, 9125.5 Hz, width: 60, FIR, convolution...
R - Band: 54, 10560.2 Hz, width: 56, FIR, convolution...
R - Band: 55, 11972.4 Hz, width: 53, FIR, convolution...
R - Band: 56, 13144.4 Hz, width: 51, FIR, convolution...
R - Band: 57, 14571.2 Hz, width: 49, FIR, convolution...
R - Band: 58, 16345.7 Hz, width: 47, FIR, convolution...
R - Band: 59, 18612.8 Hz, width: 45, FIR, convolution...
F - Band: 60, 20000.0 Hz, width: 44, FIR, completed.
Final allpass convolution...

La anchura en muestras, si la dividimos entre 44100 Hz nos da los tiempos de filtrado por bandas. Si extraemos de la gráfica anterior qué información temporal se ha tomado y cual se ha rechazado nos queda esto:

Edito y corrijo el enlace del gráfico:
Imagen

La parte en blanco ha desaparecido. ¿Tiene efecto esto en el espectro resultante? ¿Es cuantificable? Ahora lo vemos.
Última edición por wynton el Jue 11 May 2006 , 7:21, editado 1 vez en total.
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Vaya, es que no has acabado. :D :D :D ¡Aun queda más!

Si no es mucho abusar, y aunque lo vas haciendo, me interesa mucho saber cuando lo vas contando, que cosas son fijas, que cosas son opcionales pero recomendadas por los desarrolladores y cuales son decisiones tuyas. Más o menos lo vas haciendo, pero insisto porque me interesa mucho. Por ejemplo alguna decisión tuya basada en el tamaño de la sala o la reverberación como ya has contado. Y en esos casos que hay opciones, si puedes, comentar algunas otras que se podían haber tomado.

Siento no acabar de enterarme, pero insisto en preguntar. Y eso que no me he leído todavía lo que acabas de poner.

Tienes la respuesta impulsiva de 44 segundos obtenida indirectamente con barridos.

De esta has decidido, más o menos según la reverberación o tamaño de la sala, 740 milisegunndos. Detecta el programa el valor máximo y 256 muestras antes hace una subida suave de 192 muestras. No se si voy bien, pregunta:

¿El comienzo de esos 740 milisegundos es 256 muestras antes del punto máximo? ¿O el impulso está centrado en medio de los 740 milisegundos y es cero hasta 256 muestras antes del impulso?
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Pues sobre el espectro algo tiene que verse, porque es fácil comprobar que la parte eliminada (en blanco) de la señal de fase mínima filtrada (rmppf) contribuía. ¿Cuanto?

Imagen

Veamos la gráfica sin suavizar (la superior): Para empezar el propio proceso de filtrado con ventana variable en tiempo nos ha suavizado la señal (rmppf que es la curva azul). Es prácticamente idéntica suavizada (arriba) que sin suavizar (abajo), solamente cambia el nivel de detalle con el que se muestra la zona de graves (200 Hz para abajo, un asunto meramente "gráfico").
Asimismo comprobamos que los picos resonantes si son estrechos han desaparecido con el suavizado y si son anchos (baja frecuencia) se muestran atenuados. Esta atenuación es lógica, es el recorte de las colas temporales de las resonancias debido al propio proceso de aplicación de ventanas.
¿Como queda el espectrograma de la señal de fase mímina?

Imagen

Tras filtrar, el resultado presenta una componente de exceso de fase y hay un proceso posterior al filtrado que devuelve a rmppf a su condición de fase mínima. Esto se indica con el parametro MPHDRecover, que en el caso de configuración de DRC del taller está a Y.

La duda que nos asalta inmediatamente es ¿estamos realmente representando la respuesta acústica de la sala tal cual se midió? Porque parece que falta algo y que algo ha cambiado. Luego concretaremos estas dudas.
Última edición por wynton el Mié 03 Ene 2007 , 13:07, editado 2 veces en total.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

luisggarcia escribió: ¿El comienzo de esos 740 milisegundos es 256 muestras antes del punto máximo? ¿O el impulso está centrado en medio de los 740 milisegundos y es cero hasta 256 muestras antes del impulso?
La extracción es de 65536 muestras, que a 44100 muestras por segundo es 1.4861 segundos. El pico está justo en el centro, luego hay 0.746 segundos posteriores a la llegada de este pico y 256/44100= 5.8 milisegundos previos. Desde las 256 preivas hasta el punto inicial, 32768 muestras antes del pico, hay ceros puestos "a piñon".
Esos 5.8 milisegundos previos se suavizan para que cuando se haga FFT para pasar al dominio de la frecuencia no haya "artefactos".

Sobre qué y donde tocar hablaremos con detalle más adelante (este taller va a llevar mucho tiempo, ya lo creo, es solo cuestión de paciencia). Pero hasta ahora en la extracción de la señal hay poco margen para una sala pequeña como era la del taller de Molingordo. La etapa de descomposición fase mínima/exceso de fase es casi "a piñon" y en esta etapa de prefiltrado de la señal de fase mínima hay cocina para rato. En este punto está una de las claves para que "se pase/no se pase <<el punto>>". Repito el argumento: al meter ventanas para descartar señal estamos reequilibrando la relación de fuentes sonoras caja/sala en la señal que vamos a invertir/filtrar. A modo simple se puede adelantar que de la señal original a la que vamos a invertir media "un mundo" y de la invertida al filtro final también hay cocina para rato. Incluso se podría decir que el objetivo de tanta transformación es "generar un filtro imperfecto", que recoja un compromiso entre la precisión matemática y la realidad de la psicoacústica y la barbaridad de que estamos haciendo pasar como modelo acústico de sala una simple medida puntual a micrófono. Y eso es muy importante porque hay que extraer de la medida no lo perfecto, sino lo relevante. Extraer, a modo cirujano, una simplificación que sirva. Porque la complejidad no sirve.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Sensibilidad del filtrado a sus parámetros básicos.

1- Cambio del tamaño de los filtros de 4096 a 32767 muestras (largísssimos).

Con 4096.

Imagen

Con 32767.

Imagen

Afecta ligeramente (muy ligeramente) en graves. Yo diría: una variable menos.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Efecto de pasar el factor MPWindowExponent de 0.8 a 1.2. Es equivalente a introducir bastante más peso de la sala en la señal rmppf, especialmente en medios, porque las ventanas a 20 Hz y a 20 KHz quedan intactas.

Imagen

El espectro a comparar es el superior, sin filtrar. Podemos ver como ahora, aunque la forma del perfil sea semejante, en medios-agudos hay más rizado. Han entrado más reflexiones de sala y aquí ocurrirán dos cosas:

1- Esas reflexiones son muy dependientes de la ubicación del micrófono. Casí podriamos decir que estamos dejando que el azar entre a formar parte del filtro.

2- Al invertir esta señal vamos a encontrarnos con picos marcados en medios en el filtro. Por ejemplo, la inversión de las cancelaciones entre 1 KHz y 3 KHz van a provocar que la música se coloree cuando pase por esas bandas estrechas de frecuencia. Típica manera de hacerlo destacar es un tema de trompeta, trombón, saxo soprano. Va a sonar coloreado y con un nivel sonoro fluctuante con el cambio de nota. ¿Y porque va a sonar así si a micrófono podríamos comprobar que con un filtro generado a partir de esta señal la respuesta puntual es plana-plana-plana? Pues por sicoacústica básica: tenemos dos oidos y estamos tratando picos muy dependientes de la posición. Luego estaremos percibiendo un coloreado artíficial típico de sobreecualización digital.

Quien no se lo crea que haga el experimento.

Este factor, que aparece en los sucesivos filtrados que se van a hacer, es uno de los que más influyen en el resultado. Y además es personalizable para cada tipo de sala. Yo personalmente me quedo con 0.7 a 0.8, aunque en salas acondicionadas acústicamente se pueda bajar (no lo sé) y en salas grandes y distancias grandes al micrófono quizás se deba subir. Pero es el ensayo/error y el análisis de gráficas el que nos lo dirá.
Rafax
Mensajes: 74
Registrado: Mar 13 Dic 2005 , 23:00

Mensaje por Rafax »

wynton escribió:......
Sobre qué y donde tocar hablaremos con detalle más adelante (este taller va a llevar mucho tiempo, ya lo creo, es solo cuestión de paciencia). Pero hasta ahora en la extracción de la señal hay poco margen para una sala pequeña como era la del taller de Molingordo. La etapa de descomposición fase mínima/exceso de fase es casi "a piñon" y en esta etapa de prefiltrado de la señal de fase mínima hay cocina para rato. En este punto está una de las claves para que "se pase/no se pase <<el punto>>". Repito el argumento: al meter ventanas para descartar señal estamos reequilibrando la relación de fuentes sonoras caja/sala en la señal que vamos a invertir/filtrar. A modo simple se puede adelantar que de la señal original a la que vamos a invertir media "un mundo" y de la invertida al filtro final también hay cocina para rato. Incluso se podría decir que el objetivo de tanta transformación es "generar un filtro imperfecto", que recoja un compromiso entre la precisión matemática y la realidad de la psicoacústica y la barbaridad de que estamos haciendo pasar como modelo acústico de sala una simple medida puntual a micrófono. Y eso es muy importante porque hay que extraer de la medida no lo perfecto, sino lo relevante. Extraer, a modo cirujano, una simplificación que sirva. Porque la complejidad no sirve.


:idea: :idea: :idea: :idea: :idea: :idea: :idea: :idea:
pozízeñó
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

Vuelta a leer la frase que Rafaex ha marcado en rojo, me da la impresión de que resulta incomprensible. Pero bueno, luego volveremos al tema una y otra vez.

Una vez filtrada en ventanas de tiempo la componente de fase mínima y vuelta a reconvertir a fase mínima, la siguiente etapa del cálculo se encarga de controlar, recortándolos, los valles provocados por cancelaciones, haciendo que no sean menores (más profundos) que un límite indicado.

Atenuar un pico en el espectro, en la zona de graves por ejemplo, es directo y medible su efecto directamente. Recuperar una cancelación no es tan directo; actuar con +3 dB dentro de una cancelación no nos garantiza medir con el micrófono +3 dB de diferencia. Esto se debe a la componente de exceso de fase, que es más acentuada en los valles. La sala nos amortigua parte de la ganancia introducida y el resultado puede ser que para recuperar 10 dB necesitemos introducir 15 dB. Esto puede dar lugar a resonancias audiblemente tan fuertes, o más, que las que queremos eliminar, con el consiguiente mayor coloreo del sonido. Aparte de poner en riesgo amplificador y altavoces si no disponemos, por el motivo que sea, de un headroom dinámico tan exigente.

Matemáticamente, según comenta en la documentación el autor de DRC, Denis Sbragion, las cancelaciones muy acentuadas dan lugar a problemas de estabilidad en el resultado de la inversión de la señal. Supongo que su advertencia estará en relación con el comentario anterior, pero aquí hay un punto sobre el que no tengo ni he visto un análisis concluyente.

http://drc-fir.sourceforge.net/doc/drc.html#htoc85

Una forma de controlar esta inestabilidad potencial es recortando la profundidad de los citados valles del espectro. Y este recorte es configurable. En el taller se empleó la siguiente configuración para esta etapa del cálculo (Dip Limiting):

# DL = Dip limiting stage
DLType = L
DLMinGain = 0.80 # -2.00 dB Min
DLStartFreq = 20
DLEndFreq = 800
DLStart = 0.70
DLMultExponent = 3

Es una configuración un tanto especial. Se trata de controlar las cancelaciones entre 20 Hz (DLStartFreq) y 800 Hz (DLEndFreq). El resto, de 800 Hz en adelante, han debido ser minimizadas, según mi opinión, en la fase anterior de filtrado en ventanas deslizantes.

Y el límite que se permite de profundidad de cancelaciones es de -2 dB sobre el valor RMS, exagerado según el criterio de Sbragion, que recomienda entre 0.1 (-20 dB) y 0.5 (-6 dB). Es una obsesión mía, seguramente un límite más suave de resultados parecidos o quizás mejores. En todo caso las cancelaciones de SPL por sala, o mejor dicho, su dificultad de control, es algo que me obsesiona y que prefiero cortar por lo sano antes de la inversión.

Si con un límite de tan solo 2 dB sobre la señal, permitimos el recorte en toda la banda audio (hasta 20 KHz), el algoritmo podría recortar, subiendo su nivel hasta los -2 dB, toda una banda en agudos entera, con el correspondiente efecto a la hora de generar el filtro. Estoy pensando en cajas o en acústicas que apaguen agudos (tweeter de caida pronunciada o medio acústico muy absorbente).

Es decir, en mi opinión, hay que controlar que este paso solo se aplique a las cancelaciones de SPL, aunque no hay problema en controlar el límite inferior de frecuencias. Esto es una declaración de intenciones: a mi me gusta ecualizar en agudos. Ya sé que hay otras opiniones al respecto y me parece interesante el debate que a veces surge sobre este punto.

Posterior a la inversión, veremos que hay otra etapa de recorte, está vez de máximos en el filtro generado, y con fines muy prácticos. Este método (el Dip Limiting) es un recorte de señal más concebido desde un punto de vista matématico o analítico y orientado a la etapa de inversión.

El resto de parámetros de esta etapa controlan que el proceso de recorte no sea brusco ni de lugar a más problemas de estabilidad de la inversión de los que pretende aminorar.

EL efecto de esta fase del cálculo, y de la siguiente, lo veremos cuando por fin tengamos el "modelo acústico" que vamos a invertir para ecualizar.
Responder