4/1/15

DESARROLLO Y FUNDAMENTOS DE RiTA, NUEVA APLICACIÓN DE EDUCASOUND


Arrancamos el año desde Educasound con el propósito de ir creando nuevas aplicaciones que sirvan tanto para el desarrollo formativo como para el uso profesional.

En esta primera ocasión lanzamos la versión 1.0 de lineSource y el RiTA 1.1

RiTA: 

RiTA 1.1

 
RiTA simula el comportamiento de un analizador de doble canal FFT y en esta primera versión presentamos los conceptos básicos. Para ello, incorporamos un DSP que nos permitirá analizar la respuesta de diferentes filtros IIR y FIR y sus correspondientes respuestas de magnitud, fase e impulso.



Todo analizador de doble canal FFT se basa en una propiedad muy importante de la transformada de Fourier, que define que la convolución en el dominio temporal es equivalente a la multiplicación en el dominio frecuencial.



Como hemos visto en anteriores artículos podemos definir un altavoz o una sala, siempre que se operen dentro de sus valores normales, como un sistema lineal e invariante en el tiempo. Por lo tanto, podemos conocer la respuesta del sistema si conocemos la señal de entrada y su respuesta al impulso. Y del mismo modo, si aplicamos un impulso unitario a un sistema LTI a la salida obtendremos su respuesta al impulso h[n]. El sistema queda completamente descrito a partir de la respuesta al impulso.


La Transformada de Fourier, en nuestro caso la FFT (Fast Fourier Transform) es la herramienta que nos permite pasar del dominio temporal al dominio frecuencial.



La transformada de Fourier discreta se convierte en un sumatorio a diferencia de la transformada en tiempo continuo, donde el cómputo se realiza a partir de la integral.

Fijémonos que hemos definido los intervalos del sumatorio como [0,N-1] donde N es el número de muestras que vamos a tomar para su realización, n el índice de la muestra discreta y k el índice de la respuesta discreta.



Veamos un ejemplo simple del computo de la transformada discreta de 4 puntos, para una señal de valor x[n] = [1,1,0,0]

De este modo obtenemos los coeficientes de la transformada discreta:



Como vemos, este es un ejemplo muy simple, pero incluso en este caso necesitamos realizar N2 operaciones (42 = 16).



Evidentemente a medida que aumentemos el tamaño de N mejor resolución frecuencial obtendremos en nuestra medición, pero el número de operaciones crecerá cuadráticamente. Así, para realizar la transformada discreta de 32768 muestras o puntos necesitaremos 327682 = 1073741824 cálculos.


Uno de los mayores descubrimientos dentro del proceso de la señal digital fue la transformada rápida de Fourier (FFT), un set de algoritmos que permite reducir el número de operaciones  a N log2 N siempre y cuando el tamaño de N sea una potencia de 2. Así, para realizar la FFT de un tamaño de 32768 muestras el número de operaciones será: 32768 x log2(32768)=491520


En el RiTA se puede elegir diferentes tamaños de FFT y por lo tanto relacionar la constante de tiempo y frecuencia de resolución a partir de la frecuencia de muestreo.

FFT sizes

 
Otra cosa que debemos tener en cuenta es que una vez el analizador recibe la señal muestreada y cuantificada debe tomar datos finitos de las muestras de entrada, es decir N datos para realizar la FFT. Si estos valores de entrada no se enventanan la respuesta frecuencial de la medición muestra irregularidades para toda frecuencia que no sea múltiplo de la frecuencia de resolución.

Hann Window

 
En RiTA usamos para el cálculo de la FFT una ventana Hann del mismo tamaño que el numero de muestras de la FFT  con un solapado del 50%

Hann Window 50% Overlap


 
En el ejemplo se muestra un ruido rosa como señal de entrada y sus tres primeras ventanas Hann.

FFT

 
Y el resultado de aplicar la FFT a cada ventana anterior. Como podemos observar, al utilizar un tamaño de FFT de 32768 muestras obtenemos demasiada resolución frecuencial para las altas frecuencias y como al no usar ningún tipo de promediado por octava el ruido rosa muestra un decaimiento de 3 db/Octava.



En RiTA usamos para estabilizar la señal, a fin de mostrar los datos, un promediado de 10 segundos. En próximas versiones se podrá elegir la cantidad de promedios que se desee.



