You are on page 1of 10

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

Reporte Prctica II
Dafnis Ernesto, Brbara Elizabeth
Implementacin de un filtro digital Departamento de Mecatrnica, Universidad Politcnica de Aguascalientes Aguascalientes, Mxico

I.

Introduccin

Este proyecto trat principalmente de la programacin de un micro-controlador para un sistema pasa bajas, utilizando los conocimientos de sistemas recursivos y no recursivos, filtros FIR, convolucin, convertidores D/A y A/D, para controlar un seal de salida y que con este pudiramos desarrollar un sistema de control de seales, en el que por medio de un software creado en PIC C Wizard y una simulacin en Proteus 8 el usuario pudiera ingresar una seal deseada y que el software automticamente mandara la seal al PIC 18f4550 para poder procesarla y posteriormente obtuviramos una grfica que se derivara de un proceso de convolucin.

El procesador PIC18F4550 es que es uno de los PICs que viene con soporta nativo para USB, lo cual quiere decir que incluyen un controlador USB interno que ya brinda patas de salida para conectar directo a la PC, sin la necesidad de pull-ups o ninguna circuitera externa. El nombre actual no es un acrnimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz perifrico).

II.

Objetivos

Disear un filtro digital tipo FIR pasa bajas de 60Hz utilizando la herramienta de MatLab e implementarlo en un PIC18f4550.Conocer la herramienta de MatLab para el diseo de filtros digitales. Identificar el proceso de diseo de un filtro FIR. Entender la aplicacin de la convolucin.

En cuanto a memoria, posee 32Kb de flash para almacenamiento de programas, 2Kb de SRAM para memoria voltil, y 256 bytes de EEPROM (memoria no-voltil) para almacenamiento permanente de datos como configuraciones y dems. Las instrucciones son de 1 byte de longitud con la excepcin de algunas que ocupan 2 bytes (CALL, MOVFF, GOTO, LSFR). Utiliza el mecanismo de pipelining para la ejecucin de cdigo por lo cual hace que las instrucciones consecutivas se ejecutan en 4 CLK (perodos de reloj) y las que contengan saltos adicionan 4 CLK extras.

III.

Marco Terico
Otras caractersticas interesantes que posee son timers, interrupciones (externas e internas por timers) con dos niveles de prioridad y disparadas tanto por nivel como por flanco, un comparador analgico con un generador de voltaje de referencias de 16 niveles (til para implementar un trigger de hardware por nivel). Por ltimo, el PIC tambin cuenta con un conversor analgico de 10-bit pero que para nuestro osciloscopio es insuficiente debido a la alta velocidad de captura necesaria. Ya que, si bien el oscilador es de
Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

El microprocesador PIC18F4550

El PIC18F4550 es un microprocesador de propsito general verstil y econmico. Pertenece a la popular familia de procesadores PICmicro de la empresa norteamericana Microchip cuya sede se ubica en Chandler, Arizona (USA).

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

48 Mhz, entre los tiempo de ejecucin de las interrupciones y otros de lays (bucles, etc.) no se pueden obtener velocidades de captura mayores a 200 KHz. Pinout A continuacin se presenta el pinout del PIC18F4550, en empaquetado DIP-40.En particular se puede reconocer las pines D- y D+ de la conexin USB (patas23 y 24).

En este caso, el filtro 2 realiza algunas operaciones sobre la seal cuyo efecto es reducir (filtrar) el ruido y la interferencia presentes en la seal deseada. Cuando pasamos una seal a travs de un sistema, como en el caso del filtrado, decimos que hemos procesado la seal. En este caso, el procesamiento de la seal implica la separacin de la seal deseada del ruido y la interferencia. En general, el sistema se caracteriza por el tipo de operacin que realiza sobre la seal. Por ejemplo, si la operacin es lineal, el sistema se denomina lineal, si la operacin es no lineal, el sistema se dice no lineal, etc. Estas operaciones se denominan habitualmente procesamiento de seales. Convertidores A/D y D/A. La mayoria de los ordenadores actuales son sistemas digitales (aunque tambin hay ordenadores analgicos), sin embargo nuestro mundo es analgico. Por esto hay que convertir toda la informacin que introducimos en el ordenador de analgico a digital, adems de realizar el proceso contrario con los resultados que el sistema informtico nos proporciona.

