el DRC (Corrección Digital de Sala)

¿Qué es una bola de graves?, ¿por qué está el tweeter en la mitad superior de una caja?, ¿cómo hacer que nuestro equipo suene de verdad mejor?.
Todo aquello relacionado sobre la segunda cosa más importante de nuestro equipo.
Responder
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Si en lugar de la explosión reproducimos un chasquido pulso o Delta de Dirac por los altavoces y grabamos con el micrófono podemos ver respuesta impulsiva y en frecuencia conjunta de la habitación y equipo.

Vamos a suponer unos auriculares como sonido perfecto: habitación sin rebotes y altavoz con respuesta plana.

Y el empleo de un ecualizador en el que ponemos la respuesta en frecuencias del impulso o el inverso. Por ejemplo supongamos que escuchamos la explosión y tenemos 100 Hz a 2 db 1kHz a 1 db y 10kHz a 0,5 db.

Ecualizar una música igual a la explosión significa que las frecuencias de 100Hz. Las multiplicamos por 2 las de 1 kz las multiplicamos por 1 (las dejamos como están) y las de 10 kHz las multiplicamos por 0,5 o dividimos por 2 que es lo mismo.

Ecualizar una música con el filtro inverso supone dividir las frecuencias de 100 Hz de esa música por 2 las de 1 kHz las dejamos como están y las de 10 kHz las multiplicamos por dos.

Si escuchamos música por los auriculares ecualizando con la respuesta del pulso (explosión) en la habitación tendremos un sonido “similar al que escucharíamos en la habitación”.

Si escuchamos música en la habitación ecualizada con la inversa del impulso sería perfecto como en los auriculares.
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Veamos como es en PCM o audio digital esa explosión, chasquido o Delta de Dirac. Se trata de valor 0 excepto en un punto que tiene valor 1. El valor analógico que sale por el lector de CD no es un punto, si no un valor continuo en el tiempo y ondulado debido al filtro paso bajo y sería la línea azul.

Imagen

Se emplea este pulso porque en frecuencia contiene todas las frecuencias y todas al mismo nivel, es decir, que si producimos un chasquido o explosión y medimos el espectro, vemos una respuesta en frecuencia plana en nuestro sistema ideal.

Si no es respuesta plana, sabemos que tenemos que ecualizar subiendo o bajando las diferentes frecuencias para que sea plana.

La señal de audio digital además se puede considerar como una serie de Deltas de Dirac o pulsos a una velocidad de 44100 por segundo. Y la salida analógica sería la línea azul que es una línea suavizada por un filtro paso bajo que pasa por todos los puntos o Deltas de Dirac.

Imagen

Por eso, viendo lo que hace con una, podemos averiguar lo que va ha hacer con todas. Es lo mismo para cada una pero en mayor o menor amplitud e instante de tiempo.
Última edición por luisggarcia el Lun 27 Jun 2005 , 14:59, editado 1 vez en total.
Soundmuller

Practicando

Mensaje por Soundmuller »

Hola a todos:

Como leyendo todo parece muy fácil y comprensible me he puesto a practicar para ver todas estas cosillas que nos ha ido poniendo por aquí estos amigos.

Lo primero es fácil, o sea, generar el sweet.pcm, el inverse.pcm y el impulse.pcm y verlos en el Audacity. El hardware empleado es ECM8000, MobilePre, Athlon XP 2200 y equipo activo con el DCX 2496 más o menos bien ajustado. También he usado otro PC con K6 II a 400 Mhz y tuve que desistir por cosillas que contaré.

Bueno, las pegas empiezan cuando uso el K6II. Para practicar reproduje el sweet.pcm en el equipo, para ajustar niveles y tal. Luego se me ocurrió grabar el sweet.pcm con el micro y salió una cosa extraña. Por lo pronto, cada vez que el sistema “asentaba” los datos en el disco duro hacía un ruido de interferencia. A lo largo del sweet fueron 3 veces ese ruido.

Luego, la gráfica resultante, que se me borró con tanto cambilache de archivos, era como un chorizo de cantimpalo, es decir, en vez de una sola morcilla larga como el sweet original, era una sucesión de valles y bolas, principalmente al principio de la gráfica, en los graves. Inmediatamente lo relacioné con los modos de la sala, captada su influencia por el micro en la posición de escucha. Como éste pero mucho más acusado.


Imagen

El impulso salía tal que así.


Imagen

Así que visto lo visto, me fui por el PC grande y empecé de nuevo todo, generando los sweet y demás.

Una vez todo el hardware reinstalado y listo, vuelvo a grabar el sweet con el micrófono y ahora va y sale esto


Imagen

Con su gráfica de espectro siguiente. Esto me descuadra todo, pues la diferencia es clara con la anterior grabación. Pudiera ser achacable a la diferencia de potencia de los PC, que el K6 II no pueda con los datos que le llegan y los pinta como puede. Pero bueno, sigo con las prácticas.


Imagen

Ahora voy y genero el impulso con el sweet grabado y sale esto


Imagen

Con su gráfica de espectro.



Imagen

Si lo reproduzco y la grabo, para ver qué recoge el micro pues esto es lo que graba, la gráfica inferior de las dos, la de arriba es la original.



Imagen

Si le doy a ver la gráfica inferior en formato de onda dB, pues aquí lo tenéis.



Imagen

:shock::shock::shock: Einnnnn, mandeeeeeee, me lo explica alguien. Eso tiene que ser así o hay algo que está mal hecho.

