Fuente cibernética II
1
Índice Capítulo introductorio...................................................................................................... 2
Introducción ................................................................................................................. 3 Motivación y antecedentes........................................................................................... 3 Fuente cibernética ........................................................................................................ 4
Introducción ............................................................................................................. 4 Construcción ............................................................................................................ 4 Funcionamiento ....................................................................................................... 5 Mejoras .................................................................................................................... 7
Objetivos...................................................................................................................... 8 Fase I: LabVIEW ........................................................................................................... 10
Sobre el filtrado de señales ........................................................................................ 11 La percepción del sonido ....................................................................................... 11 Muestreo ................................................................................................................ 11 Representación espectral........................................................................................ 14 Filtrado FIR............................................................................................................ 16
Filtrado en LabVIEW ................................................................................................ 17 Fase II: Matlab ............................................................................................................... 32
Sobre Matlab y Real Time Windows Target ............................................................. 33 Fuente cibernética II .................................................................................................. 34
Cyfom en Matlab ................................................................................................... 34 Filtrado a un colector ............................................................................................. 38 Simulación de filtrado a cinco colectores .............................................................. 44
Conclusiones.................................................................................................................. 47 Bibliografía .................................................................................................................... 49 Anexos ........................................................................................................................... 51
Fuente cibernética II
3
Introducción El proyecto continúa el desarrollo de una fuente cibernética (Cyfom I) construida por
Carlos Jiménez Alonso en 2003 en el Laboratorio de Fluidos de ICAI, durante su
último curso de Ingeniería industrial en esta Escuela.
El presente documento comienza con una revisión del trabajo anterior; posteriormente
se comentan los fundamentos teóricos para la realización de la fase actual, así como las
tecnologías empleadas; y finalmente, a modo de conclusiones, se indican posibles
ampliaciones futuras en el campo del tratamiento de señales (acústicas y lumínicas). En
el apartado de anexos se incluye el código empleado en LabVIEW (gráfico) y en
Matlab (mixto).
Motivación y antecedentes Una fuente cibernética se concibe como un espectáculo audiovisual con aplicación en
diferentes ámbitos y de gran interés para entusiastas de la música y amantes de
atmósferas con encanto. En las mentes de los creadores originales rondaban ideas que
apuntaban a su utilización en eventos musicales dentro de marcos íntimos tales como
conciertos de música clásica al aire libre, en los que el efecto visual del conjunto
alcanzaría su máximo esplendor; no hace falta decir que las posibilidades de la fuente
son amplísimas, pudiendo adaptarse su diseño tanto a distintos estilos musicales como a
distintos escenarios. Además de la belleza de un espectáculo audiovisual acuático para
músicas suaves y tranquilas, hay un espacio perfecto en el Rock and roll, en el que el
elemento visual y en muchos casos teatral es tan fundamental y, por qué no, en otros
estilos heredados de la era psicodélica donde las formas y colores en coherencia con los
sonidos tienen una importancia tan grande en el efecto final.
En cuanto al autor de esta segunda etapa del proyecto, la motivación nace del interés
por la música y el procesado de sonidos para su uso en distintos planos artísticos; de
esta manera, este trabajo se convierte en un buen punto de partida para poner un pie en
el mundo del tratamiento de señales y su implantación en sistemas físicos donde es
necesario poner en relación hardware y software.
El elemento diferenciador de la Cyfom sobre las fuentes ornamentales convencionales
está en su funcionamiento en tiempo real. Existen muchas fuentes que crean
espectáculos visuales con el agua, pero con unas coreografías prediseñadas
Fuente cibernética II
4
específicamente para piezas musicales, narraciones o conjuntos de ambos, que se
proyectan simultáneamente, consiguiendo el efecto de sincronismo.
Fuente cibernética
Introducción La Cyfom es un trabajo que combina la mecánica de fluidos y la programación de una
tarjeta de adquisición de datos. El resultado es una fuente ornamental que varía la altura
de cinco sus chorros en función de la intensidad de sonido recogida por un micrófono
en tiempo real con un pequeño sistema de iluminación secuencial no programable
incluido. La perspectiva bajo la que se realiza es la de crear una danza acuática
sincronizada con la música a base de alterar la proyección de los chorros, su
iluminación e incluso su orientación de salida a partir de ciertas características de los
sonidos captados.
Construcción La fuente se compone del sistema hidráulico, una unidad de control y el sistema de
iluminación.
El sistema hidráulico está formado por un colector de presión constante, una válvula de
presión máxima, cinco electroválvulas y una bomba rotodinámica. La altura de los
chorros se consigue por medio del control de la apertura del número de electroválvulas
en paralelo, que hacen modificar el flujo y por tanto la altura de los chorros.
La unidad de control es un programa en entorno LabVIEW que se comunica con el
exterior por medio de la tarjeta de adquisición de datos PCI-6013 de National
Instruments, que le proporciona la lectura analógica del micrófono (previamente
adaptada en un amplificador), además de ocho líneas de salida digitales con las que
controlar las electroválvulas y en definitiva la elevación de los chorros.
En último lugar, un conjunto de fibras ópticas conducen haces luminosos desde una
fuente halógena hasta la base de los chorros, consiguiendo la aparente iluminación de
los mismos. Entre la fuente de luz y la entrada al mazo de fibras ópticas hay interpuesto
un filtro de cinco colores que cambia secuencialmente a razón de una vuelta por
minuto, lo que cambia la coloración de los chorros, imprimiendo mayor dinamismo al
sistema.
Fuente cibernética II
5
Funcionamiento En la Figura 1 se representa el funcionamiento en tiempo real de la Cyfom. Una vez
capturada la señal de audio pasa a ser procesada por el programa de control, en el que
se analiza su magnitud por medio de una serie de comparadores anidados. Dentro de
cada bloque, superado el umbral de una comparación, se manda por el puerto digital la
configuración de las electroválvulas necesaria para conseguir la altura correspondiente.
Figura 1. Esquema general de la Cyfom
Un total de diez niveles es posible gracias a la tara impuesta a la entrada de caudal
ligada a dos de las electroválvulas. Teniendo una al 50% y otra al 25% se permite tener
un control sobre el flujo al colector con mayor resolución, como se aprecia en el
esquema hidráulico mostrado en la Figura 2.
Fuente cibernética II
6
Figura 2. Esquema hidráulico de la Cyfom
La fuente permite también el funcionamiento con archivos de audio y dispone de un
modo de grabación de archivos de sonido. La Figura 3 muestra la pantalla inicial del
programa donde se selecciona el modo de funcionamiento de la fuente. En el
funcionamiento con pistas de audio se introduce una variación en el programa de
control que normaliza la señal procedente del archivo mediante el método 3̌ debido a
que la naturaleza de los archivos puede ser muy diversa en cuanto al volumen de los
registros. En el modo grabación se recoge la señal del micrófono y se almacena como
archivo .wav con una duración ajustable.
Fuente cibernética II
7
Figura 3. Pantalla de selección de los modos de funcionamiento de la Cyfom
Mejoras En la descripción de la Cyfom se plantean una serie de mejoras, que incluyen el
perfeccionamiento del sistema hidráulico y la ampliación de las funciones de la fuente.
En la parte tocante al sistema de control se propone un análisis espectral de la señal de
entrada y la asociación de cada chorro a una banda de frecuencias, consiguiendo que
unos reaccionen a sonidos más graves, y otros a sonidos más agudos. El efecto obtenido
sería el de un vúmetro como los que se utilizan en los equipos de alta fidelidad,
representados en la Figura 4, hecho con columnas de agua.
Figura 4. Representación espectral mediante vúmetros
Sin embargo, la fuente sólo cuenta con un colector de presión para los cinco chorros,
necesitándose uno por chorro para conseguir alturas independientes. La tarjeta tiene una
sola salida digital que puede pilotar un único juego de electroválvulas.
Fuente cibernética II
8
Objetivos En esta fase del proyecto se definen las modificaciones necesarias a la Cyfom para su
funcionamiento en el domino de la frecuencia y se efectúan las relativas al programa de
control. El problema del número de colectores debe resolverse modificando físicamente
la fuente, por lo que no se ha prestado atención a este aspecto hasta no comprobar la
viabilidad de la mejora añadida.
Se pretende dividir la señal en un número de bandas, entre tres y cinco, mediante filtros
digitales y comprobar que la fuente responde selectivamente dentro de cada rango ante
señales de contenido armónico conocido, simulando de alguna manera la actuación
sobre cinco colectores a partir de una sola salida digital.
En la Figura 5 se representa el esquema funcional deseado de la fuente para esta etapa.
Fuente cibernética II
11
Sobre el filtrado de señales
La percepción del sonido El sonido es una vibración que se propaga a través del aire gracias a que sus moléculas
transmiten la vibración hasta que llega a nuestros oídos. La frecuencia del sonido se
mide en unas unidades denominadas Hercios (Hz). Un sonido que vibra una vez por
segundo tiene una frecuencia de 1Hz. Las frecuencias se escriben normalmente en
kilohercios (kHz), unidad que representa 1000Hz. El oído humano puede percibir
sonidos que estén, como media, en el rango de los 20Hz a los 20000Hz (20kHz).
El oído y un micrófono incorporado en la tarjeta de adquisición realizan la misma
función: ambos transforman pequeñas variaciones en la presión del aire en unas señales
interpretables en un lenguaje en el que puedan ser procesadas.
La medida de la amplitud de una onda es importante porque informa de la fuerza, o
cantidad de energía, de una onda, que se traduce en la intensidad con la que la oímos.
Su unidad de medida es el decibelio. Un decibelio, abreviado como dB, es una unidad
de medida de la fuerza de la señal y es útil en la comparación de la intensidad de dos
sonidos. El oído necesita un porcentaje elevado de variaciones en la fuerza de un sonido
para detectar un cambio en la intensidad percibida, lo que significa que la sensibilidad
del oído a la fuerza del sonido es logarítmica. De manera que el decibelio, unidad de
medida logarítmica, es la elección más adecuada para medir la fuerza del sonido. El
aspecto práctico de la amplitud es que un incremento de sólo 3dB duplica la intensidad
de un sonido. Por ejemplo, un sonido con 86dB tiene, el doble de fuerza que un sonido
con 83dB y cuatro veces más que un sonido con 80dB. Desde la perspectiva de nuestra
percepción de la intensidad, un incremento de 3dB, que da lugar a que se duplique la
fuerza, provoca que el sonido se perciba sólo ligeramente más alto. Es necesario un
aumento en 10dB para que nuestros oídos perciban un sonido con el doble de
intensidad.
Muestreo La captura del sonido comienza en el micrófono. Cuando las ondas de sonido llegan a
él, el movimiento mecánico se traduce en una señal eléctrica. Esta señal se denomina
señal analógica porque es una señal continua en el tiempo, análoga al sonido original.
Fuente cibernética II
12
El muestreo de una señal analógica consiste en ir tomando valores discretos de su
amplitud a intervalos de tiempo pequeños. Lógicamente será más precisa la
reproducción cuantas más muestras por segundo se tomen. A estos valores obtenidos se
les asigna un valor digital que el ordenador puede entender y procesar de la manea que
cada aplicación requiera.
La fidelidad, término empleado por los entusiastas del audio para expresar la exactitud
en la réplica de la música original del sonido audio digital, depende de la selección de
la correcta frecuencia de muestreo y del correcto tamaño de muestra, siendo este último
el número de bits utilizados para almacenar cada muestra.
La frecuencia de muestreo debe ser lo suficientemente alta para que los sonidos de alta
frecuencia, como el sonido del cristal de una copa o el del arqueo de un violín, puedan
recogerse con precisión. Según el teorema de Nyquist, es posible repetir con exactitud
una forma de onda si la frecuencia de muestreo es como mínimo el doble de la
frecuencia de la componente de mayor frecuencia. La frecuencia más alta que puede
percibir el oído humano está cercana a los 20kHz, de modo que la frecuencia de
muestreo de 44.1kHz de las tarjetas de sonido es más que suficiente. Este valor es el
utilizado hoy en día por los reproductores de audio CD.
Considerando una señal x(t) de energía finita y banda limitada, tal que X(f) = 0 para
|f|>W es posible establecer un desarrollo de Fourier de X(f) limitado a |f|<=W del modo
siguiente:
Teniendo en cuenta que puede expresarse x(t) por la transformada inversa,
,
puede verse la similitud entre la transformada inversa y los valores particulares de x(t).
Efectivamente, basta hacer en la transformada inversa t=-n/2W y los coeficientes serán:
lo que quiere decir que puede escribirse el espectro X(f) de x(t) en función de las
propias muestras de x(-n / 2W) de x(t) de la forma:
Fuente cibernética II
13
donde se ha sustituido n por -n , lo cual es viable por la simetría del sumatorio.
Una vez expresada X(f) en términos de las muestras de x(t) es inmediato encontrar
la propia x(t) calculando la transformada inversa.
A este resultado se le denomina fórmula de interpolación, ya que permite obtener la
función original a partir de las muestras. Debe observarse que este resultado es
consecuencia de la limitación de banda de x(t) al intervalo (-W,W).
Se ha probado así el teorema de muestreo, que afirma que toda señal de energía finita y
banda limitada puede expresarse en modo único en función de sus muestras o valores
instantáneos tomados a intervalos regulares Ts , con Ts tal que (1/Ts)>=2W, siendo W la
máxima frecuencia espectral de la señal.
A la frecuencia fs=2W se le denomina frecuencia de Nyquist y al intervalo de muestreo
Ts, intervalo de Nyquist.
Como corolario del teorema puede afirmarse que dada una colección discreta de valores
x(n/2W) existe una función x(t) y solo una de banda limitada a W que pasa por todos los
puntos dados y que se construye mediante la fórmula de interpolación. Existen infinitas
funciones que pasan por esos puntos y son de anchura diferente de W.
Fuente cibernética II
14
Representación espectral El espectro de frecuencia de un fenómeno ondulatorio (sonoro, luminoso o
electromagnético), superposición de ondas de varias frecuencias, es una medida de la
distribución de amplitudes de cada frecuencia.
El espectro de frecuencias o descomposición espectral de frecuencias puede aplicarse a
cualquier concepto asociado con frecuencia o movimientos ondulatorios como los
colores, los sonidos, las ondas de radio o TV e incluso la radiación cósmica.
Una fuente de luz puede tener muchos colores mezclados en diferentes cantidades
(intensidades). Un arcoiris, o un prisma transparente, deflecta cada fotón según su
frecuencia en un ángulo ligeramente diferente. Eso nos permite ver cada componente de
la luz inicial por separado. Un gráfico de la intensidad de cada color deflactado por un
prisma que muestre la cantidad de cada color es el espectro de frecuencia de la luz o
espectro lumínico. Cuando todas las frecuencias visibles están presentes por igual, el
efecto es el "color" blanco, y el espectro de frecuencias es uniforme, lo que se
representa por una línea plana. De hecho cualquier espectro de frecuencia que consista
en una línea plana se llama blanco de ahí que hablemos no solo de "color blanco" sino
también de "ruido blanco" (Figura 6).
Fuente cibernética II
15
Figura 6. Ruido blanco generado con Matlab, muestras arriba y espectro abajo
De manera similar, una fuente de ondas sonoras puede ser una superposición de
frecuencias diferentes. Cada frecuencia estimula una parte diferente de nuestra cóclea
(caracol del oído). Cuando escuchamos una onda sonora con una sola frecuencia
predominante escuchamos una nota. Pero en cambio un silbido cualquiera o un golpe
repentino que estimule todos los receptores, se dice que contiene frecuencias dentro de
todo el rango audible.
Como se ha visto, hay una base física para modelar la luz, el sonido o las ondas de
radio en superposición de diferentes frecuencias. El proceso que cuantifica las diversas
intensidades de cada frecuencia se llama análisis espectral. Matemáticamente el análisis
espectral está relacionado con la transformada de Fourier. De la misma forma que la
representación temporal se realiza definiendo cada muestra por medio de su magnitud,
en un instante determinado, la trasformada de Fourier define mediante un número
complejo (módulo y fase) la componente armónica a una frecuencia determinada. En
las representaciones gráficas, frecuentemente sólo se representa el módulo al cuadrado
Fuente cibernética II
16
de ese número, y el gráfico resultante se conoce como espectro de potencia o densidad
espectral de potencia.
Filtrado FIR Entre los filtros existentes, la mayor restricción en cuanto a su uso es la característica
de la fase. Si se requiere fase lineal la opción inmediata es el filtrado FIR. Si bien en
esta sistema no se oye el resultado de la aplicación de los filtros, sí se percibe un efecto
visual en el que la distorsión de la señal por un aporte de fase no lineal desvirtuaría el
resultado.
La función de transferencia de un filtro FIR se representa mediante la transformada z de
su respuesta impulsional, de la misma forma que para cualquier sistema LTI:
La función de transferencia de cualquier filtro FIR de longitud es un
polinomio de orden M en . El orden de un filtro se define como el orden de su función
de transferencia. El orden corresponde también con el número de retardos que introduce
el filtro.
La respuesta en frecuencia de un filtro se define como el espectro de la señal de salida
dividido por el espectro de la señal de entrada. Viene dada al evaluar la función de
tranferencia en el círclo unidad, es decir .
Siendo un sistema representado por
donde X(z) es la transformada z de la entrada al filtro, la transformada z de la
salida, y la función de transferencia del filtro, una propiedad básica de la
transformada z es que sobre el círculo unidad , encontramos el espectro.
Entonces se obtiene
,
que es la definición de la transformada de Fourier en tiempo discreto.
Fuente cibernética II
17
Aplicado al sistema se tiene
La respuesta en frecuencia del filtro resulta un número complejo con modulo y aporte
de fase a cada frecuencia.
Filtrado en LabVIEW Durante la primera etapa del proyecto hubo que familiarizarse con el lenguaje
empleado en la Cyfom. Se eligió LabVIEW por ser un lenguaje especialmente
orientado a la programación con tarjetas de adquisición de datos y por ser de la misma
casa que fabrica la tarjeta PCI-6013. El uso de Matlab, que era más apropiado para las
tareas a desarrollar en esta nueva etapa, se desechó en un primer momento por este
motivo, además de que para poder trabajar con él, habría que reescribir el código
existente desde cero, incluyendo la propia configuración de la tarjeta para el nuevo
entorno.
LabVIEW es un entorno de programación gráfica concebido para adquisición de
señales, análisis de las mismas y control de instrumentos. En él se tratan las diferentes
funciones como bloques que, interconectados entre sí por hilos que representan
variables de medida, de control, etc., conforman los programas. La desventaja que se ha
encontrado es que no permite llegar a lo que hay detrás de esos bloques, a sus
principios de funcionamiento. Se echa en falta un contexto matemático en el que estar
en contacto con los fundamentos teóricos de las funciones, algo que permitiría realizar
pruebas y analizar resultados de una manera rápida y clara, paralelamente con la
construcción del programa.
Los primeros filtros fueron probados mediante la simulación. Una de las dificultades
presentadas fue que los filtros no están caracterizados en los términos que
familiarmente se utilizan en el área del filtrado digital. Se definen de una forma mucho
más general, por medio de frecuencias de paso, de rechazo, atenuaciones respectivas y
número de coeficientes del algoritmo de aproximación del filtro (que no corresponden
necesariamente al orden). Normalmente se definen los filtros por sus frecuencias de
Fuente cibernética II
18
corte, si son paso bajo o paso alto, o sus frecuencias centrales si son paso banda,
además de por el número de polos. Estos parámetros son interesantes en el diseño de
filtros porque son los que construyen los fundamentos teóricos sobre los que se apoya
el diseño. En el otro caso, en cambio, no se saben exactamente las consecuencias de la
alteración de uno de los parámetros, ya que todos están ligados entre sí (por eso no se
pueden conseguir filtros ideales, y hay que establecer compromisos entre la calidad del
filtro y el número de coeficientes). Muchas veces se ha llegado a filtros imposibles en
los que era necesario relajar alguna de las restricciones o aumentar el número de
coeficientes de aproximación. Esto supuso una gran cantidad de tiempo dedicado a la
comprensión de cómo LabVIEW maneja los filtros.
Inicialmente se intentó filtrar una sola señal para comprobar el funcionamiento de los
filtros uno a uno. Ello se consigue a partir del espectro de la señal filtrada, que al venir
de un ruido blanco, con un espectro plano, coincide con la característica del filtro
empleado. En todos los casos el desarrollo del programa fue incómodo por la dificultad
de manejo de los distintos parámetros y la poca versatilidad de los bloques, que tienen
asignados los tipos de las variables que utilizan y no se pueden cambiar, lo que hace
que para poner en interconexión dos componentes, o realizar cambios en el diagrama de
bloques, haya que realizar una adaptación de algún tipo entre ellos o a todo el circuito.
A continuación se resumen los resultados obtenidos:
• Separación de la señal en una banda de graves y otra de agudos
La frecuencia de separación se fija en 1kHz.
Duración del ensayo: 1s
Frecuencia de muestreo: 60kHz
Se sustituyó el generador de ruido blanco por un generador finito de tonos
uniformemente distribuidos en el dominio de la frecuencia, con amplitud constante
y fase aleatoria, debido a que el espectro del ruido blanco no era plano. Esto resultó
algo desconcertante, pero se prefirió, antes que seguir indagando en el misterioso
LabVIEW, moverse en el terreno de lo conocido. En la Figura 7 se muestra el
diagrama de bloques usado.
Fuente cibernética II
19
Figura 7. Diagrama de bloques del primer ensayo
Se observó en la característica del filtro una fuerte dependencia del número de
coeficientes. Al ser filtros relativamente selectivos (en torno a 1kHz), es necesario
subir mucho este número para evitar efectos indeseados como un excesivo
solapamiento de las zonas de transición, una alta componente de las frecuencias de
rechazo, o un deterioro en la ganancia de la banda de paso, aunque esto ultimo
podría corregirse mediante el escalado del filtro en magnitud (multiplicarlo por una
constante). Se observa también que para una aproximación muy gruesa (el menor
número de coeficientes) el algoritmo no consigue reproducir el comportamiento
adecuado, y corta la señal a frecuencias alejadas de la esperada.
En las sucesivas Figuras (de la 8 a la 21) se aprecian a la izquierda las señales
original (pseudo ruido blanco) y filtrada, y a la derecha, bajo la magnitud de la
característica en frecuencia del filtro, las representaciones espectrales de cada una
de ellas. Los filtros se definen mediante frecuencias de paso y de rechazo. La banda
de transición para paso alto y paso bajo está entre 10Hz y 1kHz.
Fuente cibernética II
20
Figura 8. Filtro paso bajo con 3 coeficientes
Figura 9. Filtro paso bajo con 4 coeficientes
Fuente cibernética II
21
Figura 10. Filtro paso bajo con 10 coeficientes
Figura 11. Filtro paso bajo con 20 coeficientes
Fuente cibernética II
22
Figura 12. Filtro paso bajo con 30 coeficientes
Figura 13. Filtro paso bajo con 40 coeficientes
Fuente cibernética II
23
Figura 14. Filtro paso bajo con 50 coeficientes
Figura 15. Filtro paso bajo con 100 coeficientes
Fuente cibernética II
24
Figura 16. Filtro paso alto con 3 coeficientes
Figura 17. Filtro paso alto con 5 coeficientes
Fuente cibernética II
25
Figura 18. Filtro paso alto con 10 coeficientes
Figura 19. Filtro paso alto con 20 coeficientes
Fuente cibernética II
26
Figura 20. Filtro paso alto con 50 coeficientes
Figura 21. Filtro paso alto con 100 coeficientes
• Filtrado en cinco bandas
La elección de la anchura de cada banda ha de elegirse en función de la percepción
de las frecuencias, que es logarítmica. Una anchura de 100Hz puede tener sentido a
Fuente cibernética II
27
bajas frecuencias, pero un resultado imperceptible a altas, además de resultar un
filtro de orden altísimo. En la Figura 22 se muestra cómo debe hacerse el filtrado y
su efecto en escalas lineal y logarítmica.
Figura 22. Anchos de las bandas en coherencia con su percepción
Se presenta ahora en la Figura 23 un esquema donde se implantan los cinco filtros
simultáneamente simulando el comportamiento previsto para su funcionamiento en
la fuente.
Fuente cibernética II
28
Figura 23. Diagrama para la descomposición en cinco bandas
Los resultados que posteriormente se probarían en tiempo real son los representados
en la Figura 24, de forma parecida a las representaciones anteriores. Arriba la señal
de entrada en los dominios de la frecuencia y el tiempo y a continuación los
sucesivos filtros representados en módulo y fase a la izquierda acompañados por las
correspondientes señales filtradas a la derecha.
Fuente cibernética II
30
Las pruebas en la fuente ofrecieron diversos resultados, ninguno satisfactorio. En
algunas ocasiones no se obtenía ninguna repuesta ante señal alguna, en otras
simplemente parecía no haber filtro. Se pensó que la acción requeriría unos
conocimientos mucho más amplios de LabVIEW, ya que el trabajo en este entorno
había resultado algo oscuro, o que la tarjeta o el lenguaje de programación no
permitirían realizar cierta cantidad de cálculos en tiempo real, o que la solución del
problema tuviera una respuesta más sencilla.
En la búsqueda de información sobre sistemas de adquisición de datos y su procesado
en tiempo real se obtuvieron algunas respuestas contradictorias. En la página web de
National Instruments se ofrece una ampliación de la tarjeta con un microprocesador que
realiza operaciones aritméticas en paralelo con el ordenador, concebido para
funcionamientos en tiempo real. Convencido de que el filtrado FIR no requería de tanta
capacidad de cálculo, aunque con ciertas reservas al tratarse de cinco filtros de gran
orden en paralelo, se preguntó a diversos profesores del departamento de Electrónica y
Automática que ofrecieron distintas soluciones. Una de ellas fue el uso de un
procesador digital de señales, o DSP que habría que programar desde el principio con
un lenguaje de alto nivel como C. La otra, teniendo en cuenta las características de la
tarjeta, fue bajar la frecuencia de muestreo y tratar de eliminar de la interfaz con el
usuario todos aquellos elementos que pudieran ocupar demasiados recursos del
microprocesador, como las representaciones gráficas. Bajar la frecuencia de muestreo
suponía la aparición del fenómeno aliasing, que confundiría las componentes armónicas
mayores de la mitad de la frecuencia de muestreo con componentes de baja frecuencia,
efecto especialmente negativo para los objetivos fijados, que además requeriría la
inclusión de un filtro analógico llamado prefiltro antialiasing
Antes de pensar seriamente en utilizar Matlab para generar e implantar los filtros se
optó por continuar intentando el procesado de la señal en LAbVIEW, esta vez en la
parte del programa de funcionamiento en modo de reproducción de archivo para no
abandonar el trabajo realizado. En este caso se consiguió filtrar un archivo de audio con
algunas de las configuraciones utilizadas offline, pero sin un resultado claro. Se
observó un comportamiento distinto de los relés, menos enérgico, que con el archivo
sin filtrar. Pero LabVIEW no es una herramienta que permita el manejo de los datos
para su estudio, comparado con Matlab, que está especialmente orientado a ello y
Fuente cibernética II
31
dispone de numerosas ventajas a la hora de realizar análisis y diseños de filtros de todo
tipo al ser un entorno matemático que utiliza un lenguaje afín a los utilizados en
ingeniería. También se pensó en realizar desde LabVIEW una llamada a Matlab para
realizar el filtrado, pero elevaría mucho el uso de recursos y podría ser más complicado
que reescribir el código de la Cyfom en Simulink. Mezclar dos lenguajes diferentes
podía, además, generar problemas y dificultar la gestión de variables, además de
suponer un aumento de los recursos y el tiempo de ejecución que no están justificados
en un sistema en tiempo real.
Por otra parte Matlab viene con los drivers de muchas tarjetas de distintos fabricantes
entre la que se encuentra la PCI-6013 de National Instruments, por lo que desaparece el
inicialmente planteado problema de configuración del hardware para el nuevo entorno.
Fuente cibernética II
33
Sobre Matlab y Real Time Windows Target Matlab presenta una aplicación para hacer simulaciones en tiempo real, la toolbox Real
Time Windows Target. Esta herramienta presenta diferentes aplicaciones como control
en tiempo real, simulación en tiempo real para plantas físicas, como por ejemplo
turbinas de avión, y modelado de sistemas físicos, donde se permite realizar
visualizaciones de señales con el bloque de osciloscopios de simulink y modificación
de parámetros y control en tiempo real. La comunicación entre el equipo y el hardware
exterior se realiza por medio de una tarjeta de adquisición de datos, que permite operar
con señales de entrada y/o salidas analógicas y digitales.
Matlab permite la programación de comandos agrupándolos en ficheros de texto, como
un lenguaje convencional de programación mediante instrucciones. En ellos se pueden
utilizar todos los comandos de Matlab, como si fuera la ventana principal del programa,
y permite el uso de estructuras de control como condicionales y bucles.
El desarrollo de todo el código, pruebas y presentación de resultados se realiza por
medio de las dos herramientas: un código en texto en el que se definen variables, un
vector de frecuencias para la representación espectral y se diseñan los filtros, un
diagrama en Simulink equivalente al programa inicial en LabVIEW, donde se incluye
el filtrado de la señal, y un segundo archivo de texto en el que se hace el análisis de
Fourier y se hacen las representaciones gráficas pertinentes.
Una vez comprobada la comunicación con la tarjeta mediante programas simples para
capturar la señal sonora y escribir valores determinados en el puerto digital, se fue
subiendo la complejidad hasta llegar al comportamiento esperado. En este proceso
diversos problemas llevaron a bajar la frecuencia de muestreo de los 60kHz iniciales,
heredados del proyecto anterior, a 20kHz para evitar problemas de aparente rebose de
búfer. Sin embargo en el funcionamiento con los filtros se pudo volver a subir hasta los
44.1kHz. La investigación de este aparente sinsentido se deja para futuras
depuraciones, ya que no dificulta en definitiva el funcionamiento actual.
Fuente cibernética II
34
Fuente cibernética II
Cyfom en Matlab Se detalla la programación del código de control de la Cyfom que engloba la
conversión de un lenguaje a otro y la construcción de la parte relativa al filtrado y al
análisis según bandas.
La captura es el primer paso; el bloque de adquisición está configurado para devolver la
entrada normalizada en base al rango de medida de la tarjeta y bipolar, por la naturaleza
de la señal adquirida (Figura 25). Para poder evaluar la magnitud de interés es necesario
tomar el módulo de la señal, que corresponde a la intensidad sonora, como se muestra
en la Figura 26.
Figura 25. Configuración de la entrada analógica
Fuente cibernética II
35
Figura 26. Esquema básico de la Cyfom en Simulik
La Figura 27 muestra el juego de comparadores, donde se genera una salida distinta
para cada intervalo de intensidades. Los condicionales en Simulink llevan asociados
dos bloques, uno en el que se evalúa la expresión, y que devuelve 1 ó 0 (condición
satisfecha o no), y otro en el que se escriben las acciones a tomar. Este último está
gobernado por la señal que proviene del bloque anterior, que sirve de habilitación,
como se aprecia en la Figura 28. Una vez satisfecha cada condición se pone en marcha
el correspondiente bloque de acción donde se realizan dos operaciones: escribir en la
salida digital la codificación necesaria para la altura correspondiente, y permitir el paso
de la señal al siguiente paso de comparación (Figura 29); en caso contrario se inhibe el
avance de la señal por los comparadores, quedando en la última condición cumplida; en
la Figura 30 se muestra la configuración necesaria del bloque out para limpiar su valor
hasta la siguiente habilitación. En la primera comparación las salidas se fuerzan a cero
mediante un bloque else, de no ser alcanzado el primer umbral.
Fuente cibernética II
36
Figura 27. Juego de comparadores
Figura 28. Condicional y bloque de instrucciones
Fuente cibernética II
37
Figura 29. Acciones durante la habilitación del bloque
Figura 30. Configuración del bloque out para limpiar el valor durante la inhabilitación del bloque action
En esta ocasión se ha aprovechado el número de electroválvulas existentes y la tara
establecida en el proyecto original para conseguir no 10, sino 15 estados lógicos,
aumentando así la resolución de los chorros. El paso de comparación para la señal de
Fuente cibernética II
38
±10V (que se toma en el programa normalizada entre -1 y 1, y de la que se obtiene
posteriormente el valor absoluto) es de 1/15.
Filtrado a un colector Los bloques FIR reciben los coeficientes de unos filtros previamente diseñados.
Durante las pruebas para el diseño se encontró un comando en que devuelve estos
coeficientes a partir de las frecuencias características y el orden del filtro, el comando
fir1.
En esta ocasión no existe el problema de la degradación de los filtros por no poder
cumplir la especificación impuesta, los filtros obtenidos tienen ganancia unidad a las
frecuencias de diseño y es a través del orden del filtro como se determina la
característica al resto de frecuencias, en cuanto a rizados, niveles de atenuación en las
bandas de rechazo y pendientes de caída. En los casos de filtrado convencional de
imágenes o sonido estos parámetros no suelen ser excesivamente críticos si se quiere
ponderar una banda sobre las demás, pero sí en casos donde el filtrado quiere ser algo
más selectivo, como en los que se refieren al audio de alta fidelidad. Como si fuera un
ecualizador gráfico y de cara a futuras ampliaciones se ha intentado hacer filtros
relativamente selectivos, permitiendo un pequeño solapamiento de las bandas. En una
ventana de LTI Viewer (Figura 31) se observan las características más relevantes de los
filtros para su depuración sin necesidad de realizar continuas simulaciones. Aquí una
ventaja de Matlab.
Fuente cibernética II
39
Figura 31.Característica de los filtros diseñados, en LTI Viewer (magnitud)
Las pruebas realizadas offline son conceptualmente iguales a las realizadas en
LAbVIEW para comprobar la eficacia de los filtros. En esta ocasión se utiliza como
entrada un bloque que genera un ruido blanco de media cero y varianza uno con
frecuencias de cero a la mitad de la de muestreo. Los resultados se muestran mediante
un análisis posterior de los registros de las señales existentes en el esquema de
simulación, que se pueden ver en la Figura 32.
Fuente cibernética II
40
Figura 32. Esquema para los ensayos offline
Durante la implantación de los filtros en la fuente, ya con el micrófono, se probó el
colector para cada rango de frecuencias con la frecuencia de muestreo de 20kHz. La
tarjeta cuenta con ocho líneas digitales de las que se utilizan cinco para controlar el
estado de cinco electroválvulas, con lo que no se puede comprobar a priori si se podría
actuar sobre cinco grupos de electroválvulas simultáneamente. Se observaba respuesta
en casi todos los casos, más débil que ante las señales sin filtrar y algo oscuras en
cuanto a interpretación debido a que la voz no tiene un espectro plano y a que además
éste es muy limitado. Lo ideal sería introducir señales más ricas, pero esto, con la
frecuencia de muestreo utilizada, podría fácilmente dar problemas de aliasing. Para
evitar estos problemas se suelen emplean dos técnicas en las que se pensó y que se
valoraron para su inclusión en el proyecto. La primera, de la que más se habla en la
literatura, es el filtro antialiasing, un filtro analógico que se pone antes de realizar la
captura que limita la banda de la señal a la mitad de la frecuencia de muestreo; para ello
hay que buscar filtros de fase lineal para evitar la distorsión y el deterioro de la señal
antes de la captura. La segunda, usada en entornos profesionales, se conoce como
oversampling and decimation y consiste en muestrear todo lo rápido que permite el
hardware, obteniendo una señal con muchas muestras y con un espectro probablemente
Fuente cibernética II
41
más ancho que el de la señal de interés, y realizar después un filtrado digital mediante
una ventana cuadrada de promediado con una anchura tal que permita tener una señal
de anchura de espectro aceptable a la vez que con una tasa de muestras que permita ser
procesada por el software. En cualquier caso Matlab permite hacer un análisis a
posteriori de las señales en el que se representan, filtradas y sin filtrar, las señales en el
dominio del tiempo y de la frecuencia para obtener una visión del comportamiento del
sistema. Este análisis se muestra a continuación en las Figuras de la 33 a la 37.
Figura 33. Ruido blanco y respuesta ante el filtro 1 de frecuencia de corte
Fuente cibernética II
42
Figura 34. Ruido blanco y respuesta ante el filtro 1 de frecuencia de corte
Figura 35. Ruido blanco y respuesta ante el filtro 1 de frecuencia de corte
Fuente cibernética II
43
Figura 36. Ruido blanco y respuesta ante el filtro 1 de frecuencia de corte
Figura 37. Ruido blanco y respuesta ante el filtro 1 de frecuencia de corte
Fuente cibernética II
44
Simulación de filtrado a cinco colectores Una vez comprobado que los espectros de todas las señales eran correctos, se ideó una
manera de comprobar el funcionamiento de la fuente sin necesidad de disponer de cinco
salidas digitales: haciendo un barrido de frecuencias en el rango de trabajo (0-fs/2), la
altura de los chorros sería máxima a aquellas frecuencias donde la ganancia fuera 1,
siendo menor la altura para frecuencias intermedias; se leería la respuesta en frecuencia
del sistema en la altura de las columnas de agua. Con la ayuda de un generador de
señales y un osciloscopio con el que visualizar la señal de entrada se aplicó una
sinusoide de frecuencia constante ajustable manualmente a la mesa de mezclas para
tener a la entrada de la tarjeta una señal de ±10V. Al reparar en que cada rama del
circuito intentaría escribir por su cuenta en el mismo puerto digital, se ponderó cada
una de ellas mediante una constante (de forma parecida a como trabaja un ecualizador
gráfico), de forma que hubiera sólo una activa en cada comprobación, pero el resultado
no fue el esperado ni siquiera eliminando el bloque else de cada unidad de
comparación, que sería en este caso el que tratara de poner la salida a cero.
La solución definitiva consistió en hacer un detector de “presencia” de frecuencias, es
decir, realizar en cada rama una sola comparación, con 0.9 en este caso, y escribir una
sola palabra en el puerto digital, en lugar de quince, como se venía haciendo. El
resultado es una variación de la altura en función de las bandas de frecuencias, lo que
indica que las ramas funcionan independientemente.
Las Figuras de la 38 a la 42 son instantáneas tomadas durante estas pruebas. En el
osciloscopio, siempre en la misma escala, se muestra la señal inyectada a la entrada. A
su lado, las cinco columnas de agua con su altura correspondiente.
Figura 38. 38Hz
Fuente cibernética II
46
Figura 42. 3,5kHz
Es necesario comprobar el funcionamiento con cinco salidas digitales de 8 bits; lo que
se está haciendo aquí es simular cinco salidas digitales a partir de una.
Fuente cibernética II
48
LabVIEW es un lenguaje de programación gráfica muy potente, pero no está orientado
al diseño ni al estudio como lo está Matlab. Ambos permiten realizar una interfaz con el
usuario, y es en este ámbito donde LabVIEW está especialmente enfocado.
La construcción de la fuente cibernética para su funcionamiento como un analizador
espectral en forma de columnas de agua debe hacerse forzosamente construyendo un
colector para cada chorro. El control de cada colector pueda hacerse por medio de cinco
líneas digitales o por multiplexión en tiempo de la línea existente, de la que se utiliza un
bit para cada electroválvula, quedando tres libres para seleccionar cada uno de los cinco
colectores. Una vez comprobado el funcionamiento completo en tiempo real sería más
fácil depurar los filtros y bajar los órdenes que se utilizan para evitar los solapamientos
de las bandas, ajustándolos hasta tener el efecto visual deseado.
Un posible control dinámico de la iluminación se haría a partir de ciertas características
del sonido al margen de sus magnitudes físicas. En música se definen conceptos
relativos a la proporción armónica, la duración y las velocidades de aparición (ataque) o
de desvanecimiento (decaimiento). En este caso ya no sería suficiente una sola línea
digital multiplexada para el control del sistema total.
Si se quiere hacer este tipo de análisis, que no son ya tan simples como el filtrado, lo
más aconsejable es un procesador digital de señales o DSP (Digital Signal Processor),
que suele tener una enorme capacidad de cálculo y existen modelos con un gran
número de entradas y salidas tanto analógicas como digitales.
Como apunte adicional se menciona la idea de realizar también un control de la
orientación de salida de los chorros, también en tiempo real, y a partir de algún otro
parámetro sonoro. Pequeñas variaciones del ángulo (sólido) de salida con respecto a la
vertical dotaría al conjunto de una apariencia más enérgica llegando a conseguir un
auténtico baile del agua en tiempo real y a partir de cualquier tipo de sonido captado. Se
proponen métodos como pequeños motores acoplados a las bocas de los chorros o la
creación de un campo magnético variable en intensidad y sentido en el plano
perpendicular de salida, a cuya fuerza el agua sería sensible modificando su trayectoria.
Fuente cibernética II
50
Fuente cibernética (Proyecto fin de carrera, Carlos Jiménez Alonso, 5º Ingeniería Industrial en la Universidad Pontificia Comillas, año 2003) DSP First (James H. McClellan, Ronald W. Schlafer, Mark A. Poder, Ed. Prentice Hall) Tutoriales LabVIEW (National Instruments) Manual de la DAQ PCI6013 (National Instruments) Tutoriales Matlab (MathWorks) http://www.monografias.com/trabajos22/aplicaciones-matlab/aplicaciones-matlab.shtml#resum (Aplicaciones en tiempo real para Matlab) http://ccrma.stanford.edu/~jos/filters/ (Introducción al filtrado digital) http://www.ghesafuentes.com (Empresa creadora de la fuente cibernética del Parque Juan Carlos I de Madrid) Entre otras.