La conversin de analgico a digital corre a


cargo de un dispositivo llamado ADC Analog to Digital Converter La conversin de digital a analgico corre a cargo de un dispositivo llamado DAC Digital to Analog Converter Seal analgica: Una seal es analgica cuando las magnitudes de la misma se representan mediante variables continuas, esto es, anlogas a las magnitudes que dan lugar a la generacin de esta seal.

Por ejemplo, las seales de voz se generan al forzar el paso del aire a travs de las cuerdas vocales. Las imgenes se obtienen exponiendo pelcula fotogrfica ante un paisaje u objeto. Por lo tanto, la forma en la que se generan las seales se encuentra asociada con un sistema que responde ante un estmulo o fuerza. En una seal de voz, el sistema est constituido por las cuerdas vocales y el tracto bucal, tambin llamado cavidad bucal. El estmulo en combinacin con el sistema se llama fuente de la seal.

Seal digital: Una seal es digital cuando sus magnitudes se representan mediante valores discretos en lugar de mediante variables continuas.

Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

Existen diferentes tipos de DACs, algunos de los ms utilizados son: 1. ZOH Zero Order Hold 2. Multiplicadores

La conversin de analgico a digital consta de dos etapas: 1. Muestreo de la seal (Signal sampling) 2. Cuantificacin de las muestras 1 - Muestreo de la seal El proceso de muestreo consiste en tomar muestras del valor de la seal original de forma periodica. Al periodo de tiempo que existe entre dos muestras consecutivas se le conoce con el nombre de periodo de muestreo (Ts). A partir del periodo de muestreo se calcula la frecuencia de muestreo (fs = 1/Ts). Evidentemente al muestrear una seal nos podemos encontrar con dos casos: 1. Una frecuencia de muestreo (fs) alta (o un periodo de muestreo pequeo), lo que implica una gran cantidad de muestras por unidad de tiempo. 2. Una frecuencia de muestreo (fs) baja (o un periodo de muestreo grande), lo que implica una menor cantidad de muestras por unidad de tiempo. Evidentemente un mayor nmero de muestras es la mejor garanta que podemos encontrar para poder recuperar la seal original a partir de las muestras. Sin embargo, tener una frecuencia de muestreo alta puede generar un volumen de informacin demasiado grande para nuestros intereses (demasiadas muestras a tratar).

1 - ZOH Zero Order Hold El mantenedor de orde cero, es un dispositivo que mantiene el valor de una muestra hasta que llega la siguiente. Despus slo debemos pasar la salida del mantenedor por un filtro paso bajos que suavice el dentado para obtener una reconstruccin ms fiel de la seal analgica original.

muestras

muestras mantenidas

salida filtro pasobajo

Convolucin

El Teorema de Nyquist nos indicar la frecuencia de muestreo mnima que hemos de utilizar para poder recuperar la seal original a partir de las muestras. Es decir, para no perder informacin durante el muestreo. Si se cumple el criterio de Nyquist en la fase de muestreo no se introduce ningn error. Teorema de Nyquist: El teorema afirma que cuando se muestrea una seal, la frecuencia de muestreo debe ser mayor que dos veces el ancho de banda de la seal de entrada, para poder reconstruir la seal original a partir de las muestras. Si B es el ancho de banda de la seal y Fs es la frecuencia de muestreo, el teorema puede expresarse del siguiente modo: 2Bw < Fs

En matemticas y, en particular, anlisis funcional, una convolucin es un operador matemtico que transforma dos funciones f y g en una tercera funcin que en cierto sentido representa la magnitud en la que se superponen f y una versin trasladada e invertida de g. Una convolucin es un tipo muy general de media mvil, como se puede observar si una de las funciones se toma como la funcin caracterstica de un intervalo. Uso La convolucin y las operaciones relacionadas se encuentran en muchas aplicaciones de ingeniera y matemticas.

Conversin D/A

En estadstica, ponderado.

como

un

promedio

mvil

Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

En teora de la probabilidad, la distribucin de probabilidad de la suma de dos variables aleatorias independientes es la convolucin de cada una de sus distribuciones de probabilidad. }

prod *= x; return prod;

En ptica,

muchos

tipos

de

"manchas"