Porque, por ejemplo, se me ocurre pensar que el micro grabará todo lo que suene en la sala y claro, el pc hace ruido y estaba como a 1.5 m del micro. Además el canario que estaba en el patio no paraba de trinar, jejejeje y algo se escucha en la sala (obviamente se llama Pavaroti)

Como habéis obtenido esas gráficas, Wyn y Mentero, sobre los impulsos en la sala con las reflexiones de la sala. Quizás es que hay que ajustar otros parámetros o de otra forma.

Con la función Impulse del Smaart si las obtengo, más o menos similares, pero con este programa, ya veis lo que sale.

Bueno, ahora que estoy viendo ese tema con más interés y profundidad (superficial, todo hay que decirlo) me parece que lo que se pretende conseguir con el DRC es más o menos los mismo que se hace con la Auralización ¿no? Es que el programa CARA tiene esa función, solo que teórica, pues en virtud de cómo se modele la habitación te crea una curva de ecualización que se aplica a un archivo wav y, supuestamente, te corrige el sonido para que suene en función de la acústica de la sala. Lamentablemente, nunca he probado en serio esa función.

Un saludo a todos.

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

Re: Practicando

Mensaje por wynton »

Hola José Luis,
soundmuller escribió: Como leyendo todo parece muy fácil y comprensible me he puesto a practicar para ver todas estas cosillas que nos ha ido poniendo por aquí estos amigos.
si si si si, que liantes somos, ¡¡¡jejejejeje!!!!

Ahora en serio, el sistema es fácil. Lástima que equivocarse la primera vez sea aún más fácil.
La parte complicada del asunto, aunque suene raro, está en el cableado y ajuste de niveles. Demasiados cables, demasiados potenciometros.. La parte software es mucho más sencilla.

Quizás un K6 o PII sea poca potencia de proceso para una tarjeta de sonido trabajando en duplex (graba y reproduce a la vez), o que, con el paso del tiempo, su hardware asociado (un disco duro "veterano" por ejemplo) nos falla en los mejores momentos, como debe ser.
soundmuller escribió: Imagen

El impulso salía tal que así.


Imagen
Algo así es lo que debe salir. Aunque.... la "morcilla" de arriba la firmaba yo para mi casa. Te pongo cómo se ven la grabación a micrófono (arriba) y la grabación en bucle de la tarjeta de sonido, tal cual le gusta a lsconv.exe (izquierda microfono y derecha tarjeta). En la captura de pantalla se ve que he separado la pista estereo. Pero se grabó a la vez.

Imagen
soundmuller escribió:
Imagen
Por comparación visual me parece que no has capturado el microfono sino el canal del lazo de la tarjeta de sonido. Recuerda que le tienes que indicar a audacity en preferencias (Audio E/S) que quieres grabar estereo.

soundmuller escribió: Ahora voy y genero el impulso con el sweet grabado y sale esto

Imagen
Se ven claramente los picos de la distorsión armónica a la izquierda del pico de la delta de Dirac. Eso, según entiendo yo, es señal inequivoca de que no "has pasado" por el medio acústico. Cuando se recoge la señal del sweep con micrófono, la distancia "ruido de fondo" a "distorsión armónica", que podemos verla cómo lo bien marcados que están los picos de distorsión sobre el fondo de señal, es pequeña.

Te pongo cómo ejemplo la pantalla de la respuesta a impulso del canal izquierdo y del canal derecho de la grabación que te he puesto.

Imagen

Arriba está la grabación con el micrófono. Se pueden ver las distorsiones armónica de orden dos y tres. El resto está desaparecido bajo el ruido de fondo (el canario, ya sabes...)
Abajo vemos que el ruido de fondo es mucho menor en el canal de la tarjeta de sonido (lógico, menos mal) y se pueden contar distorsiones armónica de mayores ordenes.

Luego también vemos que arriba el pico de la delta no es simétrico sino que se "estira" hacia la derecha, hacía el lado donde tenemos la acústica de la sala. Abajo vemos una delta más simétrica, con el pre-ringing y el post-ringing más equilibrados.

Todo esto son signos "visuales" de lo que estamos haciendo.

Así que el diagnóstico es: repasa el cableado y la configuración de audacity.

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

Re: Practicando

Mensaje por wynton »

Y otro detalle. Cuanto más se parece la respuesta a impulso del sistema que estamos midiendo a una delta de Dirac más marcado es su pico.

Esto es muy interesante (a mi modo de ver) porque si tenemos en cuenta que, realmente, la energía transmitida es la misma en todos los casos, lo que vemos en el pico es la cantidad de energía sobre el total que se transmite o reproduce "en fase".

Es decir, que en la tarjeta de sonido el desfase que provoca en la señal es muy pequeño, frente al sistema cajas/sala, donde la energía se reparte mucho más fuera de fase "perfecta" y el pico se atenua alguna decena de decibelio tranquilamente.
soundmuller escribió: Si lo reproduzco y la grabo, para ver qué recoge el micro pues esto es lo que graba, la gráfica inferior de las dos, la de arriba es la original.



Imagen

Si le doy a ver la gráfica inferior en formato de onda dB, pues aquí lo tenéis.



Imagen

:shock::shock::shock: Einnnnn, mandeeeeeee, me lo explica alguien. Eso tiene que ser así o hay algo que está mal hecho.

