En esta sección mostraremos mediante diferentes ejemplos sonoros y programas de simulación, ciertos aspectos abordados en el trabajo.
En este archivo sonoro tenemos un ejemplo de una señal de voz. En el dibujo se muestra su equivalente eléctrico.
En este archivo de audio podemos comprobar los efectos de una pobre respuesta en frecuencia de un altavoz. El ejemplo corresponde a un pedido de comida en un restaurante de comida rápida.
Ejemplo del altavoz usado en un sistema público de telefonía.
Aquí escucharemos a un hombre hablando en un ambiente con conversaciones
de fondo, grabado mediante diferentes configuraciones de micrófonos.
Esto nos permitirá apreciar las diferencias existentes entre los diferentes
sistemas.
La primera grabación corresponde a un único micrófono.
La segunda corresponde a un sistema GSC y la última, la mejor, corresponde
a un sistema AEC-GSC.
El siguiente programa en MATLAB implementa el procesamiento en tiempo real y luego simula el flujo de datos de un micrófono, leyendo bloques secuenciales de entrada de archivos wav pregrabados.
El código para simular un sistema de 2 micrófonos, gowave2.m, lee datos del archivo wav en bloques de 1024. El driver llama entonces a fshift.m para hallar el "hsift" entre las dos señales. Manda este retraso como un parámetro a twomicplot.m. Twomicplot.m contiene toda la lógica "física" y "geométrica", y muestra las posibles posiciones de la señal para el retraso dado. El driver está programado para plotear los resultados de cada uno de los bloques en el mismo gráfico.
También se adjunta el código para un sistema de 4 micrófonos capaz de efectuar "ranging". El código del driver, gowave4.m, lee entradas de 2 ficheros wav, y los fragmenta en bloques de 1024. Fshift.m se usa para encontrar los 3 retrasos, que se mandan a quadmath.m. La función quadmath() contiene toda la lógica necesaria para aproximar las coordenadas polares de la fuente de señal, y devuelve estas coordenadas al driver. Por razones de velocidad, el driver almacena 5 puntos, y luego los muestra en un diagrama polar. Todos los puntos para un archivo seleccionado se muestran en la misma gráfica.
Código y ficheros de prueba:
endfire.m
fshift.m
gowave2.m
gowave4.m
initpolar.m
quadmath.m
twomicplot.m
5th0.wav
5thld184rd50.wav
5thld69.wav
5thrd129.wav
5thrd50.wav
Para probar, graba el código y los ficheros de prueba, y luego efectúa los siguientes comandos MATLAB:
gowave2('5th0.wav',1)
gowave2('5thrd50.wav',1)
gowave2('5thld69.wav',1)
gowave2('5thrd129.wav',1)
gowave4('5th0.wav','5thld184rd50.wav',1)
De los muchos programas existentes en Internet, adjuntamos este programa, que simula la respuesta de múltiples altavoces basándose en sus características. Muchas opciones a configurar, mucho que experimentar...