se La definicin iterativa es sencilla, pero no resulta tan intuitiva, en cambio, uno podra analizar mas detalladamente el problema y generar una definicin recursiva para una funcin factorial que podra resultar ms intuitiva y sencilla de implementar: n! = n * (n-1)! !0 = 1

describen con convoluciones. Una sombra (e.g. la sombra en la mesa cuando tenemos la mano entre sta y la fuente de luz) es la convolucin de la forma de la fuente de luz que crea la sombra y del objeto cuya sombra se est proyectando. Una fotografa desenfocada es la convolucin de la imagen correcta con el crculo borroso formado por el diafragma del iris.

En acstica, un eco es la convolucin del sonido original con una funcin que represente los objetos variados que lo reflejan. Podemos observar en dicha definicin que el factorial de un nmero es el producto de dicho numero por el factorial del numero entero menor prximo y as consecutivamente, adems podemos ver que el factorial del nmero cero es 1, lo que nos indica un caso de base o un caso de parada que ya no requiere ms llamadas consecutivas. A partir de este caso base se realiza un retroceso en las llamadas que obtiene como resultado el producto del caso base por cada uno de los valores n del nmero en las llamadas.

En ingeniera disciplinas, la

elctrica, electrnica y salida de

otras

un sistema

lineal (estacionario o bien tiempo-invariante o espacio-invariante) es la convolucin de la entrada con la respuesta del sistema a un impulso (ver animaciones).

En fsica, all donde haya un sistema lineal con un "principio de superposicin", aparece una operacin de convolucin.

Diseo de filtros FIR Sistemas recursivos y no recursivos FIR es un acrnimo en ingls para Finite Impulse Response o Respuesta finita al impulso. Se trata de un tipo de filtros digitales cuya respuesta a una seal impulso como entrada tendr un nmero finito de trminos no nulos. Hay cuatro mtodos bsicos para disear este tipo de filtros:

Se dice que una funcin es recursiva cuando dicha funcin se define en trminos de la misma funcin. Es importante recordar que no todas la funciones pueden llamarse a s mismas, deben estar diseadas especialmente para comportarse de manera recursiva, de otro modo dichas funciones podran conducir a bucles infinitos, o a que el programa termine inadecuadamente. Por ejemplo, podramos pensar en la creacin de un algoritmo que produzca el resultado de un numero factorial, la definicin iterativa de dicho algoritmo seria la siguiente: int factorial (int n) { prod = 1; for ( x = n; x > 0; x-- )

Mtodo de las ventanas, las ms habituales son: Rectangular Barlett Hanning Hamming Blackman Kaiser

Muestreo en frecuencia.
Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

Rizado constante (Aproximacin de Chebyshev y algoritmo de intercambio de Remez). Mnimos Cuadrados

b)

Disear e implementar el filtro en Hardware, circuito propuesto:

c)

Colocar los siguientes datos en el reporte:

IV.

Material
a. Tiempo que dura la operacin de la convolucin propuesta para el sistema FIR. Muestras que se toman por perodo. Frecuencia de muestreo. Coeficientes del filtro. Tcy del microcontrolador. Tiempo de desborde y cuentas del timer utilizado. Colocar el algoritmo que programaron en el microcontrolador.

Los integrantes del equipo mediante un diseo previo de la prctica obtienen la lista de materiales.

b. c. d. e. f. g.

Los materiales considerados son:

Pic 18f4550 Cristal 20 Mhz. Resistencias (10k, 20k y 220 ohms) Capacitores de 22uf, .1mf, 2 Fuentes de 5 v Cable conector hembra USB Cable USB en V Leds

VII.

Resultados

Circuito y datasheet de gua: El circuito que observamos muestra un circuito base para la construccin de nuestro sistema de control y adquisicin de seales. Sin embargo no utilizaremos el puer que es vital para el desarrollo de nuestra prctica.

V.

Equipo

Los materiales considerados son:

Generador de seales Fuente de voltaje Cautn Osciloscopio Protoboard

VI.

Procedimiento
Simulacin de circuito: En esa seccin observamos cmo se conect el circuito de manera digital para poder realizar pruebas antes de realizar la conexin fsica y evitar daar los elementos y componentes de nuestra prctica, la simulacin fue desarrollada en el software Proteus 8.

a) Especificaciones de la prctica: Filtro FIR pasa bajas con:

FC 60Hz
Utilizar el mtodo de ventanas para el diseo en MatLab, seal de entrada:

x(t ) 2.5 2.5sen(120t )

El orden del filtro debe ser 5.


Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

Donde pudimos apreciar que la seal que se trataba de reconstruir se desfasaba y tena algunas similitudes al original, pudimos observar que tena un comportamiento mnimamente similar.

Despus se realiz un ajuste para determinar que no existieran errores en la conexin y todo funcionar segn lo planeado y evitar daos y fallas en el equipo de la prctica, esto reduce riesgos, fallas y problemas con el material de trabajo. Programa:

Graficas de Seales de prueba: //.....................RUTA DEL PROGRAMA............. A continuacin podemos observar una grfica realizada como prueba para observar el comportamiento de nuestro sistema y poder determinar las fallas y los posibles errores dentro de nuestro sistema. #include <FIR_60Hz.h> //.........LIBRERIAS USADAS EN EL PROGRAMA.... #include <stdlib.h> #include <stdio.h> #include <math.h> //........CONFIGURACIN DE FUSIBLES............ #fuses HSPLL,NOWDT,PUT,BROWNOUT,NOLVP,CPB,PR OTECT,NODEBUG,USBDIV,PLL5,CPUDIV1 #fuses VREGEN //..........DIRECTIVAS PARA EVITAR QUE CCS MUEVA LOS TRIS DE LOS PUERTOS............. #use fast_io(A) #use fast_io(B) #use fast_io(C) #use fast_io(D) #use fast_io(E) //...................DEFINICIN DE BITS..........
Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

#bit LED1=0XF81.0 #bit LED2=0XF81.1

//DEFINICIN DE RB0 //DEFINICIN DE RB1

} void FILTRO_FIR(char ORDEN_FILTRO) { char i,SALIDA; float SAL_FILTRO; LED2=1; VAL_ADC=read_adc(); LECTURA DE ADC SAL_FILTRO=0.0; //OPERACION DE LA CONVOLUCION SALIDA=abs(SAL_FILTRO); //RESPONDE HACIA ABAJO EL CALCULO DE LA SALIDA DEL FILTRO output_d(SALIDA); //SALIDA A CONVERTIDOR D/A DE RED R-2R "SALIDA ANALGICA" LED2=0; restart_wdt(); return; } //...........CONFIGURACIN DEL CPU......... void CONFIG_CPU(void) { setup_adc_ports(AN0); 2) //RA0 (PATA //SE HACE LA

//.........................Variables globales........... char VAL_adc=0,BUF_LEC_ADC[10]; //.............CONSTANTES DEL FILTRO........ float const CONST_FIR[6]={0.16122229692584,0.167735992137 886,0.171041788169530,0.171041788169530,0.167735 992137886, //.......SUBRUTINA DE FLASHEO DE LED1...... void FLASHEO(void) { LED1=1; delay_ms(50); LED1=0; delay_ms(50); LED1=1; delay_ms(50); LED1=0; delay_ms(50); restart_wdt(); return; } //.........SUBRUTINA QUE INCIALIZA EL VECTOR DE LECTURAS DEL ADC......... void INI_BUF_LEC_ADC(char SET_VECTOR) { char i; for(i=0;i<=SET_VECTOR;i++) { BUF_LEC_ADC[i]=0; } restart_wdt(); return;

setup_adc(ADC_CLOCK_DIV_64); //NO SE USAN LAS INSTRUCCIONES DE LAS LINEAS 42,43,44,45 setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //PARA GENERAR UN TIEMPO EXACTO setup_timer_1(T1_DISABLED); USAN LOS TIMER 1,2,3 setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

//NO SE

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

SET_TRIS_A(0X01); //0000 0001 USAMOS UNA SALIDA SET_TRIS_B(0X00); //0000 0000 USAMOS LOS PUERTOS B,C Y D SET_TRIS_C(0X00); SET_TRIS_D(0X00); SET_TRIS_E(0X08); restart_wdt(); return; } //0000 0000 //0000 0000 //0000 1000

//SOLO //NO

{ LED1=0; } else LED1=1; FILTRO_FIR(5); //LLAMO A MI FUNCION QUE OBTIENE EL CALCULO DEL FILTRO FIR set_timer0(64780); //VALOR DE RECARGA DEL TIMER0 PARA GENERAR LA FRECUENCIA (Fs) DE 3333.33Hz restart_wdt();

..............VECTOR DE PROGRAMA PRINCIPAL.... return; void main() } { CONFIG_CPU(); LED1=0; //FUNCIONAN COMO UN TREN DE PULSOS LED2=0; set_adc_channel(0); output_d(0x00); set_timer0(64780); //DEFINIR EL VALOR QUE SE LE CARGA EL REGISTRO AL TIMER 0 enable_interrupts(GLOBAL|INT_TIMER0); //HABILITO LA INTERRUPCIN GLOBAL while(1) { restart_wdt(); } return; } //..........INTERRUPCION DEL TIMER CERO..... #int_timer0 void INT_SOBREFLUJO_TIMER0() { if(LED1==1)
Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Circuito Armado (fsico): Las siguientes imgenes son del circuito armado al final de la prctica para realizar las pruebas en un principio y posteriormente realizar la conexin final.

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

interferencias que corrompen una seal tambin se denomina sistema. Brbara Elizabeth Trejo Ruiz: Es conveniente ampliar la definicin de sistema para incluir no solo dispositivos fsicos, sino tambin realizaciones en software de operaciones sobre una seal. En el procesamiento digital de seales en una computadora, las operaciones realizadas sobre una seal constan de varias operaciones matemticas especificadas por un programa de software.

Graficas de Seales:

IX.

Observaciones

Dafnis Ernesto Pareja Galdames: De manera personal, algunas de las observaciones que tuve en estra prctica fue que aunque el proceso de convolucin es bastante sencillo aparentemente fue muy difcil calcular y tratar de resolver el problema. Brbara Elizabeth Trejo Ruiz: Los sistemas que realizamos en clase eran bastante similares en estructura y forma pero de manera fsica son ms complejos de entender y razonar, el conocimiento en programacin de micro-controladores no fue un problema, en comparacin con la comprensin de los sistemas FIR la programacin es bsica.

Referencias VIII. Resultados I. 11 Congreso Nacional de Mecatrnica, ISBN: 978-607-95347-7-6. Octubre 4 y 5, 2012. Villahermosa, Tabasco. National Instruments Corporation (2012). reas de aplicacin: Cmo puedo usar NI LabView?, Extrado el 20 de Julio, 2012 de; < http://www.ni.com/labview/applications >.

Dafnis Ernesto Pareja Galdames: Un sistema se puede definir tambin como un dispositivo fsico que realiza una operacin sobre una seal. Por ejemplo, un filtro que se usa para reducir el ruido y las

II.

Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

Universidad Politcnica de Aguascalientes Adquisicin de Seales Adrin Pelayo

III.

IV.

V.

VI.

VII.

VIII.

IX.

Prez J. y Lpez F. Comunicacin USB de Alta Velocidad entre LabView y un microcontrolador para la adquisicin de datos en tiempo real, Congreso Nacional de electrnica del Golfo, CONAGOLFO, 11 pgs, Orizaba, Ver. 2009. Microchip (2012). Microchip PIC18F2455/2550/4455/4550 Datasheets, Extrado el 20 de Junio, 2012 de; <http://www.microchip.com >. Garca E. COMPILADOR C CCS Y SIMULADOR PROTEUS PARA MICROCONTROLADORES PIC, Ed. Alfaomega, Espaa, Primera Edicin, 276 pginas, 2008 CCS (2012). CCS Compiler, USB Drivers, Extrado el 15 de Marzo, 2012 de; <http://www.ccsinfo.com/downloads.ph p >. National Instrument (2012). Comunicacin Serial Utilizando LabView con un Microcontrolador, Extrado el 15 de Mayo, 2012 de; < http://www.ni.com/whitepaper/ 7907/es >. National Semiconductor. Precision centigrade Temperature Sensors, Extrado el 17 de Junio, 2012 de; <https://www.national.com/ds/LM/LM3 5.pdf >.

Prctica 2 Brbara Elizabeth Trejo Ruiz-UP110584 Dafnis Ernesto Pareja Galdames-UP110512

You might also like