Porque, por ejemplo, se me ocurre pensar que el micro grabará todo lo que suene en la sala y claro, el pc hace ruido y estaba como a 1.5 m del micro. Además el canario que estaba en el patio no paraba de trinar, jejejeje y algo se escucha en la sala (obviamente se llama Pavaroti)
Este experimento es muy interesante porque nos da una perspectiva de la potencia del sistema de los sweeps. Como comentaba Luis García, hay muchas formas de producir y grabar un impulso para obtener la respuesta del sistema. Ahora bien, para hacerlo de modo directo, en condiciones de bajo ruido de fondo y con una capacidad de producir resultados repetibles se necesita un equipazo de medida. Ahora si que se necesitaría un sistema de adquisición de señal con una baja latencia (tiempo hardware de respuesta del periférico) alucinante.

Lo que has hecho, José Luis, es de forma cutrilla pero muy didáctica, tratar de medir la respuesta a impulso sin artificios matemáticos de por medio. De "forma natural". Y no sale bien porque el ruido de fondo te pulveriza la grabación.

Aquí es donde se comprueba que la técnica de los sweeps es alucinantemente "listilla". No hace falta reproducir la señal a todo volumen (aunque sea mejor que se emita de forma "limpia"). El ruido de fondo te lo "coloca" a la izquierda de la delta con una operación matemática simple. Al igual que las distorsiones. Aparecen medidas de la distorsión de una limpieza flipante para una guarri-tarjeta de sonido.
Es decir, un uso inteligente de propiedades matemáticas de sobras conocidas, pero poco utilizadas hasta ahora por la necesidad de alta capacidad de cálculo, nos permite tener un sistema guapete de medida con medios domésticos simples. En ámbitos técnicos de hardware de alta calidad debe ser alucinante.
Invitado
Mensajes: 492
Registrado: Mar 23 Nov 2004 , 13:07
Ubicación: De baja de éste foro.

Mensaje por Invitado »

Hola,

Muy bueno Jose Luis, sí señor, no pensé que nadie se animase.

Es probable lo que dice win, que hayas grabado el canal que no es y además saturado de cojones, por que las distorsiones que te aparecen tampoco son normales y la relación señal ruido es mala.

¿Que unidades tienes en el eje y?. Igual ese es todo el problema.

Míra, ésta medida de un altavoz Eminence Alpha6 en el jorno cónico de casa, medido a 100dB y a un metro. Las distorsiones de segundo y tercer armónico y el ruido no se ven si no se hace zoom (y mucho) sobre el eje y.

Imagen

Imagen

Un abrazo
Miguel mentero
Soundmuller

Mensaje por Soundmuller »

Hola:

A ver para qué me meto yo en estos berenjenales.


Bueno, la conexión usada es esta de la foto, que ya conoceréis algunos.

Imagen

Efectivamente, tenía el Audacity para que grabara un canal, pero yo creo que estaba correctamente, pues graba lo que recoge el micro. Me parece que si las conexiones son correctas para el Smaartlive son correctas para el Audacity.

He probado a poner que grabe en estéreo y grabo el sweet. Obviamente solo graba un canal, es decir, un canal con una linea plana y otro con la morcilla.

Si genero ahora el impulse con esa grabacion.... pues lo que sale es como el inverse.pcm en medio de la pista de 45 seg, pero no sale el típico impulse.

O sea, creo que como lo tenía estaba bien, pues aunque las gráficas fueran "raras" al menos eran. Si aclaráis estas cosas mejor.

Lo que más o menos quiero entender es que para grabar el impulse con el micro el sonido tiene que ser "fuertecito" ¿no?. Ayer desde luego estaba bajito, nada de 100 db como dice Mentero. Incluso le puse la capucha al micro porque tenía puesto el ventilador del aire acondicionado y no fuera a grabar la brisa de aire... que seguro grabó.

Si es así ya lo sé para cuando pueda subir otra vez el Pc al ático..... Me pondré el casco de guerra y me liaré a tiros en la sala :lol: :lol:

Por cierto, si se quiere emplear globos para grabar, como se configura para el audacity.... se le da a grabar y punto y mientras graba se explota el globo.

Para disminuir el sonido de fondo qué se hace, ajustar niveles en el previo o software o me llevo el pc a otro sitio y amordazo al canario :roll: .

Miguel, claro que me animo.... si este sistema evita que construya algunos aditamentos acústicos para mi sala nueva.... me interesa.


Edito: Miguel, qué unidades en qué eje Y. No entiendo lo que me preguntas. Veo las gráficas que he puesto y eso es todo lo que sale, no sé donde mirar para decirte qué unidades hay. Probé a poner el límite en vez de 120 dB en menos y ese ruido de fondo desaparecía, pero no sé si eso era correcto hacerlo o no.

Venga, gracias por vuestra ayuda.

José Luis
RR
Mensajes: 370
Registrado: Jue 25 Nov 2004 , 21:55

Mensaje por RR »

Jose Luis, me parece que Miguel se refiere a que en tus gráficas el impulso está en escala de decibelios. Lo habitual es verlos en escala lineal, quizá por eso la confusión (si es que la ha habido)

Salu2,

R
RR
Mensajes: 370
Registrado: Jue 25 Nov 2004 , 21:55

5. IFFT y Convolución

Mensaje por RR »

Ya estamos aquí otra vez. Hoy, magia digital. Nos sacaremos un filtro digital de la chistera y revelaremos el truco.

