PROCESAMIENTO DIGITAL DE SEÑALES Manual de prácticas LabVIEW Facultad de Ciencias Benemérita Universidad Autónoma Autónoma de San Luis Potosí
Dr. Daniel Ulises Campos Delgado
[email protected]
ÍNDICE
I.
Introducción...................................................... Introducció n............................................................................................................. ..................................................................... .............. 2
I.
Características Caracterís ticas Generales de un Programa en LabView ............................................... 3 Estructura de un VI .................................................................................................................... 3 Programación de un VI ............................................................................................................ 6 Ejecución de un VI .................................................................................................................... 7
II.
Manual de Prácticas en LabVIEW ..................................................... ...................................................................................... ................................. 9 Práctica #1. Promedidador .................................................................................................... 9 Práctica #2. Números Aleatorios .......................................................................................... 11 Práctica #3. Visualización de Señales ................................................................................. 13 Práctica #4. Uso de Case Structure ..................................................................................... 15 Práctica #5. Medición de Temperatura ............................................................................. 18 Práctica #6. Efecto de Traslape ........................................................................................... 28 Práctica #7. Lazo ADC-DAC Traslape ................................................................................. 32 Práctica #8. Filtro de Hendidura FIR e IIR ............................................................................ 36 Práctica #9. Filtro Pasa Bajos FIR e IIR .................................................................................. 40
III.
Anexos ................................................... ......................................................................................................... ............................................................................ ...................... 44 Tarjeta NI-USB 6009 .................................................................................................................. 44 Sensor LM35 ............................................................................................................................. 48 Atajos de Teclado en LabVIEW ............................................................................................ 49
IV.
Bibliografía Bibli ografía ..................................................... ............................................................................................................ ................................................................... ............ 50
1
I.
INTRODUCCIÓN
LabVIEW es una plataforma de programación grafica en la que se pueden diseñar aplicaciones que involucren la adquisición, control, análisis y presentación de datos [1]. Es similar a los l os sistemas de desarrollo que utilizan lenguajes de programación programación como C o Java, sin embargo tienen tienen una gran diferencia, en tanto que que dichos lenguajes utilizan líneas de texto para crear el código fuente de un programa, LabVIEW emplea la programación gráfica o lenguaje G para crear programas basados en diagramas de bloques. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales o Vis. National Instruments creo LabVIEW para funcionar sobre sistemas operativos MAC, sin embargo fue lanzado por por primera vez en 1986 [1] y ahora se encuentra disponible disponible para las plataformas Windows,UNIX,Mac Windows,UNIX,Mac y Linux Li nux [2]. Para el empleo de LabVIEW no se requiere gran experiencia en programación, ya que se emplean íconos, términos e ideas familiares a científicos e ingenieros, y se apoya sobre símbolos gráficos en lugar de lenguaje escrito para construir las aplicaciones. Por ello resulta mucho más intuitivo que el resto de lenguajes de programación convencionales [3]. Las ventajas que proporciona el empleo de LabVIEW se resumen en las siguientes:
El tiempo de desarrollo de las aplicaciones se reduce al menos de 4 a 10 veces. Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del hardware como del software. Da la posibilidad a los usuarios de crear soluciones completas y complejas. Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y presentación de datos. El sistema está dotado de un compilador gráfico para lograr la máxima velocidad de ejecución posible. Ofrece la posibilidad de incorporar incorporar aplicaciones escritas en otros lenguajes.
2
II. CARACTERÍSTICAS GENERALES DE UN PROGRAMA EN LABVIEW ESTRUCTURA DE UN VI Los programas desarrollados mediante LabVIEW, como se mencionó anteriormente, se denominan Instrumentos Virtuales (Vis, por sus siglas en ingles), porque su apariencia y funcionamiento funcionamiento imitan los de un instrumen i nstrumento to real. Los VIs tienen una parte interactiva con el usuario y otra parte de código fuente, y aceptan parámetros procedentes procedentes de otros VIs. Todos los l os VIs tienen un panel frontal y un diagrama de bloques. Las paletas contienen las opciones que se emplean para crear y modificar los VIs.
Panel Frontal: El Panel Frontal es la interfaz con el usuario, la cual es utilizada para interactuar con el usuario cuando el programa se está ejecutando. Los usuarios pueden observar los datos del programa actualizados en tiempo real. El panel frontal está formado por una serie de botones, pulsadores, potenciómetros, gráficos, etc. Cada uno de ellos puede estar definido como un control control o un indicador, los primeros sirven para introducir parámetros al VI, mientras que los indicadores se emplean para mostrar los resultados producidos, ya sean datos adquiridos o resultados de alguna operación. La figura 2.1 muestra el panel frontal de un VI.
Controles
Indicador
Figura 2.1. Panel frontal de LabVIEW que muestra los controles e indicadores de un VI.
3
Diagrama de Bloques: es el programa propiamente dicho y constituye el código fuente del VI. VI . El diagrama de bloques es donde se realiza la implementación del programa del VI para controlar o realizar cualquier procesado de las entradas y salidas que se crearon en el panel frontal (Figura 2.2). El diagrama de bloques incluye funciones y estructuras integradas en las librerías que incorpora LabVIEW. En el lenguaje G las funciones y las estructuras son nodos elementales, son análogas a los l os operadores o librerías de funciones de los lenguajes l enguajes convencionales. convencionales. Los controles e indicadores que se colocaron previamente previamente en el Panel Frontal, se materializan en el diagrama de bloques mediante las terminales. El diagrama de bloques se construye conectando conectando los distintos objetos entre sí, como si de un circuito se tratara. Los cables unen terminales de entrada y salida con los objetos correspondientes, correspondientes, y por ellos fluyen los datos.
Figura 2.2. Diagrama de bloques de un VI.
Paletas: Las paletas de LabVIEW proporcionan las herramientas que se requieren para crear y modificar tanto el panel frontal como el diagrama de bloques. Existen las siguientes paletas: 1. Paleta de herramientas (Tools palette). Se emplea tanto en el panel frontal como en diagrama de bloques. Contiene las herramientas necesarias para editar y depurar los objetos tanto del panel frontal como del diagrama de bloques (Figura 2.3).
4
Figura 2.3. Paleta de herramientas de LabVIEW.
5 2. Paleta de controles (Controls palette). Se utiliza únicamente en el panel frontal. Contiene todos los controles e indicadores que se emplearán para crear la interfaz del VI con el usuario (Figura 2.4).
Figura 2.4. Paleta de controles de LabVIEW.
3. Paleta de funciones (functions palette). Se utiliza solo en el diagrama de bloques y se emplea en el diseño del diagrama de bloques. La paleta de funciones contiene todos los objetos que se emplean en la implementación del VI, ya sean funciones aritméticas, entrada/salida de señales, entrada/salidad de datos a fichero, adquisición de señales, temporización de la ejecución del programa (Figura 2.5).
6 Figura 2.5. Paleta de funciones de LabVIEW.
PROGRAMACIÓN DE UN VI Con el entorno gráfico de programación de LabVIEW se comienza a programar a partir del panel frontal. En primer lugar se definirán y seleccionarán de la paleta de controles todos los controles (entradas que dará el usuario) e indicadores (salidas que presentará en pantalla el VI) que se emplearán para introducir los datos por parte del usuario y presentar en pantalla los resultados. Una vez colocados en la ventana correspondiente al panel frontal todos los objetos necesarios, debe pasarse a la ventana Diagram, que es donde se realiza la programación propiamente dicha (diagrama de bloques). Al abrir esta ventana, en ella se encuentran las terminales correspondientes a los objetos situados en el panel frontal, dispuestas automáticamente por LabVIEW. Se deben ir situando las funciones, estructuras, etc. que se requieran para el desarrollo del programa, las cuales se unen a las terminales mediante cables. Para facilitar la tarea de conexión de todos los terminales, en el menú “Help” puede elegirse la opción “Show Help”, con lo que al
colocar el cursor del ratón sobre un elemento aparece una ventana con información relativa a éste (parámetros de entrada y salida). Además, si se tiene seleccionado el cursor de cableado, al situar éste sobre un elemento se muestran los terminales de forma intermitente.
EJECUCIÓN DE UN VI Una vez se ha concluido la programación del VI se debe proceder a su ejecución. Para ello la ventana activa debe ser el panel frontal.Una vez situados en el panel frontal, se pulsará el botón de Run, situado en la barra de herramientas (Figura 2.6).
7 Run Figura 2.6. Botón de Run en un VI Una vez pulsado el botón de Run, el programa comenzará a ejecutarse. Mientras dura la ejecución del mismo, la apariencia del botón de Run es la que se muestra en la Figura 2.7.
Figura 2.7. Botón de run durante la ejecución de un VI De este modo el programa se ejecutará una sola vez. Si se desea una ejecución continua, se pulsará el botón situado a la derecha del de Run (Continuous Run). Si durante el funcionamiento continuo del programa se vuelve a pulsar el citado botón, se finalizará la última ejecución del mismo, tras lo cual el programa se detendrá (Figura 2.8).
Figura 2.8. Botón de continuous run en un VI.
Para finalizar la ejecución de un programa se puede operar de dos formas. La primera, y la más aconsejable, es emplear un botón en el panel frontal del VI, cuya pulsación produzca la interrupción del bucle de ejecución de la aplicación. La segunda forma de detener la ejecución del VI es pulsando el botón de pausa o el de stop. La diferencia entre ambos es que si se pulsa stop, la ejecución del programa finaliza inmediatamente, mientras que si se pulsa pausa, se produce una detención en el funcionamiento del programa, retomándose su ejecución una vez se vuelve a pulsar el mismo botón (Figura 2.9).
8
Stop
Pausa
Figura 2.9. Botones de Stop y Pausa.
III. MANUAL DE PRÁCTICAS EN LABVIEW PRÁCTICA #1. PROMEDIDADOR OBJETIVO. DISEÑAR UN VI QUE TOME 3 CANTIDADES Y GENERE SU PROMEDIO, MÍNIMO Y MÁXIMO.
Actividades
Realizar un programa en LabVIEW, que tome tres números, que el usuario introducirá, para generar su promedio y además muestre su máximo y mínimo. La sugerencia de programa se ilustra en la Figura 3.1
Figura 3.1. Sugerencia del programa de la práctica 1. Notas
Dado que es un programa que no necesita mayor interacción con la interfaz, se pude omitir poner el código en alguna estructura de programación.
9
Bloques a utilizar
Numeric Control, Numeric Display, Build Array, Add, Divide, Numeric Constant, Array Max & Min.
Resultados En la Figura 3.1.2 se observa claramente que el promedio, el número máximo y mínimo son los correctos.
10
Figura 3.1.2. Resultados de la práctica 1.
PRÁCTICA #2. NÚMEROS ALEATORIOS OBJETIVO. REALIZAR UN PROGRAMA DONDE SE GENEREN 1000 NÚMEROS ALEATORIOS, Y CALCULE SU PROMEDIO Y VARIANZA.
Actividades
Diseñar un programa en LabVIEW que genere 1000 números aleatorios, y calcule su promedio y varianza, además graficar la señal resultante. La sugerencia de programa se encuentra en la Figura 3.2.1.
Figura 3.2.1. Sugerencia de programa para la práctica 2.
Notas
En este caso es usado un waveform chart, ya que permite visualizar el número de muestra y no la escala de tiempo como el waveform graph.
Bloques a Utilizar
Numeric Display, Waveform Chart, For Loop, Add Array Elements, Random Number (0-1), Substract, Divide, Square, Numeric Constant.
11
Resultados En la Figura 3.2.2 se observa claramente que el promedio, y la varianza son los correctos
12
Figura 3.2.2. Resultados de la práctica 2.
PRÁCTICA #3. VISUALIZACIÓN DE SEÑALES OBJETIVO. USO DE CICLOS WHILE Y VISUALIZACIÓN DE SEÑALES POR MEDIO DE GRÁFICAS
Actividades
Diseñar un VI que grafiqué de manera continua una señal senoidal a una frecuencia 3.5 Hz con una amplitud 10V a la que se le añadirá ruido blanco. La gráfica debe visualizar la señal original con y sin ruido, además de tener un botón de paro. La sugerencia de programa se encuentra en la Figura 3.3.1.
Figura 3.3.1. Sugerencia de programa para la práctica 3. Notas
Los parámetros de frecuencia y amplitud pueden ser modulados por medio de controles independientes
13
Bloques a utilizar
Sine Waveform, Numeric Constant, Gaussian White Noise Waveform, Add, Waveform Chart, While Loop, Stop Button.
Resultados
En la Figura 3.3.2, se puede observar claramente las dos señales dentro de la waveform chart donde la señal original esta en color blanco, mientras que la señal con ruido blanco se muestra en color rojo.
Figura 3.3.2. Resultados de la práctica 3.
14
PRÁCTICA #4. USO DE CASE STRUCTURE OBJETIVO. UTILIZAR LA EVALUACION CASE PARA VISUALIZAR UNA SEÑAL POR MEDIO DE UNA WAVEFORM CHART
Actividades.
Diseñar un programa en LabVIEW que grafique dos señales senoidales donde la frecuencia y amplitud (frecuencia de 0 a 10 Hz, y amplitud de 0 a 10) son variadas por controles independientes. De acuerdo a un botón de selección, se podrá relizar la suma o multiplicación de las señales, mostrando primero las 2 señales originales y en otra gráfica la señal procesada. El programa debe de contener un botón de paro general. La sugerencia del programa se observa en las Figuras 3.4.1 y 3.4.2.
Figura 3.4.1. Sugerencia de programa para la práctica 4, en el caso que el case este en False.
15
16
Figura 3.4.2. Sugerencia de programa para la práctica 4, en el caso que el case este en True.
Notas
Para el caso donde el case es verdadero, se realizará la suma de las señales.
Cuando el case es falso, se realiza la multiplicación de las señales.
Bloques a utilizar
Dial, Push Button, Vertical Pointer Slider, Horizontal Toggle Switch, Waveform Chart, Sine Waveform, Build Array, Case Structure, Multiply, Add.
Resultados
En la Figura 3.4.3, se muestra cuando el case esta en verdadero (true) y por lo tanto la señal procesada muestra la suma de las señales.
17
Figura 3.4.3. Panel frontal cuando el Case está en True.
En la Figura 3.4.4, se muestra cuando el case esta en falso (false) y por lo tanto la señal procesada muestra la multiplicación de las señales.
Figura 3.4.4. Panel frontal cuando el Case está en False.
PRÁCTICA #5. MEDICIÓN DE TEMPERATURA OBJETIVO. REALIZAR UNA MEDICIÓN DE TEMPERATURA A TRAVÉS DE UNA ENTRADA ANALÓGICA DE LA TARJETA NI USB-6009
Material
1 tarjeta NI-USB 6009 1 sensor de temperatura LM35
3 resistencias de 220Ω
1 led rojo 1 led verde
Actividades
Implementar el diagrama de conexiones de la Figura 3.5.1. Implementar un programa, utilizando el bloque de LabVIEW “DAQ Assistant” de la tarjeta NI-USB 6009, donde se muestre la temperatura obtenida a través del sensor LM35, además el programa deberá activar/desactivar dos leds dependiendo del rango de temperatura a la que se encuentre sometido el termistor LM35. El led verde deberá activarse cuando la temperatura este por debajo de los 31°C y desactivarse cuando esta sea excedida, mientras que el led rojo deberá activarse cuando la temperatura exceda los 31°C y estar desactivado mientras no rebase el rango establecido. Acondicionar la señal del sensor LM35 en el programa para desplegar la temperatura en °C.
Descripción del programa
El programa consiste en leer una entrada analógica proveniente del sensor de temperatura LM35. La señal recibida debe ser acondicionada para realizar la conversión a °C y así mostrarla en forma numérica, en un termómetro y una Waveform Graph dentro de la plataforma de LabVIEW (ver anexos para el “datasheet” del sensor LM 35).
18
19
Figura 3.5.1. Diagrama de conexiones para la práctica 4.
Notas:
En el caso del led verde, la configuración será la misma, solo debe seleccionarse a01 para la salida de voltaje. El datasheet del LM35 puede ser consultado en la sección de anexos de este mismo manual.
Bloques a utilizar
Daq Assistant, Waveform Graph, Boolean, Multiply, Less?,Greater o Equal?, Select, Thermometer, Numeric, Stop.
Programa
20
Figura 3.5.2. Sugerencia de programa para la práctica 4.
Configuración de los DAQs
Para el DAQ 1.
1. Para obtener el bloque DAQ Assistant, hacer un click derecho sobre Block
Diagram, seleccionar Express, dar click sobre el icono Input y seleccionar el bloque DAQ Assistant, tal como se observa en la Figura 3.5.3.
21
Figura 3.5.3. Icono de DAQ ASSISTANT.
2. Para inicializar el bloque, dar click sobre “Acquire Signal”, seleccionar “Analog Inputs” y “Voltage”, por medio de esto se obtendrán los datos de la señal
analógica de temperatura. Esto se observa en la figura 3.5.4.
.
22
Figura 3.5.4. Inicializar el bloque DAQ ASSISTANT.
3. Seleccionar el puerto a utilizar, en este caso, seleccionar ai0.
Figura 3.5.5. Seleccionar el puerto a utilizar del DAQ ASSISTANT.
4. Al finalizar se debe ver el bloque tal como en la Figura 3.5.6.
23
Figura 3.5.6. Bloque DAQ ASSISTANT ya finalizado.
5. Cambiar el parámetro de “Terminal Configuration” a “RSE” y dar click en Ok, tal
como lo muestra la Figura 3.5.7.
Figura 3.5.7. Selección de Terminal Configuración.
Para el DAQ 2 Y 3
1. Para obtener el bloque DAQ Assistant, dar click derecho sobre Block Diagram, seleccionar Express, hacer click sobre el icono Output y seleccionar el bloque DAQ Assistant, tal como se observa en la Figura 3.5.8.
24
Figura 3.5.8. Seleccionar el icono de DAQ ASSITANT 2. 2. Para inicializar el bloque, dar click sobre “Generate signals”, seleccionar “An alog Outputs” y “Voltage”, por medio de esto se generaran las señales que
activaran/desactivaran los leds correspondientes al rango de temperatura. Esto se observa en la Figura 3.5.9.
Figura 3.5.9. Inicialización del DAQ ASSITANT 2.
3. Seleccionar el puerto a utilizar, en este caso, se configurará primeramente el led rojo, por lo tanto seleccionar ao0. Esto se muestra en la Figura 3.5.10.
25
Figura 3.5.10. Selección del puerto del DAQ ASSISTANT 2.
4. Terminar la configuración poniendo rangos de 0 a 4 volts, tal como lo muestra la Figura 3.5.11. Dar click en OK.
Figura 3.5.11. Configuración de los rangos de voltaje del DAQ ASSITANT 2.
Resultados
Al someter el sensor LM35 a una temperatura menor de 31°, dentro del programa de LabVIEW se observa cómo se prende el led verde, de igual manera dentro del circuito implementado el led verde se ilumina. Esto se observa en las Figuras 3.5.12. y 3.5.13.
26
Figura 3.5.12. Resultados en el VI, cuando la temperatura es menor de 31°C.
Figura 3.5.13. Resultados en el circuito, cuando la temperatura es menor de 31°C.
Al someter el sensor LM35 a una temperatura mayor de 31°, dentro del programa de LabVIEW se observa cómo se prende el led rojo, de igual manera dentro del circuito implementado el led rojo se ilumina. Esto se observa en las Figuras 3.5.14. y 3.5.15.
27
Figura 3.5.14. Resultados en el VI, cuando la temperatura es mayor de 31°C.
Figura 3.5.15. Resultados en el circuito, cuando la temperatura es mayor de 31°C.
PRÁCTICA #6. EFECTO DE TRASLAPE OBJETIVO. CREAR UN PROGRAMA EN LABVIEW DONDE SE PU EDA OBSERVAR EL FENÓMENO DE TRASLAPE ( AL IA SI NG ) AL MODULAR LA FRECUENCIA DE MUESTREO DE UNA SEÑAL ANALÓGICA POR DEBAJO DE LA FRECUENCIA DE MUESTREO DE NYQUIST.
Actividades
Implementar un programa, como el sugerido de la Figura 5.6.1, donde se muestre la señal senoidal de entrada () = 3 sin(1 0 ∗ 2 ) , y donde dicha señal sea muestreada y reconstruida. Modificar la frecuencia de muestreo para observar el efecto de traslape ( alising) en la señal muestreada.
Figura 5.6.1. Programa sugerido para la prática de aliasing.
28
Notas:
La frecuencia de Nyquist de la señal establecida es de = 20 . Un muestreo demasiado lento da lugar al aliasing, que es una mala representación de la señal analógica [4].
Un bajo muestreo causa que la señal aparezca como si tuviera una frecuencia diferente a la real. Para evitar el aliasing, hay que muestrear varias veces más rápido que la frecuencia de la señal de entrada.
La configuración de la señal de entrada puede ser modificada para observar con otros paramentos el efecto de alising.
Bloques a utilizar
Sine Waveform, Resample Waveforms, Waveform Graph, Reciprocal, Stop.
Descripción del programa
Se toma la señal () = 3 sin(10 ∗ 2 ∗ ) de entrada y es muestreada a una frecuencia por debajo de la de Nyquist para ser reconstruida, al tener un bajo muestreo se puede observar el fenómeno de aliasing.
Resultados
A una frecuencia de muestreo de 100 Hz se puede observar que la señal pierde amplitud, sin embargo la información en frecuencia es la misma. Esto se observar en la Figura 5.6.2.
29
30
Figura 5.6.2. Arriba señal original () = 3 sin(10 ∗ 2 ∗ ) , abajo señal reconstruida a una frecuencia de muestreo de 100 Hz
A la frecuencia de Nyquist (20 Hz), según el teorema de Nyquist [4], es donde la señal se puede representar unívocamente. Esto puede verse en la Figura 5.6.3.
Figura 5.6.3. Señal muestreada a la frecuencia de Nyquist (20Hz).
A una frecuencia de 9 Hz, podemos ver claramente el efecto de traslape o aliasing, esto debido al bajo muestreo que se está tomando. La información en frecuencia no es la misma, ya que la señal se comporta como si fuera de 1 Hz cuando en realidad es de 10 Hz. Es decir la señal resultante muestreada () = 3 sin(1 ∗ 2 ∗ ) es un alias de la señal original () = 3 sin(10 ∗ 2 ∗ ) . Esto se observa en la Figura 5.6.4.
31
Figura 5.6.4. Señal muestreada a una frecuencia de 9 Hz, donde se observa el efecto de aliasing.
PRÁCTICA #7. LAZO ADC-DAC TRASLAPE OBJETIVO. CONFIGURAR LA RESOLUCIÓN DE LOS CONVERTIDORES ANALÓGICO – DIGITAL Y DIGITAL – ANALÓGICO, Y OBSERVAR EL FENÓMENO DE TRASLAPE (ALIASING) AL AUMENTAR LA FRECUENCIA DE LA SEÑAL DE ENTRADA POR ENCIMA DE LA TASA DE MUESTREO DE NYQUIST.
Material:
1 tarjeta NI USB 6009. 1 Generador de funciones.
Actividades:
Configurar el generador de funciones con una forma senoidal a una frecuencia de 25 Hz y una amplitud de 4 volts pico-pico, como se muestra en la Figura 3.7.1 Elaborar un programa en LabVIEW, como el sugerido en la Figura 3.7.2, donde se tome como entrada la señal analógica proveniente del generador de funciones, por medio de una entrada analógica de la tarjeta NI USB 6009, dicha señal pasarla a convertidores Analógico-Digital y Digital- Analógico, y visualizar la salida de la señal reconstruida por medio de una Waveform Graph. Aumentar la frecuencia de la señal de entrada y observar el efecto de “aliasing”. Modificar la resolución de los bloques ADC y DAC.
Figura 3.7.1. Generador de funciones configurado a la señal () = 4∗ sin( 25 ∗ ).
32
33 Figura 3.7.2. Programa sugerido para la práctica 7.
Notas:
La frecuencia de muestreo mínima necesaria para evitar el aliasing es de 50 Hz. La amplitud de la señal de entrada no debe sobre pasar los 10 volts pico-pico, esto por la configuración interna de la tarjeta NI USB 6009 [5]. La configuración del generador de funciones puede ser modificada para observar con otros paramentos el ef ecto de “alising”. La configuración del DAQ ASSISTANT es la misma que la utilizada en la práctica 5. Para fines ilustrativos en esta práctica se utilizaros dos bloques de conversión ADCDAC, ya que por si sola la tarjeta NI-USB 6009 al adquirir cualquier señal realiza una conversión del tipo ADC.
Descripción del programa
Se lee una señal, por el puerto de entrada analógica ai0, la cual es enviada al bloque “Convert Analog to Digital” con una resolución inicial de 8 bits, que se modificara posteriormente.La señal es enviada al bloque “Convert Digital to Analog” donde será muestreada a una frecuencia variable y por último la señal
reconstruida será mostrada en una Waveform Graph.
Bloques a utilizar
DAQ Assistant, Analog to Digital, Digital to Analog, Resampled Signal, Waveform Graph, Reciprocal, Stop.
Resultados
A una señal de entrada con frecuencia de 25 Hz y una frecuencia de muestreo de 150 Hz, se puede observar claramente, en la Figura 3.7.3., que la señal es reconstruida sin ningun problema, ya que se esta cumpliendo el teorema de muestreo de Nyquist [4].
Figura 3.7.3. De Arriba hacia abajo, señal de entrada a una frecuencia de 25 Hz, señal digitalizada y señal reconstruida.
Si se aumenta la frecuencia de entrada a 55 Hz; es decir se tiene una señal de entrada () = 4 ∗ sin(155 ∗ ) ,el teorema de muestreo de Nyquist no se cumple, por lo tanto la señal es recosntruida como una señal de baja frecuencia, es decir se presenta el fenomeno de “aliasing”,como se observa en la Figura 3.7.3.2.
34
35
Figura 3.7.4. (De arriba hacia abajo) señal de entrada a una frecuencia de 55 Hz, señal digitalizada y señal reconstruida.
PRÁCTICA #8. FILTRO DE HENDIDURA FIR E IIR OBJETIVO. IMPLEMENTAR UN FILTRO DIGITAL DE HENDIDURA SINTONIZADO PARA RECHAZAR UNA FRECUENCIA DE 60 HZ .
Se quiere diseñar un filtro digital de hendidura FIR e IIR de segundo orden que rechace una frecuencia de 60Hz y una frecuencia de muestreo de 1000 Hz. La función de transferencia y ecuación en diferencias que caracterizan el filtro FIR son () = 7.120 13.240 − + 7.120 [] = 7.120[] 13.240[ 1] + 7.120[ 2]
La función de transferencia y ecuación en diferencias que caracterizan el filtro IIR son () =
0.9678 1.079967− + 0.9678 − 1 1.76657− + 0.9025 −
[] = 1.7665[ 1] 0.9025[ 2] + 0.9678 1.79967[ 1] + 0.9618[ 2]
Actividades
Implementar un programa en LabVIEW donde se tome una señal de entrada de tipo senoidal de frecuencia y amplitud variables, para posteriormente filtrarla, por medio de los bloques FIR e IIR, y posteriormente mostrar la salida de los filtros en una gráfica. Por medio del bloque de la transformada de Fourier, también deberá visualizarse el espectro en frecuencia. La sugerencia de programa se observa en la Figura 3.8.1.
36
37
Figura 3.8.1. Programa de filtro de Hendidura FIIR e IIR.
Notas
La frecuencia a eliminar es de 60 Hz, por lo tanto se debe ir variando la frecuencia, comenzando de una pequeña hasta dicha frecuencia. Los coeficientes del filtro IIR son los correspondientes a los de la función de transferencia, donde los Foward coefficients se toman del numerador de dicha función de transferencia, mientras que los Reverse coefficients son tomados del denominador.
Si se desea que el filtro rechace otra frecuencia diferente de 60 Hz, se debe realizar el análisis correspondiente a dicha frecuencia y cambiar los coeficientes de los filtros FIR e IIR.
Bloques a utilizar
Sine Waveform, IIR Filter, FIR Filter, FFT, Waveform Graph, Reciprocal, Bundle, Stop, Build Array, Absolute Value, Square.
Resultados
A una frecuencia de entrada de 17 Hz, se observa que no existe cambio en la entrada y salida de la señal a filtrar, justo como se muestra en la Figura 3.8.2.
38
Figura 3.8.2. Salida del filtro con una señal de entrada de 17 Hz.
Conforme se va aumentando la frecuencia y se acerca a 60 Hz se observa una disminución en la amplitud tanto en la señal filtrada como en el espectro de frecuencia. La Figura 3.8.3., muestra cómo se comporta el programa a una frecuencia de 50 Hz.
Figura 3.8.3. Salida del filtro con una señal de entrada de 50 Hz.
A 60 Hz se ve como la señal ha sido filtrada y no se tiene señal de salida, también se observa que la respuesta del filtro FIR en el espectro de frecuencia ha desaparecido. Esto se observa en la Figura 3.8.4.
39
Figura 3.8.4. Salida del filtro con una señal de entrada de 60 Hz. Cuando se tiene una señal de entrada con una frecuencia mayor a 60 Hz, la señal resultante no se ve afectada por el filtro de hendidura; sin embargo, cuando se tienen frecuencias mucho mayores a 60 Hz el filtro FIR presenta un incremento en la amplitud en comparación con la amplitud de entrada. Lo anterior se muestra en la Figura 3.8.5.
Figura 3.8.5. Salida del filtro con una señal de entrada de 104 Hz.
PRÁCTICA #9. FILTRO PASA BAJOS FIR E IIR OBJETIVO. IMPLEMENTAR UN FILTRO DIGITAL PASA BAJOS SINTONIZADO A UNA FRECUENCIA DE CORTE DE 30 HZ. Se quiere diseñar un filtro digital pasa bajos FIR e IIR de segundo orden a una frecuencia de corte de 30 Hz y una frecuencia de muestreo de 500 Hz. La función de transferencia y ecuación en diferencias que caracterizan el filtro IIR son, respectivamente
() =
0.0279 + 0.0557 − + 0.0279 − 1 1.4755 − + 0.5869 −
[] = 1.4755[ 1] + 0.5869[ 2] + 0.0279 + 0.0557[ 1] + 0.0279[ 2]
La función de transferencia y ecuación en diferencias que caracterizan el filtro FIR son () = 0.238473 + 0.523056− + 0.238473−
[] = 0.238473[] + 0.523056[ 1] + 0.238473[ 2]
Actividades
Implementar un programa en LabVIEW donde se tome una señal de entrada de tipo senoidal de frecuencia y amplitud variables, para posteriormente filtrarla, por medio de los bloques FIR e IIR, y después mostrar la salida de los filtros en una gráfica. Por medio del bloque de la transformada de Fourier, deberá visualizarse el espectro en frecuencia. La sugerencia de programa se observa en la Figura 3.9.1.
40
41 Figura 3.9.1. Programa de filtro pasa bajos FIIR e IIR. Notas
La frecuencia de corte es de 30 Hz, por lo tanto se debe ir variando la frecuencia, comenzando de una pequeña hasta alcanzar la frecuencia antes mencionada. Los coeficientes del filtro IIR se toman de la función de transferencia, donde los Foward coefficients corresponden al numerador de dicha función de transferencia, mientras que los Reverse coefficients son tomados del denominador.
Si se desea que el filtro rechace otra frecuencia diferente de 30 Hz, se debe realizar el análisis correspondiente a dicha frecuencia y cambiar los coeficientes de los filtros FIR e IIR. Se puede obtener la función de transferencia del filtro por medio del software MATLAB utilizando el Filter Design & Analysis Tool. El filtro FIR fue diseñado considerando una ventana Hamming, mientras que el filtro IIR fue diseñado de tipo Butterworth.
Bloques a utilizar
Sine Waveform, IIR Filter, FIR Filter, FFT, Waveform Graph, Reciprocal, Bundle, Stop, Build Array, Absolute Value, Square.
Resultados
A una frecuencia de entrada de 10 Hz, se observa que no existe cambio en la entrada y salida de la señal a filtrar, justo como se muestra en la Figura 3.9.2.
42
Figura 3.9.2. Salida del filtro pasa bajos a una señal de entrada con frecuencia de 10Hz.
A la frecuencia de corte de 30 Hz, la señal ya ha sido atenuada por el filtro IIR, sin embargo el filtro FIR no ha filtrado la señal, como se observa en la figura 3.9.3.
Figura 3.9.3. Salida del filtro pasa bajos a una señal de entrada con frecuencia de 30Hz.
A una frecuencia de 60 Hz, se observa que el filtro IIR ha atenuado drásticamente la amplitud de la señal, esto se observa en la figura 3.9.4.
43
Figura 3.9.4. Salida del filtro pasa bajos a una señal de entrada con frecuencia de 60Hz.
El filtro FIR se observa que atenúa la señal a una frecuencia mucho mayor que la necesaria para el filtro IIR, esto sucede porque los filtros FIR necesitan ser de un orden mayor que los IIR para cumplir de manera óptima con las especificaciones dadas [7]. Lo anterior se observa en la figura 3.9.5.
Figura 3.9.5. Salida del filtro pasa bajos a una señal de entrada con frecuencia de 110 HZ.
ANEXOS TARJETA NI-USB 6009
La tarjeta NI USB 6009 proporciona ocho entradas analógicas de una sola terminal ( AI) , dos canales de salida analógica (AO), 12 canales DIO, y un contador de 32 bits con una Interfaz USB de alta velocidad [5] . En la Figura 4.1 se muestra el diagrama a bloques de la tarjeta NI-USB 6009
44
Figura 4.1. Diagrama de bloques de la tarjeta NI-USB 6009 [5].
La Figura 4.2, muestra la asignación de pines de la NI USB – 6009, y enseguida en la Tabla 1, se muestran los detalles de cada pin.
45
Figura 4.2. Pinout de la tarjeta NI-USB 6009 [5]. Tabla 1. Detalles de cada uno de los pines de la tarjeta NI-USB 6009. Signal Name
Reference
Direction
Description Ground — The reference point for the
single-ended analog input measurements, analog output voltages, GND
-
-
digital signals, +5 VDC supply, and +2.5 VDC at the I/O connector, and the bias current return point for differential mode measurements. Analog Input Channels 0 to 7 — For single-ended
AI <0,7>
Varies
Input
measurements, each signal is an analog input voltage channel. For differential measurements, AI 0 and AI 4 are the positive and negative inputs of differential analog input channel 0. The following signal pairs also form differential input channels: AI <1, 5>, AI <2, 6>, and AI <3, 7>
AO <0,1>
GND
Output
Analog Output Channels 0 and 1 — Supplies the voltage output of AO channel 0 or AO channel 1.
P0<0,7>
GND
Input or Output
Port 0 Digital I/O Channels 0 to 7 — You can individually configure each signal as an input or output.
PFI 0
GND
Input
PFI 0 — This pin is configurable as either a digital trigger or an event counter input.
+2.5 V
GND
Output
+2.5 V External Reference — Provides a reference for wrap-back testing
+5V
GND
Output
+5 V Power Source — Provides +5 V power up to
200 mA.
Entradas Análogas de la tarjeta NI-USB 6009 En cuanto a la toma de medidas diferenciales, se debe tomar como referencia la Figura 4.3, donde se muestra el modo en que debe ser conectada la tarjeta NI-USB 6009.
Figura 4.3. Conexión de la tarjeta NI-USB 6009 a una entrada analógica de voltaje diferencial.
46
El modo de entrada diferencial puede medir señales en el rango de ± 20 V. Sin embargo, la tensión máxima en cualquiera de los pines es de ± 10 V con respecto a GND. Por ejemplo, si AI 1 es 10 V y AI 5 es de -10 V, entonces la medición que regresa el dispositivo es 20 V (Figura 4.4).
47
Figura 4.4. Ejemplo de una medida diferencial de 20V. La conexión de una señal superior a ± 10 V en cualquiera de los pines resulta en una salida recortada (Figura 4.5).
Figura 4.5. Exceder el rango de ±10 V resulta en una salida recortada.
Para más información acerca de la tarjeta NI-USB 6009 leer la hoja de especificaciones [5].
Sensor LM35
48
Figura 4.6. Disposición de los pines del sensor LM35 [6]
ATAJOS DE TECLADO EN LABVIEW
Tabla 2. Atajos de teclado en LabVIEW [1]. Ctrl+B
Remueve cables rotos
Ctrl+C
Copia objeto
Ctrl+E
Cambio entre el panel frontal/diagrama de bloques
Ctrl+H
Activa/Desactiva la ventana de ayuda
Ctrl+N
Crea un nuevo VI
Ctrl+O
Abre VI
Ctrl+Q
Cierra Labview
Ctrl+R
Corre el VI
Ctrl+S
Guarda el VI
Ctrl+V
Pega objetos
Ctrl+W
Cierra el VI
Ctrl+X
Corta objetos
Ctrl+Z
Deshace la última acción
Ctrl+Click
Clona un objeto
Shift+Click
Arrastra un objeto a una dirección
Right+Click
Activa el menú Pup-Up
Spacebar
Alterna entre dos herramientas más comunes
Shift+Tab
Alterna entre las dos herramientas más comunes
Tab
Desplazarse por las herramientas , si la selección automática de la herramienta está desactivada
49