UNIVERSIDAD DE VALLADOLID ESCUELA DE INGENIERÍAS INDUSTRIALES INGENIERO TÉCNICO DE TELECOMUNICACIONES, ESPECIALIDAD EN SISTEMAS ELECTRÓNICOS PROYECTO FIN DE CARRERA SIMULACIÓN ACÚSTICA DE RECINTOS BASADA EN DSP Autor: Andrés Lozano, Miguel Tutoras: Quintano Pastor, Carmen del Valle González, María Isabel Tecnología Electrónica Tecnología Electrónica SEPTIEMBRE – 2010 1. Introducción y objetivos El Proyecto Fin de Carrera se denomina “Simulación Acústica de Recintos, basada en DSP”, y se desarrolla en el Dpto. de Tecnología Electrónica de la Universidad de Valladolid, para la obtención del título de Ingeniero Técnico de Telecomunicaciones, especialidad en Sistemas Electrónicos, en la Escuela de Ingenierías Industriales. El proyecto realiza un estudio del tratamiento de señales de audio enfocado, fundamentalmente, a la simulación acústica de recintos, y se implementan, también, los efectos de eco y de coro. La implantación física se realiza sobre la placa de desarrollo dsPICDEM 1.1, disponible en el Dpto. de Tecnología Electrónica. Los objetivos que se pretenden alcanzar, son los siguientes: - Realizar un estudio del procesador digital de señal dsPIC30F6014 y de los periféricos que incorpora la placa de desarrollo dsPICDEM 1.1 sobre la que se va a hacer el proyecto. - Hacer un análisis de las posibilidades y limitaciones del hardware disponible respecto del tratamiento de señales sonoras. - Hacer un estudio de los efectos sonoros necesarios para la recreación artificial de “ambientes sonoros”. - Desarrollar los algoritmos necesarios, en lenguaje ensamblador del dsPIC, para la aplicación de los efectos indicados. - Implantación física en la placa de desarrollo disponible, capturando la señal de un reproductor mp3 y sacando el sonido tratado por altavoces. - Desarrollar un entorno de usuario que permita escuchar los distintos sonidos nativos y modificados, facilitando su comparación, e informando de la posible presencia de distorsión en la señal tratada. 2. Soporte físico y herramientas disponibles. Limitaciones El proyecto se realiza sobre la placa de desarrollo dsPICDEM 1.1. Sus elementos más destacados desde el punto de vista de este proyecto son: - Procesador dsPIC30F6014, a 40 MHz. - Códec Si3000. - Entrada de línea de audio y salida de altavoces. - Cuatro pulsadores y cuatro diodos LED. - Display LCD de 4 líneas de 20 caracteres. En el proyecto se analizan los diferentes elementos. Las principales limitaciones que introducen son: - El códec soporta una frecuencia máxima de muestreo de 12 Ksps, apta para señales que no tengan armónicos de frecuencia superior a 6 KHz, con una resolución de 16 bits. - Se dispone de un único canal de entrada de audio, no pudiendo tratar señales estereofónicas. - Se dispone, solamente, de una memoria, para almacenar las muestras de audio, de 4055 words, que muestreando a 12 Ksps, permiten almacenar 338 ms de sonido. Como herramienta de desarrollo y programación del dsPIC30F6014, se ha empleado el emulador ICD2, dentro del entorno MPLAB, de Microchip. 3. Modelos de los efectos implementados Los efectos sonoros que se van a recrear de forma artificial son los de eco, coro y simulación de recintos. 3.1. Eco Cuando una onda sonora choca con una superficie, parte de su energía es absorbida por ella y otra parte se refleja. La mayor o menor proporción de energía reflejada depende del material de la superficie. Se considera que se produce eco cuando el receptor percibe la señal directa y la señal reflejada como dos señales diferentes y no como una “señal compuesta”. 3.2. Coro Generar un efecto de coro pretende que el sonido generado por un único instrumento o intérprete se perciba como si hubiera sido generado por varios. El efecto de coro se consigue, superponiendo a la señal directa una señal retrasada (eco), pero un eco con un retraso variable, de forma periódica. Valores típicos de retraso asociado al eco son de 40 a 60 ms, con una variación periódica, entre estos valores, con un periodo de 0,25 Hz. 3.3. Caracterización y simulación de recintos Cuando se emite un sonido en un recinto cerrado, lo que recibe el oyente es una “composición” de la señal directa y los diferentes ecos. (Fig. 1). Señal directa Ecos primarios Ecos secundarios Fig. 1 – Distintos recorridos del sonido. Señal directa, ecos primarios y secundarios. Lo que se percibe se denomina reverberación y, aunque está formada por ecos, no es el mismo efecto y se considera reverberación cuando se oye todo el conjunto como un único sonido, no siendo posible diferenciar sus componentes. Los recintos se pueden simular mediante dos métodos: - Reverberación artificial mediante convolución: Se basa en que, si se conoce la respuesta de un sistema al impulso unitario, h[n], se puede, mediante convolución, conocer la respuesta de dicho sistema a cualquier estímulo. y[n] = x[n] * h[n] Este sistema se ha descartado por no disponer de información suficiente. - Reverberación artificial basada en redes de retraso: Consiste en generar la señal tratada como la composición de la señal discreta y las señales reflejadas, afectadas por sus correspondientes atenuaciones. (Fig. 1). En el modelo que se ha generado para este proyecto se han considerado, solamente, los eco primarios, y se han despreciado los secundarios. La expresión de la señal de salida, será: y[n] = x[n] + at1 · x[n – n1] + at2 · x[n – n2] + at3 · x[n – n3] + at4 · x[n – n4] El modelo se basa en 8 parámetros (4 retrasos y 4 atenuaciones asociadas a ellos), y se ha particularizado para dos recintos, a los que se ha denominado “club” e “iglesia”. Los parámetros que se han asociado a cada uno de los recintos, han sido los siguientes: - Club: n1 = 50 ms n2 = 80 ms n3 = 140 ms at1 = at2 = at3 = at4 = 0,6 n4 = 200 ms - Iglesia: n1 = 50 ms n2 = 140 ms n3 = 230 ms at1 = at2 = at3 = at4 = 0,9 n4 = 320 ms Valores, que traducidos a muestras, muestreando a una tasa de muestreo de 12 ksps, quedarían de la siguiente forma: - Club: n1 = 240 n2 = 960 n3 = 1.680 n4= 2.400 (muestras) - Iglesia: n1 = 600 n2 = 1.680 n3 = 2760 n4= 3.200 (muestras) El parámetro n1 se correspondería con el ITD (Interaural Time Difference) del recinto, que es el tiempo que tarda en llegar el primer eco y el parámetro n4 con el tr (tiempo de reverberación, o tiempo que tarda en alcanzar una atenuación de la señal sonora de 60dB). Los modelos no son totalmente realistas, debido a la limitación en memoria del hardware de soporte, que permite almacenar solamente 4055 muestras que , muestreando a una tasa de 12 Ksps, se corresponden con un tiempo de 338 ms. 4. Entorno de usuario El sistema dispone de siete modos de funcionamiento: Eco corto y largo, coro corto y largo, recintos club e iglesia, y modo de funcionamiento normal. Se ha desarrollado un entorno de usuario, en el que la selección entre los distintos modos se hace mediante los cuatro pulsadores, y la información del modo actual y las opciones disponibles se sacan con los diodos LED y el display LCD. Para que el usuario pueda comparar los distintos efectos, lo que se debe hacer “escuchando” la señal tratada, se ha incluido la posibilidad de conmutar de forma inmediata entre la señal tratada y el modo de funcionamiento normal. En la Fig. 2, se presenta el estado de los diodos y el display en una determinada situación Fig.2 – Foto del display y los diodos correspondiente a un estado concreto. 5. Desarrollo del código Se ha estudiado, en primer lugar, el hardware disponible para analizar sus posibilidades y limitaciones. Se ha dedicado la mayor parte de la memoria de datos para almacenar la señal de audio, reservando la imprescindible para la pila y variables auxiliares. La memoria de datos se ha organizado como un buffer circular. La primera parte del código se dedica a inicialización, debiendo de ser muy cuidadoso en la parte relativa al módulo DCI del dsPIC30F6014, que se configura a través de cinco registros y al códec Si3000 que se configura a través de ocho registros. También se inicializan el módulo SPI, el controlador de display y las líneas de puerto de Entrada/Salida. La estructura general del código se presenta, de forma extremadamente esquemática, en la Fig. 3 NO Arranque Lectura muestra códec Inicialización Escritura del valor procesado al códec Lectura bit Interrupción DCI Cálculo nuevo valor Lectura pulsadores Realización acciones ¿DIIF=1? SI Borrar bit interrupción DCI Fig. 3 – Diagrama de flujo de la estructura general. (Fig. 4.6) Esta estructura valdría para todos los modos de funcionamiento, diferenciándose unos de otros en el procedimiento de cálculo de la señal tratada, que será diferente para los efectos de eco, coro y recinto, como se ha indicado en el apartado 3. En la memoria están detallados los algoritmos, y cómo se implementan en el lenguaje ensamblador de dsPIC30F6014. La evaluación de los resultados obtenidos se realiza “escuchando” la señal tratada, a través del altavoz, y comparándola con la original. Se considera que, a pesar de las limitaciones impuestas por el hardware disponible, se pueden apreciar suficientemente lo efectos generados. 6. Conclusiones - Se ha hecho un estudio teórico de los efectos sonoros, de eco y coro y, fundamentalmente, de la simulación de recintos. - Se han planteado dos alternativas en simulación de recintos: o Reverberación artificial mediante convolución. o Reverberación artificial basada en redes de retraso. - Se ha seleccionado la segunda alternativa, por ser la que dispone de más información, y ser más fácilmente parametrizable. - Se ha estudiado el procesador dsPIC30F6014, haciendo énfasis en los aspectos relacionados con la realización del presente proyecto: Capacidad de procesamiento, organización de la memoria, puertos de entrada/salida, módulos de comunicación con periféricos (DCI y SPI). - Se ha estudiado la placa de desarrollo dsPICdem 1.1, sobre la que se ha hecho el proyecto, con énfasis en los periféricos empleados, (códec y controlador de display), y en la configuración de los mismos y su comunicación con el dsPIC30F6014. - Se han analizado las limitaciones que impone el sistem sobre el que se ha hecho el proyecto, llegando a la conclusión de que, aunque puede ser adecuada para señales telefónicas y módem, no está especialmente indicada para tratamiento de sonido, por las restricciones generadas por el dsPIC30F6014 y códec Si3000. - Se ha estudiado el entorno de desarrollo y programación MPLAB ICD2. - Se ha desarrollado, e implementado físicamente, un entorno de usuario que permite seleccionar, de forma sencilla e informando de las opciones disponibles, a través del display LCD, los distintos modos de reproducción. La conmutación entre modos se puede realizar de forma muy rápida, con lo que se facilita la comparación entre ellos. - Se han desarrollado, e implementado físicamente dentro de las limitaciones impuestas por el hardware disponible, las simulaciones de dos recintos, a los que se ha denominado “club” e “iglesia”. - Se han escuchado, a través de altavoz, los resultados de los efectos sonoros y recintos simulados. Se aprecia que la calidad sonora es algo deficiente, lo que se achaca a las limitaciones del hardware disponible, pero es suficiente para apreciar los efectos y las diferencias entre ellos.