Ese truco se llama, ni más ni menos, convolución.

Pero antes, terminaremos con la FFT , y una propiedad muy interesante que posee: Es inversible.

Hemos visto que puedo pasar, gracias a la FFT, de una señal en el dominio tiempo, es decir, una serie de valores de presión sonora en nuestro micro, de los que tomamos muestras, a su representación en el dominio de frecuencia, es decir, sus componentes simples senoidales en ese intervalo, y su fase correspondiente (no olvidemos esto).

Pues existe la operación que nos permite ir en sentido contrario, llamada, lógicamente, Transformada inversa de Fourier, o, en la versión discreta y rápida que nos interesa, IFFT, o Inverse Fast Fourier Transform.

Gracias a ella podemos tomar unos valores de respuesta en frecuencia y fase que nos interesen, situarlos en la escala de frecuencia adecuada, como vimos en el cap. 4, y ¡sintetizar la respuesta impulso!.

Mmmm... no noto que compartáis mi emoción... Pensaréis, ¿para qué demonios quiero yo una respuesta impulso que me de una cierta respuesta en frecuencia?

Es que esa respuesta impulso "sintética" ya es, directamente, mi filtro digital. Así de sencillo. Un filtro digital FIR no es más que la IFFT de su respuesta en frecuencia compleja (magnitud y fase). Como véis, el mago digital tiene el truco definitivo, puede hacer filtros con cualquier respuesta en frecuencia y fase, y manipular fase y frecuencia por separado (imposible con filtros analógicos). Sólo hay que diseñar la función objetivo, que corrija las deficiencias de nuestro sistema, representarla en una escala lineal de frecuencia con 2^n elementos, y obtener su IFFT.

En la práctica hay otros flequillos que ya iremos viendo, que tienen que ver con atenuación de ruido fuera de la banda pasante del filtro (más allá de sus frecuencias de corte) y con criterios sicoacústicos (cómo se oirán las manipulaciones que hacemos en la señal, pues ciertas correcciones pueden ser peores que el defecto original).

He llamado a estos filtros "filtros digitales FIR". FIR quiere decir Finite Impulse Response, es decir, respuesta impulso finita, es decir, respuesta impulso con una duración acotada en el tiempo, y esa duración es justamente la longitud de la respuesta impulso que hemos sintetizado con la IFFT, y que depende del número de puntos de frecuencia del que hayamos partido. Como vimos an el cap. 4, si queremos corregir los graves necesitaremos filtros FIR bastante largos.

¿Y cómo utilizo ese filtro FIR, qué hago con mi respuesta impulso sintetizada para que me sea útil? Hacer su convolución con la señal que quiero filtrar. Veamos lo que es eso.

Convolución

Voy a explicar la convolución de un modo gráfico. Suponed que tengo una señal musical que quiero filtrar, la he pasado al disco duro desde un CD de música. Esa señal es "S", y tiene unos valores s(1), s(2), s(3), etc.

Por otro lado, tengo mi filtro digital, que es otra señal más corta, supongamos, como en el cap., 4 que tiene 16 valores (voy a hacer por tanto un filtro de agudos ;-) ). Esta señal es "F", con valores f(1), f(2),..., f(15), f(16).

Y el resultado de mi filtrado es "R", de nuevo con valores r(1), r(2), r(3), etc.

Bien, el proceso es, primero, dar la vuelta a mi filtro (el principio pasa a ser el final). Así que lo que era f(16) pasa a ser f(1).

Los sitúo alineados en la primera muestra. Multiplico los valores que quedan unos encima de otros (s(1)*f(1), s(2)*f(2), hasta s(16)*f(16)). Sumo todos los valores que he obtenido de las multiplicaciones, y pongo esa suma en la primera muestra de mi resultado "R": Ya tengo r(1).

Ahora corro a la derecha una muestra mi filtro invertido, y repito el proceso. Multiplico los valores que quedan alineados unos encima de otros, sumo los resultados, y obtengo r(2).

Y así sucesivamente.

Los matemáticos llaman a esto un "promedio móvil". A mí me resulta más fácil imaginar el filtro como un "peine" de valores que voy deslizando por la señal original, y a medida que lo deslizo, voy multiplicando las "púas" del peine por el valor al que apuntan. Sumo todo, y deslizo otra vez. ¿se ve? A ver si un dibujo lo deja claro.


Imagen

Imagen

Si podemos hacer estas manipulaciones en el tiempo para hacer cambios en el dominio de frecuencia, es gracias a este teorema, que hay que recitar como un mantra, porque sobre él se apoya todo lo que estamos viendo:

Multiplicación en el dominio de frecuencia equivale a convolución en el dominio del tiempo

A ver, cómo va ese recitado, tiene que sonar un rumor como de monasterio tibetano, todos repitiendo por lo bajini.

Vale, suficiente, gracias ;-) Multiplicar en el dominio de frecuencia es corregir en frecuencia. Si a la respuesta de nuestro sistema altavoz-sala le sobran 5 dB a 200 Hz., por ejemplo, querremos multiplicar por una respuesta que tenga -5 dB a 200 hz, y sea plana (es decir, valga 1) en el resto de la banda. Si pasamos los dB a presión sonora, tendremos que el valor +5dB es 1.778 veces el valor a 0dB. El valor -5dB es 1/1.778 veces el valor a 0dB. Es evidente que al multiplicar uno por otro, el resultado es 1, es decir, respuesta plana.

Espero que haya quedado clara la idea de que al corregir multiplicamos respuestas en frecuencia. Pues bien, si sacamos, con la IFFT, el impulso que se corresponde a la curva de corrección, y hacemos la convolución con nuestra señal musical, el resultado tendrá sus frecuencias corregidas de acuerdo a a dicha curva (¡en magnitud y fase!).

Magia digital, ¿o no?

En esta dirección podéis profundizar más: http://es.wikipedia.org/wiki/Convoluci%C3%B3n

Ciertos programas pueden hacer este proceso en tiempo real. Los encontraréis como "convolvers" (¿convolvedores?), motores de convolución, y cosas así. Por ejemplo, brutefir (en linux), el plugin "convolver" de foobar (foobar es un "player" para windows), y el programa "ambiovolver", del profesor José Javier López, que creo que tiene alguna relación con matrix-hifi (creo haberle visto en alguna foto de Molingordo). Cada cual con sus pros y contras. Los filtros que generemos con DRC los ejecutaremos en alguno de estos programas, los "convolucionaremos" con nuestra música, para conseguir lo que se persigue: Escucharla mejor.

En la próxima entrega, hablaremos por encima de los filtros IIR, y de la idea de corrección "minimum-phase". Si alguien sabe la traducción correcta, si es que la hay, que hable ahora. Y también cuál es el verbo en castellano que corresponde a "convolución". Y, por favor, me inquieta que no haya más preguntas, ¿tan bien me explico?... ;-)

Luis ya ha explicado algo de lo de hoy, pero ya lo tenía escrito a falta del dibujito, así que va tal cual.
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Lo que pretendo es contar lo mismo que Roberto pero desde otro punto de vista a ver si entre lo práctico de Winton, lo teórico de Roberto y lo que me salga a mi se entera de algo el mayor número de personas.

Vamos a ver si nos enteramos de lo que es una convolución.

Reproducimos un pulso digital de valor 1 que en analógico con el filtro paso bajo del DAC será esta curva.

Imagen

Supongamos que si escuchamos el chasquido en unos auriculares es un chasquido perfecto, pero no en nuestra sala. Medimos la respuesta al impulso de altavoces y sala juntos que es:

Imagen

Supongamos que la escala en vez de 44100 muestras por segundo tenemos una muestra por segundo:

El pulso es en el segundo 3. Y la respuesta de este en la sala: 1 en el segundo 3, -0.5 en el segundo 4,0.5 en el 5, -0.2 en el 6, 0.2 en el 7 (me he equivocado pues en el dibujo es 0,3 pero no lo corrijo), -0.1 en el 8, 0.1 en el 9, resto 0.

Nos vamos a fabricar una máquina convolucionadora o filtro FIR.

Imagen

Guapa, ¿No? Es una máquina con casillas de memoria t+1 …. Donde nos vamos quedando con las muestras anteriores que pasan a cada segundo a la casilla siguiente.

Si metemos el pulso por esta máquina nos dará :
t + (-0.5*t-1) + (0.5*t-2) + (-0.2*t-3) + (0.2*t-4) + (-0.1*t-5) + (0.1*t-6) =1
En el segundo 3:
1 + (-0.5*0) + (0.5*0) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =1
En el segundo 4:
0 + (-0.5*1) + (0.5*0) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =-0.5
En el segundo 5:
0 + (-0.5*0) + (0.5*1) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =0.5
etc…

Es decir al pasar por la maquinita tenemos la respuesta al impulso de la sala.
Con este invento podremos escuchar por los auriculares el pulso o chasquido que escucharíamos en nuestra sala.
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Veamos como funciona el convolucionador con una señal digital de música.

Imagen

Pues el pulso de valor 1 en el segundo 3 ya sabemos lo que dará. A este le sumaremos una respuesta identica retardada un segundo y con una amplitud del doble porque el puso del segundo 4 tiene valor 2. Más otra respuesta retrasada dos segundos cinco veces mayor. Etc…

Pero en realidad no metemos cada pulso en el convolucionador por separado para sacar la respuesta si no que vamos haciendo lo de todos los pulsos a la vez y sale el mismo resultado

En el segundo 3:
1 + (-0.5*0) + (0.5*0) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =1
En el segundo 4:
2 + (-0.5*1) + (0.5*0) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =1.5
En el segundo 5:
5 + (-0.5*2) + (0.5*1) + (-0.2*0) + (0.2*0) + (-0.1*0) + (0.1*0) =4.5
En el segundo 6:
3 + (-0.5*5) + (0.5*2) + (-0.2*1) + (0.2*0) + (-0.1*0) + (0.1*0) =2.3
En el segundo 7:
2 + (-0.5*3) + (0.5*5) + (-0.2*2) + (0.2*1) + (-0.1*0) + (0.1*0) =2.8
En el segundo 8:
0 + (-0.5*2) + (0.5*3) + (-0.2*5) + (0.2*2) + (-0.1*1) + (0.1*0) =-0.2
En el segundo 9:
-1 + (-0.5*0) + (0.5*2) + (-0.2*3) + (0.2*5) + (-0.1*2) + (0.1*1) =0.3
etc….

Escucharíamos por los auriculares el mismo sonido que si estuviéramos en esa habitación con esos altavoces.

Imagen

Se trata de una Reverberación o eco por convolución y hoy en día se emplean y son las “reber” más avanzadas. Permiten grabar por ejemplo la respuesta al impuso de una iglesia y reproducir una música como si se estuviera escuchando en esa iglesia. Hace varios años técnicos de Sony se pasearon por las iglesias de Castilla-León grabando la respuesta al impulso de muchas iglesias. Para crear un banco de reverberaciones por convolución. Es una reber muy natural.
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Si pudiéramos convolucionar la respuesta al impulso de la sala con la respuesta al impulso de una sala “inversa” podríamos escuchar de nuevo por los auriculares el sonido original.

Lo denominaríamos un “anti-reber convolucional” o mejor Corrector Digital de sala en inglés DRC.

Sería en nuestro ejemplo algo así:

Imagen

el convolucionador será (esta vez no lo dibujo):
t + (0.5*t-1) + (-0.25*t-2) + (-0.175*t-3) + (0,1625*t-4) + (-0,10625*t-5)

Si pasamos por el la respuesta al impulso de la sala:

Imagen

En el segundo 3:
1 + (0.5*0) + (-0.25*0) + (-0.175*0) + (0,1625*0) + (-0,10625*0) =1
En el segundo 4:
-0,5 + (0.5*1) + (-0.25*0) + (-0.175*0) + (0,1625*0) + (-0,10625*0) =0
En el segundo 5:
0,5 + (0.5*-0,5) + (-0.25*1) + (-0.175*0) + (0,1625*0) + (-0,10625*0) =0
En el segundo 6:
-0,2 + (0.5*0,5) + (-0.25*-0,5) + (-0.175*1) + (0,1625*0) + (-0,10625*0) =0
En el segundo 7:
0,3 + (0.5*-0,2) + (-0.25*0,5) + (-0.175*-0,5) + (0,1625*1) + (-0,10625*0) =0
En el segundo 8:
-0,1 + (0.5*0,3) + (-0.25*-0,2) + (-0.175*0,5) + (0,1625*-0,5) + (-0,10625*1) =0
etc.. pues sería más largo de lo representado.

Es decir, si a una respuesta impulsiva de la sala, la convolucionamos con la
“inversa de su respuesta impulsiva” obtenemos una señal ideal o Delta de Dirac.

Imagen

En frecuencia esta segunda respuesta impulsiva sería la inversa a la respuesta en frecuencia de la primera de forma que si multiplicamos las dos respuestas en frecuencia entre si, (mezclamos las dos curvas de ecualización), la respuesta en frecuencia resultante sería plana.

Pero ¿cómo obtener esa fórmula mágica?

Volvemos a Fourier y sus transformadas. Gracias a sus fórmulas matemáticas, de cualquier respuesta temporal, podemos saber su respuesta en frecuencia y de cualquier respuesta en frecuencia, podemos saber su respuesta impulsiva temporal. Y a poco que cumplamos ciertas condiciones podemos hacer los cálculos rápido: FFT y IFFT.

Si de una respuesta impulsiva obtenemos su respuesta en frecuencia. De esta la ecualización opuesta para que su respuesta sea plana. Y de esta ecualización inversa obtenemos su respuesta impulsiva, tenemos la fórmula que buscamos.

Todo esto se hace con FFT IFFT y sus coeficientes con los que luego fabricamos el filtro FIR o convolucionador.

Bueno pues nada más por mi parte. Winton está explicando cómo se puede obtener de una forma práctica con un ordenador la respuesta de la sala y RR la teoría en que se basa todo esto y cómo son los cálculos.

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

Mensaje por wynton »

1 de Septiembre. Se reabren las prácticas.

No sé si tenemos todos nuestras respuestas impulsionales de la acústica de la sala. Los que no las tengan, ¡venga leñe, que la repesca está al caer!

Resumen de los hecho hasta ahora:

1- Aprender a generar el tono de medida para capturar a micrófono y su correspondiente filtro inverso mediante el programa glsweep.exe que forma parte de DRC.

2- Aprender a efectuar convoluciones con lsconv.exe para obtener respuestas impulsionales.

3- Aprender cómo se cablea el previo, la tarjeta de sonido y el microfono y hemos hecho una interpretación entre amiguetes de los resultados obtenidos.

Las dudas o acalaraciones, nunca están de más. Así como plantar en imageshack o web parecida las gráficas de las respuestas impusionales que cada uno tenga. Especialmente serán bienvenidas las llamativas, por muy buenas y sobre todo, y lo digo en serio, por muy malas.

Y una aclaración: con el método de los sweep logarítmicos, cuando se trata de medir en un ambiente algo ruidoso, lo mejor no es hacer sonar el tono muy fuerte, sino hacer sonar un tono muy largo. Que se oiga, aunque no hace falta que atruene. Pero a lo mejor en vez de 20 segundos necesitamos 1 minuto. Los tiempos de cálculo y necesidad de memoria en el PC se elevan, pero el rechazo al ruido mejora mucho.

Y a todo esto, ¿adonde vamos con este tostón incomprensible? ¿No ibamos a "corregir digitalmente la acustica del saloncito"? Pues si. A ello nos ponemos ahora. Nos hemos tomado nuestro tiempo porque para corregir algo, hay que saber qué es "ese algo". Por eso la medida previa es fundamental. Y entenderla para saber si está bien hecha, qué significa; que podemos esperar del DRC; donde es impepinable un tratamiento acústico convencional....

La eficacia del filtro digital final se basa principalmente en una buena medida acústica.

Bueno, pues ya tenemos nuestro fichero impulse.pcm ahora vamos a calcular el filtro a aplicar (la ecualización) mediante el tercer programa del lote, drc.exe.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

En la carpeta sample de la instalación de drc encontraremos algunos archivos con la terminación ".drc". Se pueden abrir con un visor de textos porque eso son: ficheros de parámetros escritos a mano.

Los nombres son muy descriptivos: normal.drc (ajustes que el autor de DRC considera que son los normales), minimal.drc, soft.drc, strong.drc, extreme.drc, insane.drc, optimized.drc. El autor nos ofrece una serie de opciones "de fábrica" con las que crear rapidamente una serie de filtros y probar y comparar los resultados. Y es que estos archivos con la terminación drc son ejemplos de posibles configuraciones de todos los parámetros que el programa drc.exe va a utilizar para generar la dichosa ecualización.

Porque ¿ahora donde viene la dificultad? Pues en la enorme cantidad de parámetros que drc maneja. Cada uno con sus implicaciones en el resultado final y que no son obvias a priori. E incluso puede que ni a posteriori sin un estudio detallado del código fuente de DRC para ver exactamente que se hace con tal o cual parámetro y cuales y como están relacionados entre si.

El mínimo toqueteo que hay que hacer en un archivo-ejemplo de estos es:

BCInFile => Hay que indicar el nombre de nuestro fichero de respuesta impulsional, al que habitualmente estamos llamando impulse.pcm.

BCSampleRate => Indicar la frecuencia de muestreo de impulse.pcm. En mi caso es 48000.

PSPointsFile => Hay que indicar un fichero donde almacenamos el espectro de frecuencia buscado. Podeís editar el ejemplo bk-3.txt y modificar los valores de frecuencia (primera columna) y ganancia/atenuación en dB (segunda columna) al gusto.

Al menos con estos tres parámetros vamos tirando y a partir de normal.drc, por ejemplo, somos capaces de crear nuestro primer filtro.

Copiamos de la carpeta sample los ficheros drc.exe y normal.drc y el bk-3.txt a la carpeta donde tenemos guardado impulse.pcm. Modificamos convenientemente normal.drc y bk-3.txt.

Y ahora basta con escribir:

drc.exe normal.drc

Y empieza el programa a hacer sus calculos. Según avanza escupe textos initeligibles (de momento jejejej.......).

Termina diciendonos cuanto ha tardado en crear el filtro y aparecen dos ficheros nuevos: rps.pcm (al que llama target response signal) y rtc.pcm (al que llama test convolution signal).

Pues bien: rps.pcm es "EL FILTRO".

¿Se puede ver qué coj..... es? Pues sí. Hay que importarlo en audacity como archivo en bruto (raw) con valores iguales a los de impulse.pcm (32 bits, no endian, 48 KHz por ejemplo).
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

Para, para, que con las vacaciones me he perdido. Y luego empezáis y no os sigo.

Porque no empezamos de cero. Para tontos.

¿Que software se necesita, es gratuito, de donde me los descargo, o te tengo que poner un correo para que me lo envíes?

Que yo mucho hablar pero no me he sacado la respuesta impulsional para poder seguirte.

Y segundo ¿Cómo se que parte de la respuesta es de la sala y que parte es de los altavoces? O hablamos de la conjunta.

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

Mensaje por wynton »

luisggarcia escribió: ¿Que software se necesita, es gratuito, de donde me los descargo, o te tengo que poner un correo para que me lo envíes?
EL software es gratuito y disponible en internet. Basta con que leas este mismo hilo al menos desde aquí ->

http://matrixhifi.com/foro/viewtopic.ph ... c&start=20

...y sigas la práctica.
luisggarcia escribió: Y segundo, como se que parte de la respuesta es de la sala y que parte es de los altavoces. O hablamos de la conjunta.
DRC trabaja con la respuesta conjunta. De hecho es su objetivo. Y en todo caso, y como ya veremos en las gráficas de los filtros generados, para DRC (y para cualquier sistema de ecualización) no hay respuesta de sala sin altavoz. Y ojo, ni sin oyente. No puede corregir una acústica de sala de modo puro sino que corrige (parcialmente) una combinación de la-sala-es-así/los-altavoces-son-estos/me-siento-a-escuchar-aquí.

¿Se podría con DRC ecualizar solo los altavoces?: Yo no lo he hecho pero mi impresión a priori es que perfectamente se podría. Bastaría con medir una caja a 1 metro de distancia al aire libre o en sala lejos de posibles reflexiones. En el segundo caso con audacity recortas de impulse.pcm solo la respuesta de la caja y, si se puede obtener una respuesta impulsiva de suficiente longitud, puedes generarte un filtro para ecualizar cajas.

¿Estoy diciendo que digitalmente se podría alinear la respuesta impulsiva de los transductores de una caja pasiva sin tocar el filtro ni multiamplificar y ecualizarla de modo semejante a como los hacen los amigos de los sistemas activos? Pues venga, me tiro a la piscina sin saber si hay agua: con DRC no lo sé todavia, pero programando un tratamiento digital adecuado me apuesto pincho y caña a que si. Y si no se puede pagaré bien agusto, porque solo el experimento ya merece la pena por la cantidad de cosas que pueden aprenderse.

Y.......y si se puede: si descartamos el asuntillo de las diferencias de dispersión de cada altavoz y nos centramos en grupos de cajas de tecnologías igual (bass-reflex, dos vias, seis pulgadas por ejemplo), entonces ¿se podría simular la respuesta en eje de unas Dynaudio Audience cincuenta-y-tantos con unas Wharfedale nueve-punto-no-se-qué? Como se pueda me descojono.