Como vemos, el primer paso del analizador consiste en convertir al dominio frecuencial una señal de entrada en el dominio temporal a partir de la transformada rápida de Fourier. En esta primera versión la función Spectrum no está implementada, para las próximas versiones se incorporará la respuesta espectral y de espectrograma de la señal de entrada.



La función de Transferencia: La pantalla principal de RiTA se centra en el estudio de la función de transferencia. Como hemos visto, cuando obtenemos la FFT de nuestra señal de medición, ésta se convierte en un numero complejo, por lo tanto, si quisiéramos podríamos ver en la respuesta de espectro también la respuesta de su fase absoluta, pero esto para nosotros no es importante, no nos interesa conocer la fase absoluta de una señal de audio, sino la fase relativa entre distintos elementos de nuestro sistema.



La función de transferencia manipula la señal dentro del dominio frecuencial y como sabemos, necesitamos dos canales para ello: la señal de referencia y la señal de medición. RiTA genera su propia señal de referencia, en este caso ruido rosa, pero podría ser cualquier otra, y obtiene la señal de medición como la señal que fluye a través de cualquiera de los 4 canales del procesador.



Hemos visto que la respuesta al impulso en el dominio temporal describe de manera univoca el comportamiento de nuestro sistema. Del mismo modo, nosotros podemos obtener la descripción en el dominio frecuencial de nuestro sistema, el cual es obtenido a partir de la respuesta al impulso.

El comportamiento en el dominio de la frecuencia de un sistema digital refleja su capacidad de pasar, rechazar y mejorar ciertas frecuencias incluidas en el espectro de la señal de entrada. Los términos comunes para el comportamiento son la función de transferencia H(z) y la respuesta de frecuencia H(f) del sistema bajo medición. Ambos pueden ser obtenidos por dos transformaciones matemáticas aplicadas a la respuesta impulsional.


La primera transformación es la Transformada z:


Y la segunda transformación es la Transformada discreta en el tiempo de Fourier:
Ambas ecuaciones están relacionadas. Si aplicamos la Transformada z a la respuesta al impulso del sistema obtenemos la función de transferencia:


La función de transferencia es de especial interés porque relaciona la transformada z de la señal de entrada y salida de nuestro sistema. Así podemos obtener la respuesta del sistema como:
Y del mismo modo podemos obtener la función de transferencia si conocemos la señal de entrada y la respuesta del sistema como:


Si aplicamos la transformada discreta en el tiempo de Fourier a la respuesta de impulso obtenemos:


Y su función de transferencia como:


Como vemos, obtener la función de transferencia de nuestro sistema significa obtener el cociente entre  la respuesta a la salida del sistema y la señal de entrada. La función de transferencia es un número complejo, por lo tanto, graficamos la respuesta de magnitud como el valor absoluto del numero complejo y la respuesta de fase como el arco tangente del cociente entre la parte imaginaria y la parte real del valor obtenido.

APF
 
En la imagen podemos observar la función de transferencia de un filtro All-Pass de segundo orden.



El procesador virtual incorporado en el RiTA permite realizar manipulaciones básicas de la señal como:



1.     Elegir entre filtros IIR y FIR

2.     Modificar la frecuencia de corte

3.     Utilizar delay por canal

4.     Modificar la amplitud de la señal



Mientras cualquier modificación de tiempo, polaridad o nivel se reflejan automáticamente en la medición, cada vez que cambiamos el tipo del filtro se debe volver a pulsar el botón  Plot para que los cambios se visualicen.

DSP
Al cambiar la frecuencia de corte se debe reconfirmar el filtro y pulsar el botón Plot para que los cambios se visualicen.

Sum all
 
El botón Sum all permite visualizar la respuesta combinada de las mediciones seleccionadas pero mantiene en pantalla las mediciones individuales. El botón Sum all usa un color de medición aleatorio que cambia cada vez que se selecciona.


Only Sum
 
Por el contrario, si se selecciona el Botón Only Sum se mostrará en pantalla solamente la respuesta combinada y automáticamente se activará el botón Sound. Para salir de la función Only Sum o Sum all basta con clicar el Plot de cualquiera de las señales del procesador activadas.

