Blog

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”.

Este artículo tiene 2 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

En EducaSound no lo enseñamos, lo demostramos