Y me voy a la tienda echando leches a por las Behringer pasivas 8 pulgadas. ¿Algún voluntario me pasa la respuesta impulsiva de unas Tannoy Dual-Concentric de 10" para "colorear" mi casa?
Avatar de Usuario
luisggarcia
Mensajes: 802
Registrado: Vie 16 Jul 2004 , 9:28

Mensaje por luisggarcia »

No si ya sabía que me ibas a echar la bronca y me la merezco. Ya suponía que estaría publicado en este mismo hilo. Pero como es muy largo pues no estaba por la labor y en plan comodón y como se que eres un cielo, me lo ibas a dar hecho.

Muchas gracias, chato, por la dirección. Y no te aventures a tanto con los retardos que creo que hay cosas que no se pueden hacer tan fácil.
Avatar de Usuario
wynton
Admin
Mensajes: 3065
Registrado: Vie 26 Nov 2004 , 9:05
Ubicación: Madrid

Mensaje por wynton »

El aspecto de un filtro generado por DRC es así (click para ampliar):


Imagen

Son 1.36 s, puesto que le hemos dicho en la configuración de normal.drc que el filtro fuese de 65536 muestras.
En este gráfico muestro el filtro en la parte superior y debajo la medida impulse.pcm de donde se ha generado empleando los parámetros de normal.drc. impulso.pcm está amplificado para que puedan verse en el gráfico y los picos de ambas curvas alineados a mano (que nadie se despiste que el filtro es 1.4 s e impulse.pcm es bastante más largo).

Imagen

¿La respuesta en frecuencia del filtro? Pues en está gráfica la podemos ver comparada con la de la medida impulsional.

Imagen

Se puede comprobar que el filtro tiene una respuesta en frecuencia que más o menos es la inversa de la medida de la respuesta impulsional. ¡Qué buena pinta! Entonces mediante convolución podemos obtener la añorada, deseada y envidiada respuesta plana-plana-plana.

Bueno, todo tiene sus matizaciones. Las cosas no van a salir tan bien porque ya verás como viene alguien y la lía.

En todo caso la idea es esa. Tenemos un filtro de 1.4 segundos que aplicado a la señal audio mediante convolución en tiempo real va a permitir efectuar una corrección o ecualización a la música que escuchemos. ¿cómo hacer la convolución? Bueno, ahora vamos.....
RR
Mensajes: 370
Registrado: Jue 25 Nov 2004 , 21:55

Mensaje por RR »

wynton escribió:Y en todo caso, y como ya veremos en las gráficas de los filtros generados, para DRC (y para cualquier sistema de ecualización) no hay respuesta de sala sin altavoz. Y ojo, ni sin oyente. No puede corregir una acústica de sala de modo puro sino que corrige (parcialmente) una combinación de la-sala-es-así/los-altavoces-son-estos/me-siento-a-escuchar-aquí.
Hola Wynton, me alegra que hayas abierto las aulas otra vez.

Esto Geddes lo decía con precisión científica: No se puede corregir un sistema vectorial actuando sobre una magnitud escalar. Olé.

O sea, lo que tú has dicho: Corregimos la respuesta en un punto de la sala.
¿Se podría con DRC ecualizar solo los altavoces?: Yo no lo he hecho pero mi impresión a priori es que perfectamente se podría. Bastaría con medir una caja a 1 metro de distancia al aire libre o en sala lejos de posibles reflexiones.
Si duda. Corregirías además la difracción (efectos temporales y en magnitud) ) y parte de las resonancias del altavoz (que también son temporales, hasta donde DRC las corrige).
¿Estoy diciendo que digitalmente se podría alinear la respuesta impulsiva de los transductores de una caja pasiva sin tocar el filtro ni multiamplificar y ecualizarla de modo semejante a como los hacen los amigos de los sistemas activos?
¡Por supuesto! De hecho, mucha gente lo usa así, entre otros... el propio autor de DRC.

Lo de simular la respuesta en eje de una caja y otra... Mmmm... habría que ver hasta dónde corregimos (resonancias, etc.). No corregiríamos distorsión ni compresión, y seguiríamos metidos en el "sistema vectorial (reflexiones en toda la sala).

Pero sería muy interesante comparar cajas eliminando una variable (la distinta respuesta en magnitud y fase). Muy pero muy interesante.

Esta noche te planto mis gráficas. Pero Wynton anima a que se apunte más peña, no vamos a estar cambiándonos cromos siempre los mismos.
RR
Mensajes: 370
Registrado: Jue 25 Nov 2004 , 21:55

Mensaje por RR »

Hola:

Lo prometido, gráficas de mis mediciones y corrección del filtro. Como comentaba wynton, drc puede sacar un impulso adicional, que es el resultado de la convolución del impulso del altavoz con el filtro de corrección. Eso daría el impulso teórico corregido en el punto de escucha (digo teórico porque no es medido, sino calculado).

De arriba abajo, a la misma escala que los impulsos de wynton, los correspondiente a mi altavoz izquierdo:
1. Impulso del altavoz
2. Impulso de corrección (filtro)
3. Impulso corregido.

Imagen

Añado las correspondientes respuestas en frecuencia (mismo orden)

Imagen
Imagen
Imagen

¿Comentarios?
Responder