Si se pulsa el botón Sound se escuchará bien desde la tarjeta interna del ordenador o bien desde una tarjeta externa un trozo de 10 segundos del resultado obtenido.

Sound
El botón Sound tiene una latencia de aproximadamente 5 segundos desde que se activa hasta que se reproduce el audio. Esto es debido a que para minimizar los problemas de ruido que nos encontramos en la versión 1.0 donde trabajábamos la señal en el dominio temporal, en la versión 1.1 toda la manipulación de la señal se produce en el dominio frecuencial y necesitamos volver a recuperar la señal al dominio del tiempo para su reproducción. Cuando finaliza la reproducción de audio el botón Sound vuelve a su condición de inactivo hasta que el botón Only Sum vuelva a ser seleccionado.



Para poder escuchar el audio a través de una tarjeta externa, debemos activarla en nuestro ordenador antes de abrir la aplicación.



El botón Clear realiza un reset de todas las mediciones en pantalla y deja el analizador en su posición de inicio. Si simplemente se quiere eliminar de la respuesta en pantalla de una medición basta con seleccionar la función bypass del canal correspondiente.



Cuando se selecciona el botón Sincro el analizador sincroniza todas las mediciones sobre la señal seleccionada.

Sincro
Para volver a la condición inicial basta con deseleccionar el botón Sincro pulsado.

El analizador abre por defecto con la visualización de la magnitud en escala logarítmica y la visualización de la fase entre -180 y 180 grados. No obstante, se puede cambiar la visualización a escala lineal o visualizar el retraso de grupo pulsando sus botones correspondientes.

Lineal & Group Delay
 
Como curiosidad hemos añadido un filtro FIR Brick Walk extremo de pendiente casi infinita y su consecuente latencia:

Brick Walk
 Y su retraso de grupo nulo:

Brick Walk Group Delay

Función Impulso: Como ya se ha comentado en anteriores artículos, un analizador de doble canal FFT no obtiene la respuesta al impulso lanzando un impulso y obteniendo su respuesta, sino que se lo obtiene precisamente a partir de la función de transferencia, a partir de la transformada inversa:


En RiTA se puede observar en la pantalla de la función de transferencia la respuesta al impulso de cada medición. Si se quieren observar los impulsos con mayor detalle se debe seleccionar la función impulse en el analizador.

Impulse
 
Al igual que en la función de transferencia se puede eliminar cualquier impulso de la visualización seleccionando el botón bypass correspondiente.



RiTA pretende  convertirse con el tiempo en un analizador en tiempo real y con este fin iremos añadiendo actualizaciones  progresivamente.



Actualizaciones pendientes:



1.     Implementar la respuesta de Espectro y Espectrograma

2.     Añadir la función de coherencia en la función de transferencia

3.     Posibilidad de realizar funciones de Transferencia a 48 FPPO

4.     Importar impulsos desde Smaart o cualquier modelador de audio que  obtenga una respuesta al impulso

5.     Modificar la cantidad de promedios

6.     Añadir filtros paramétricos y Shelving

7.     Importar pistas de audio para realizar el seguimiento de los ajustes realizados



LineSource: Se basa en la matemática de Harry Olson y permite observar el patrón polar de una línea de fuentes en base a su longitud y la separación entre fuentes. Hemos de tener en cuenta que en la matemática de H. Olson presupone como fuentes de sonido pistones omnidireccionales y no tiene en cuenta los fenómenos de difracción y reflexión producidos entre los elementos.

LineSource 1.0
 
En los cursos de Educasound, en el temario de Line Array siempre relacionamos que la directividad proporcional del altavoz se debe a que la guía de ondas funciona de manera similar a una línea recta, donde la cobertura dependerá del tamaño de la guía y el colapso lateral a la separación entre elementos.



Simulamos en el siguiente gráfico la respuesta de un altavoz con una guía de ondas de 8 aperturas con separación entre ellas de 2cm para distintas frecuencias.

 
LineSource 1.0

 
Como siempre agradeceremos vuestros comentarios y sobre todo sugerencias para implementar en futuras versiones o crear aplicaciones nuevas.

Puedes descargar las aplicaciones desde la web de Educasound aqui 



Esperamos que las disfrutéis y “Que la fase os acompañe”.








2 comentarios: