Вы находитесь на странице: 1из 56

Adquisicin y Anlisis de Seales Bioelctricas. con la Consola XBOX 360.

por Jos Eduardo Flores Mora

Presentado a la academia de Sistemas Digitales y Comunicaciones del Instituto de Ingeniera y Tecnologa de La Universidad Autnoma de Ciudad Jurez para su evaluacin

LA UNIVERSIDAD AUTNOMA DE CIUDAD JUREZ Marzo del 2010

Adquisicin y Anlisis de Seales Bioelctricas con la Consola XBOX 360.

MC. Alejandra Mendoza Presidente de la academia

___________________________________________

Ing. Ivn J. Muoz Cano ___________________________________________ Asesor

Jos Eduardo Flores Mora Alumno

___________________________________________

Adquisicin y Anlisis de Seales Bioelctricas. con la Consola XBOX 360.

Introduccin. Existen infinidad de equipos con gran poder de procesamiento de datos, que nos brindan soluciones a determinados problemas. Sus fabricantes buscan unir estas soluciones en dispositivos Multitarea, hasta llegar al punto que se ha rebasado la satisfaccin de algunas necesidades bsicas actuales, como la comunicacin, organizacin, etc., cubriendo tambin otras no tan bsicas como el entretenimiento; los ordenadores, los celulares y una gran diversidad de dispositivos cada vez son ms accesibles y satisfacen estos requisitos. Sin embargo, algunos equipos electrnicos podran resultar una solucin a un campo ms especfico por su alto poder de procesamiento, como es el caso del Xbox 360 para adquirir una seal bioelctrica.

Este equipo se lanz en el ao 2005 y es una consola de videojuegos, desarrollada por la empresa Microsoft con colaboracin de IBM y ATI. Fue la primera de su generacin en salir al mercado, y an as se ha logrado mantener a la vanguardia durante casi 5 aos con ms de 21 millones de equipos posicionados en el continente Americano, y ms de 39 millones vendidos en todo el mundo.

El campo de la Medicina, en el que se basa este proyecto se ha explotado ampliamente, sin embargo, esta investigacin propone una forma diferente de utilizar el Xbox 360 que segn la empresa CIU (Competitive Intelligence Unit), en Mxico ha obtenido el 61% del mercado [5], y como revela otro de sus estudios, el 59% de los mexicanos estn dispuestos a gastar entre dos mil y cuatro mil pesos para la compra de una consola de videojuegos [6]. Es por esto que en el documento presente se fundan las bases del proyecto de titulacin propuesto, demostrando como con una consola, un control inalmbrico, el entorno de desarrollo C# con la API de Microsoft XNA, las conexiones electrnicas pertinentes, y los conocimientos adquiridos a lo largo de la carrera; se puede desarrollar un sistema capaz de registrar seales bioelctricas y representarlas en pantalla, y el procesamiento digital de dichas seales, comprobando as una utilidad en el campo de la

medicina y abriendo las puertas a futuros proyectos que aprovechen las caractersticas del Xbox 360.

Antecedentes. En el ao 2001 en Venezuela, en el artculo presentado por M. Hernndez y C. Ramrez, se describe el desarrollo de un programa basado en la tcnica de programacin multitareas, y utilizando objetos de sincronizacin entre procesos bajo el sistema operativo Windows98, que nos brinda un punto de partida en mediciones de seales bioelctricas con un sistema operativo con una antigedad mayor a diez aos [3].

En

el 2009 Simon Scarle del Reino Unido, propone el desarrollo de una

herramienta de anlisis de arritmias cardiacas, como una solucin a la deteccin de paros cardiacos, en ese trabajo se plante una simulacin de cmo actan distintas clulas comparadas como compuertas lgicas, en la consola de videojuegos Xbox 360 programada en lenguaje C++ para ayudar en la identificacin de dicho problema. El decidi aprovechar esta arquitectura basado en el uso del GPU como procesador principal para desarrollar tal proyecto, comprobando que con este hardware se pueden realizar simulaciones de seales cardiacas [1].

En ese mismo ao un equipo de estudiantes mexicanos presentan un prototipo de juego para nios con problemas motrices en las piernas, en el que utilizando una silla de ruedas modificada, un circuito electrnico y un juego realizado en la plataforma XNA, se les puede dar un entretenimiento ameno a dichos nios. En el documento se muestra el circuito recomendado, y capturas de pantalla del software realizado para Computadora. Con ese proyecto se presentaron en el concurso de Imagine Cup realizado por Microsoft cada ao desde el 2008 a la fecha, posicionndose en la final de Egipto sede de la competencia mundial en el 2009[2].

Marco terico. Una de las caractersticas ms determinantes de la seleccin de este producto ante una computadora regular es la comparativa de costo contra poder de procesamiento. Un equipo de cmputo con caractersticas similares, puede llegar a costar cerca del triple

del precio de la versin Arcade de esta mquina de videojuegos, esto sin contar con un perifrico de conexin inalmbrica, que en el Xbox 360 es un control inalmbrico que viene incluido en el paquete.

Su arquitectura posee un procesador de 3 ncleos cada uno con un reloj de 3.2 GHZ. y dos hilos, lo que nos permite el manejo de 6 hilos de procesos en total, con 1MB de memoria Cache compartida L2. Sin embargo tambin hay que considerar que el uso del GPU permite transferencias de procesos de hasta 250GB/seg[4], ambos procesadores pueden utilizarse con el Sistema Operativo (S.O.) incluido. El bus de transferencia es de 128 bits a la GDDR3 RAM[4], la cual es mucho ms rpida que las memorias RAM de computadoras personales de su generacin, por lo que su S.O. solo requiere el uso de 32MB para ejecutarse correctamente, teniendo a nuestra disposicin 480MB, que si bien no son una capacidad asombrosa en la actualidad, cuando se utiliza con su ancho de bus, podremos realizar mayor cantidad de procesos que equipos de computo actuales, que tienen un hardware de hasta 64 bits de transferencia en el rea comercial y con un costo mayor.

Otro factor decisivo para optar por este equipo, definitivamente es el manejo de una de las plataformas mas compatibles con programacin orientada a objetos, manejo de clases, etc. en la actualidad, en un Ambiente de Desarrollo Integrado (IDE) de manejo cotidiano C# ya que el XNA es una Interfaz de Desarrollo de Aplicaciones (API) para programar videojuegos, diseada para programadores que manejen el Visual Studio .NET (2005, 2008, 2010, etc.).

El Xbox 360 an se encuentra como un dispositivo con un potencial de procesamiento que no se ha explotado completamente, as nace una inquietud por desarrollar proyectos que no solo sean una simulacin, sino tambin obtencin de seales reales. En este caso aprovecharemos los sensores usados en un electroencefalograma (EEG) para adquirir las seales cerebrales, procesarlas con

wavelets y representarlas grficamente [7].

El desarrollo del proyecto comienza con la familiarizacin con el entorno de programacin C# y la Interfaz de Programacin de Aplicaciones(API) XNA, que es la herramienta creada por Microsoft, dirigido a creadores de videojuegos, la cual en esta

ocasin funcionar como intrprete del procesamiento de la seal ; Comprensin de la seal a adquirir, investigar en el mercado circuitos de medicin actuales, costos y utilidad; Diseo del circuito de acoplamiento, comparar necesidades de los sensores con las capacidades de adquisicin del control inalmbrico; Captura de seal, al tener el circuito, almacenar las seales en la memoria del Xbox 360; Procesamiento, aplicar las ecuaciones matemticas correspondientes, para analizar irregularidades; Visualizar

resultados, es la etapa en que se obtiene grficamente los valores obtenidos; y durante cada etapa se considera implcito el estudio y solucin de errores y documentacin.

Para el desarrollo de la primera etapa que es el Software, se realizaran pruebas con XNA y el mando de la consola. Se deben obtener los lmites para representar en pantalla los datos ledos en el control de manera clara y organizada.

La segunda etapa ser investigar los circuitos que leen y despliegan seales bioelctricas tales como presin arterial, temperatura corporal, flujo sanguneo, etc. para conocer cuales sensores se pueden integrar al control del Xbox 360. Es importante comprender los mtodos antiguos y actuales para la solucin del problema presentado.

La tercera parte es un anlisis del control, para saber cmo puede afectar una conexin externa a este. En esta etapa se deben realizar mediciones digitales y el diseo de un circuito electrnico y/o conexiones digitales y anlogas calculadas, para funcionar como interfaz entre el mando y el(los) sensor(es) utilizado(s).

Se continuara con el almacenamiento en memoria de la seal adquirida, esta etapa pretende investigar las clases y mtodos para guardar informacin en un Xbox 360, y analizar si es posible exportar los resultados para ser visualizados en otros dispositivos (Computadoras, PDAs, Celulares).

En el procesamiento se desea conocer hasta qu punto es posible analizar la informacin obtenida y emitir un juicio acerca del status del paciente, por ejemplo: Si los latidos del corazn son menores a 120 por minuto y mayores a 60 por minuto, el paciente se encuentra estable.

Una vez concluida la etapa del procesamiento, se buscara representar de manera didctica la informacin, con el fin de que la comprenda un usuario domestico y pueda enviar esta informacin a una persona calificada, y sea una opcin accesible para pacientes que requieran un monitoreo continuo en casa.

Metodologa. Se obtendrn los datos de seales bioelctricas por medio de sensores, en este caso se proveer una seal de tipo electroencefalograma (EEG). La seal obtenida por estos sensores (EEG) pasar por un circuito de acoplamiento hacia el control del Xbox 360 modificado, se enviar a la consola y los datos se almacenarn en memoria para ser procesados mediante wavelets, para despus generar las graficas en la pantalla.

El mando ser el dispositivo de enlace entre los sensores bioelctricos y la consola. En la investigacin se obtendr el mtodo de conexin entre el mando y los sensores, as mismo el diseo del circuito pertinente.

Objetivo general: Adquirir y analizar seales bioelctricas en un equipo de entretenimiento.

Etapa de Investigacin. Objetivo especfico: Investigacin de entorno de desarrollo seales y sensores. Meta 1: Obtener y comprender el Software Accin 1.1.1.-Obtener e instalar C# y pago de licencia de XNA Accin 1.1.2.- Realizar programas de prueba utilizando las libreras de XNA. Accin 1.1.3.-Obtener seales del mando y mostrarlas en pantalla

Meta 2: Conocer las seales a manejar Accin 1.2.1.- Investigar en libros, revistas e internet, rganos del cuerpo

humano que emitan seales y mtodos de obtencin de las mismas. Accin 1.2.2.- Realizar visitas a Unidades Medicas para solicitar informacin

Meta 3: Conseguir circuitos y/o sensores que registran Seales bioelctricas Accin 1.3.1.- Buscar los sensores utilizados.

Accin 1.3.2.- Estudiar los errores que pueden surgir al adquirir una seal bioelctrica. Accin 1.3.3.- Obtener sensores y/o circuitos.

Etapa de Diseo y pruebas. Objetivo especfico: Obtencin correcta de la seal. Meta 1: Diseo de la Interfaz de conexin del sensor al mando. Accin 2.1.1.-Revisar especificaciones electrnicas del Mando (Control). Accin 2.1.2.-Evaluar si se requiere un circuito adicional, y de ser as disearlo.

Meta 2: Adquirir y almacenar la seal Accin 2.2.1.-Generar mtodos con los resultados de los programas de prueba. Accin 2.2.2.-Agregar el mtodo de almacenamiento de datos en arreglos.

Meta 3: Pruebas preliminares Accin 2.3.1.- Confirmar que los datos obtenidos sean los valores deseados.

Etapa de procesamiento y representacin de la seal. Objetivo especfico: Procesamiento, representacin y almacenamiento correcto de la informacin. Meta 1: Procesamiento de datos. Accin 3.1.1.- Seleccin del algoritmo para tratamiento de la seal. Accin 3.1.2.- Programacin del algoritmo. Accin 3.1.3.- Aplicacin del algoritmo a la seal.

Meta 2: Visualizar la seal en pantalla. Accin 3.2.1.- Programar funcin para generar grafica.

Meta 3: Importar/Exportar resultados Accin 3.3.1.- Investigar formatos para exportar y compatibilidad con el entorno de desarrollo utilizado. Accin 3.3.2.- Programar funciones para importar y exportar.

Etapa de comprobacin.

Objetivo especfico: Evaluar de manera fiel los resultados obtenidos. Meta 1: Corroborar la seal de salida del Xbox 360 simulando los datos en Matlab. Accin 4.1.1.- Analizar los datos obtenidos y generar una funcin en el entorno de desarrollo Matemtico Matlab. Accin 4.1.2.- De manera visual comprobar los resultados. Cronograma

Etapa de Investigacin Semestre enero-junio 2010


Actividades Enero Febrero Marzo Abril Mayo

1.1.1 1.1.2 1.1.3 1.2.1 1.2.2 1.3.1 1.3.2 1.3.3 Etapa de Diseo y Pruebas. Verano 2010
Actividades Mayo Junio

2.1.1 2.1.2 2.2.1 2.2.2 2.3.1

Etapa de Procesamiento y Representacin Semestre agosto-diciembre 2010


Actividades Junio Julio Agosto Septiembre

3.1.1 3.1.2 3.1.3 3.2.1 3.3.1 3.3.2

Semestre agosto-diciembre 2010


Actividades Septiembre Octubre

4.1.1 4.1.2

Referencias. [1] Simon Scarle, Implications of the Turing Completeness of Reaction-Diffusion Models, informed by GPGPU simulations on an XBox 360: Cardiac Arrhythmias, Reentry and the Halting Problem, http://research.microsoft.com/pubs/79271/turing.pdf, 2009. [2] Hernndez S M, Ramrez R C., Adquisicin y presentacin de seales biomdicas utilizando objetos de sincronizacin entre procesos bajo Windows 98,

http://www.hab2001.sld.cu/arrepdf/00217.pdf

[3]http://imaginecup.com/MyStuff/MyTeam.aspx?TeamId=15722 [Consulta 9 marzo 2010] [4] Jeff Andrews, Nick Baker, XBOX 360 SYSTEM ARCHITECTURE, http://www.cis.upenn.edu/~milom/cis501-Fall08/papers/xbox-system.pdf

[5]http://oxm.com.mx/noticias/el-xbox-360-conduce-la-mayoria-del-mercado-enmexico/ [Consulta 9 de marzo 2010]

[6]http://www.publimetro.com.mx/noticias/videojuegos-retan-a-larecesion/pigw!NhmXnIcfXY61nHCuOPpww/ [Consulta 9 de marzo 2010]

[7] PROSPECTS OF BRAIN-MACHINE INTERFACES FOR SPACE SYSTEM CONTROL, ww.sciencedirect.com, C. Menonetal/Acta Astronautica64(2009)448 456

Adquisicin y Anlisis de Seales Bioelctricas. con la Consola XBOX 360.

Por Jos Eduardo Flores Mora

Presentado a la Academia de Sistemas Digitales y Comunicaciones Del Instituto de Ingeniera y Tecnologa de La Universidad Autnoma de Ciudad Jurez Para obtener el ttulo de

INGENIERO EN SISTEMAS DIGITALES Y COMUNICACIONES

LA UNIVERSIDAD AUTNOMA DE CIUDAD JUREZ Noviembre del 2010

UNIVERSIDAD AUTNOMA DE CIUDAD JUREZ

Instituto de Ingeniera y Tecnologa

EVALUACIN DE EXAMEN PROFESIONAL INTRACURRICULAR NIVEL: UCENClATURA TEMA:


Fecho: 25 de Noviembre del 2010 Horario: 09:00 - 11 :00 HRS.

"Adquisicin y Anlisis de Seales Bioelcfricas con la Consola


XBOX 360 "

La evaluacin del examen profesional intracurricular consta de 4 partes:


(Desarrollado en 1 hora)

1._ 2._ 3._ 4._

Exposicin por parte de los alumnos (mximo 20 minutos).


Rplica por parte del jurado.
Comentarios y/o recomendaciones.
Entrega de resultados.

Nombre del alumno: Jos Eduardo Flores Mora

Calificacin Maestro de la materia (30%)


Calificacin Director de Trabajo (40%) Calificacin del Jurado (30%)
TOTAL

3l

Se recomienda que el documento se deposite para consulta en la BIBLIOTECA Si D NoD

Director de Trabajo

Jurado

Coordinador de la Materia "Proyecto de Titulacin"

Ora Nelly Gordillo Caslillo

Dr. Humberto Ochoa Dominguez

Dr Vicio, Manuel Hnostroza Zuba

FIRMADO EN ORIGINAL

DEPAR AMEt O DE
INGENIE lA ELCTRICA
Y COMPUTACION

UA'

ii

Declaracin de originalidad:

Yo Jos Eduardo Flores Mora,

Declaro que el material contenido en este

documento es original y no ha sido copiado de ninguna otra fuente, ni ha sido usado pata obtener otro ttulo o reconocimiento en otra institucin de educacin superior.

_________________________ Jos Eduardo Flores Mora

iii

AGRADECIMIENTOS

Agradezco a mis asesores y al maestro titular de la materia, por todo el apoyo brindado, el tiempo que me dedicaron para la elaboracin de este proyecto, a los miembros del comit revisor, a mi familia por confiar en m, y sobre todo a Dios por brindarme la oportunidad de aprender cada da algo nuevo.

Gracias.

iv

DEDICATORIAS

A toda mi familia, amigos, mi novia, siempre estn cuando los necesito, siempre que me necesiten cuenten conmigo.

A mis asesores Ing. Ivn Javier Muoz Cano y la Dra. Nelly Gordillo, me han ayudado a reforzar mi aprendizaje y al Dr. Hinostroza por su atencin y su ayuda.

Resumen.

En el presente documento, se presentan las bases y fundamentos del desarrollo, de un prototipo funcional para la adquisicin de seales bioelctricas con una consola de videojuegos. De igual manera, la teora aplicada en el diseo del circuito generado, as como la estructura de la programacin, para permitir darle continuidad a trabajos futuros basados en ste proyecto.

El proyecto, consta de un sistema de adquisicin de datos anlogos, para propsitos prcticos, en este caso medicin de biorritmo o seales bioelctricas. La resolucin de la tarjeta de adquisicin es de 8 bits, y la frecuencia de muestreo de la seal en el Xbox 360 se limita a 62.5 Hz. por software; sin embargo, para este propsito resulta suficiente.

El software utilizado XNA framework, es proporcionado por Microsoft para el desarrollo de Videojuegos, tambin se realizaron comprobaciones con LabView y Matlab, ya que sus operaciones de procesamiento y filtrado son de gran fiabilidad.

vi

Lista de figuras y tablas

Figura 1: Filtro sinc de orden 12 en LabView..................................................7 Figura 2: Convolucin de dos seales cuadradas, resultante seal triangular.8 Figura 3: Explorador de soluciones C# XNA..................................................9 Figura 4: Compilador de plataformas (PC, XBOX, ZUNE)...........................10 Figura 5: Pantalla de inicio...........................................................................10 Figura 6: Descarga de juegos.......................................................................10 Figura 7: XNA Creators Club........................................................................11 Figura 8: Conexin al ordenador..................................................................11 Figura 9: Seleccin de Solucin o juego......................................................12 Figura 10: Diagrama de bloques..................................................................13 Figura 11: Conexiones del circuito...............................................................14 Figura 12: Funcin de transferencia pasa bajas orden 2........................17 Figura 13: OPAMP LM358...........................................................................18 Figura 14: Amplificador de Instrumentacin INA122....................................19 Figura 15: Amplificador de Instrumentacion.................................................19 Figura 16: Electrodo AgCl.............................................................................19 Figura 17: Amplificador de Instrumentacin.................................................20 Figura 18: LabView, diseo de interfaz del control.......................................23 Figura 19: Voltaje total..................................................................................24 Figura 20: Voltaje en estado neutral.............................................................24 Figura 21: 0 Volts eje a la izquierda.............................................................24 Figura 22: 3.29 Volts eje a la derecha..........................................................24 Figura 23: Colocacin de conector...............................................................25 Figura 24: Conector montado en el control..................................................25 Figura 25: Circuito de Acoplamiento.............................................................25 Figura 26: Graficacin del filtro sinc en XNA, MatLab y LabView................26

vii

Figura 27: Respuesta a la frecuencia filtro sinc MatLab....26 Tabla 1. Amplitud y frecuencia de seales bioelctricas.6 Tabla 2. Comparacin Xbox360 con equipo de cmputo comercial..........16 Tabla 3: Valores obtenidos con filtro sinc......................................................26

viii

Contenido:

DECLARACIN DE ORIGINALIDAD.....iii AGRADECIMIENTOS......iv DEDICATORIAS.....v RESUMEN......vi LISTA DE FIGURAS Y TABLAS........vii CAPITULO 1. INTRODUCCIN.........1 CAPITULO 2. FUNDAMENTOS SEALES BIOELCTRICAS.3 2.1 Tipos de seales bioelctricas............3 2.1.1 Electrocardiograma ECG.3 2.1.2 Electromiografa EMG.................4 2.1.3 Electroencefalograma EEG..5 2.1.4 Electrooculograma EOG...6 CAPITULO 3 HERRAMIENTAS DE PROGRAMACIN.7 3.1 Fundamentos de LabView...7 3.2 Fundamentos de MatLab.....7 3.3 Programacin de Xbox 360 XNA....6 CAPITULO 4. DESCRIPCIN DEL PROTOTIPO....13 4.1 Diagrama de bloques.....13 4.1.1 Arquitectura Xbox 36014 4.1.2 Seales y filtrado ...16 4.1.2.1 Filtros.17 4.1.2.2 Filtro Sinc..18 4.1.3 Circuito de acoplamiento...18 4.1.3.1 Amplificadores..18 4.1.3.2 Amplificadores de instrumentacin.20 CAPTULO 5. PRUEBAS Y RESULTADOS....................22 5.1 Pruebas.....22

ix

5.1.1 Pruebas XNA 22 5.1.2 Pruebas LabView.....23 5.1.2 Pruebas MatLab...24 5.2 Pruebas fsicas con el control..24 5.3 Resultados25

CAPTULO 6. CONCLUSIONES Y RECOMENDACIONES..27 REFERENCIAS..29 APNDICES...32

ADQUISICIN Y ANLISIS DE SEALES BIOELCTRICAS. CON LA CONSOLA XBOX 360.

CAPITULO 1. INTRODUCCIN.

El Xbox 360 posee una arquitectura de procesamiento, comparable con la de una supercomputadora. El objetivo general del proyecto es obtener una adquisicin de seales bioelctricas, amplificadas para su anlisis en esta consola.

Existe gran diversidad de circuitos electrnicos, con la capacidad de captar seales elctricas del cuerpo humano, se amplifican sus potenciales elctricos para poder ser analizados y descubrir problemas que la medicina moderna pueda corregir. Tambin, en la actualidad, se le ha dado otro uso a esta informacin corporal; las interfases cerebro mquina son el medio de comunicacin entre un usuario y su entorno, existen invasivas y no invasivas, algunas de las invasivas tienen la capacidad de ayudar en el tratamiento de algunas discapacidades, como la visual. Esta investigacin comprueba que en el Xbox 360, se pueden realizar adquisiciones anlogas, con una frecuencia de muestreo menor a 62.5 Hz, para contemplar, entre otros, una interfaz cerebro mquina, en trabajos a futuro.

El programa se realiz en XNA, tratando de cumplir con algunos estndares establecidos de diseo de software. Las funciones se trabajaron de manera independiente, para el diseo de sus clases e implementacin.

El circuito de acoplamiento utilizado, consta de un divisor de voltaje y un amplificador operacional para obtener la referencia y un amplificador de instrumentacin como comparador de las seales.

CAPITULO 2. FUNDAMENTOS SEALES BIOELCTRICAS.

Las seales bioelctricas del cuerpo humano, son producidas debido al desplazamiento de iones en disolucin (portadores de carga en los fluidos orgnicos), especialmente son correspondientes al Sodio (Na+), Potasio (K+) y Cloro(Cl-).

El desplazamiento de iones se produce por la concentracin de fluidos orgnicos que son: el lquido extracelular, el intersticial y el intracelular. El movimiento de estas partculas con carga elctrica se llama difusin y se realiza generalmente de las zonas ms concentradas a las ms diluidas.

Los electrodos tienen la capacidad de recibir el voltaje generado por las reacciones mencionadas y transmitirlo, sin embargo los niveles de voltaje se encuentran en el orden de los microvolts hasta los milivolts. 2.1 Tipos de seales bioelctricas

Las seales bioelctricas se pueden obtener con distintos fines, para ello existen clasificaciones de graficacin de las mismas, para poder tener un mejor control de las necesidades de amplificacin y filtrado para cada caso. Las ms utilizadas son: electrocardiograma (ECG/EKG), electromiografa (EMG),

electroencefalograma (EEG) y electrooculograma (EOG). 2.1.1 Electrocardiograma ECG

El electrocardiograma (ECG/EKG, del alemn Elektrokardiogramm) es la representacin grfica de la actividad elctrica del corazn, sirve para conocer el

ciclo cardiaco y estudiar algunas deficiencias del corazn, como defectos del miocardio, agrandamiento del corazn, defectos congnitos, enfermedades de vlvula cardaca, arritmias, taquicardia o bradicardia (frecuencia cardaca demasiado rpida o demasiada lenta), enfermedades de la arteria coronaria, cambios en la cantidad de electrolitos (qumicos en la sangre), etc.

El corazn es un tejido de fibras musculares llamado miocardio y sus tejidos son los responsables de la contraccin. Produce potenciales de accin con una frecuencia desde 1 Hz (un latido por segundo), que se propagan a las aurculas provocando su contraccin. Estos potenciales tambin se propagan hacia los ventrculos a travs de las vas internodales hasta alcanzar el nodo aurculoventricular (A-V) donde las aurculas se contraen para que la sangre que todava permanece en ellas pase a los ventrculos, proceso llamado sstole auricular. El espectro de seal se extiende desde 0.01 Hz hasta los 150 Hz. Y la amplitud tpica en QRS es de 1 mili volt (mv).

2.1.2 Electromiografa EMG

La electromiografa se especializa en el anlisis de seales provenientes de las reacciones musculares, engloba tambin a la electroneurografa (ENMG). Las unidades motoras simples SMU (single motor units) forman los msculos, conectadas a axones neuronales motores (motor neuron axons), que a su vez se conectan con las fibras que reciben los comandos por el sistema nervioso central CNS (central nervous system) y se produce un intercambio de neurotransmisores acetilcolina (ACh). Al haber un potencial de accin neuronal motor, los canales de iones se dilatan permitiendo que los iones de Na+ pasen hacia el centro de la membrana, pero los iones de Cl- son rechazados por las cargas negativas a la entrada del canal, por lo que la membrana se despolariza por la corriente de sodio. Una vez la membrana se despolariza, se genera un

potencial de accin muscular que se propaga a lo largo de las fibras musculares. Luego de esto viene la relajacin muscular el cual es otro proceso activo.

El rango de frecuencia de estas seales es mayor que las ECG y EEG, van de 100 HZ a 10 kHZ, y de ms alta amplitud. El filtrado supera en gran medida problemas de interferencia. Un filtrado por encima de 20 Hz puede reducir los potenciales de la piel y seales de otros movimientos.

2.1.3 Electroencefalograma EEG

Las seales EEG conocidas por sus amplitudes extremadamente pequeas. Son difciles de interpretar ya que representan la actividad comprendida de billones de neuronas transmitidas por las membranas del cerebro, fluidos y el cuero cabelludo. Son seales entre los 4 a 20 Hz con una amplitud mnima de 5 micro volts de una fuente de aproximadamente 10 20 kilo ohms de impedancia.

Las seales elctricas del cerebro que actualmente se pueden monitorear e identificar se clasifican en:

Alpha: Para una persona despierta y en estado de relajacin. Describe una actividad elctrica de 8-12 Hz, tpicamente de 20 a 50 micro volts.

Beta: Cuando una persona est pensando o respondiendo a algn estmulo. De 14 a 25 Hz, de ms baja amplitud.

Theta: Cuando la persona est dormida. De 4 a 8 Hz, pueden ser de ms de 20 micro volts.

Delta: En estado profundo de sueo. De 0.5 a 4 Hz.

2.1.4 Electrooculograma EOG:

Las seales EOG son recibidas de la diferencia de potencial generada como resultado del movimiento de los ojos entre el flujo conductivo del crneo, de aproximadamente de 0,4 a 5 mV entre la crnea y la membrana de Bruch situada en la parte posterior del ojo.

Es una amplitud pequea (10 a 100 mili volts) y tiene frecuencias bajas (dc a 10 Hz), por este motivo el amplificador debe tener alta ganancia y buena respuesta en frecuencia baja, o incluso dc.

Tabla 1. Amplitud y frecuencia de seales bioelctricas.

CAPITULO 3.- HERRAMIENTAS DE PROGRAMACIN

Para la realizacin del proyecto se realizaron pruebas con la informacin, filtros y datos adquiridos, con dos programas especializados para el tratamiento de seales: LabView y Matlab, para comprobar que los resultados obtenidos en el Xbox 360 tendran un correcto procesamiento.

3.1 Fundamentos de LabView

La estructura de los programas se desarrolla en dos ventanas: el panel frontal y el diagrama de bloques (Izquierda y derecha respectivamente en la Figura 1). En el panel frontal se prepara la interfaz de usuario, formularios, botones, indicadores, etc. El diagrama de bloques permite controlar el comportamiento de cada elemento en el panel frontal, es decir la programacin de las funciones de los elementos presentados al usuario.

Figura 1: Filtro sinc de orden 12 en LabView

3.2 Fundamentos de MatLab

Su nombre deriva de las siglas MATrix LABoratory, y es un Entorno de Desarrollo Integrado (IDE) para el lenguaje de programacin propio de ste (lenguaje M). Fue creado en 1984 para emplear subrutinas de Fortran en los cursos de lgebra lineal y anlisis numrico sin necesidad de programar en dicho lenguaje. Al igual que LabView, sus paquetes de funciones, permiten una amplia funcionalidad reduciendo considerablemente las lneas de cdigo empleadas.

La generacin de grficas es mucho ms sencilla con este programa, las variables no requieren una previa declaracin, y la sintaxis es muy similar a lenguaje C. Incluye palabras reservadas para operaciones matemticas y graficacin.

Figura 2: Convolucin de dos seales cuadradas, resultante seal triangular.

3.3 Programacin de Xbox 360 XNA

XNA es una plataforma de desarrollo soportada en Visual C# que contiene su propio estndar o framework, en el que se facilita el desarrollo de videojuegos para computadora, Xbox 360, Zune, y actualmente Windows 7 Phone.

Cabe aclarar que para la programacin en el Xbox 360 con el XNA se requiere una licencia cuyo costo es de $49 USD. por 4 meses y de $100 USD. pero al momento del lanzamiento de un videojuego en la red de Microsoft (Xbox Live), este costo se puede recuperar al vender el juego por internet.

Cuenta con sus propias libreras, optimizadas para el desarrollo de videojuegos, pero para este proyecto slo se tomar el enfoque de las libreras para resolver problemas o funciones matemticas. La estructura de las soluciones desarrolladas en XNA es muy similar a la de una solucin de C#, sin embargo las soluciones no cuentan con una interfaz grfica basada en formularios. El desarrollo de interfases de usuario es distinto, los formularios no existen como tal, ya que XNA es una plataforma de desarrollo comprimida.

La primer parte es un explorador de soluciones donde se agregan todos los elementos del programa, propiedades, referencias, contenido visual y letras.

Figura 3: Explorador de soluciones C# XNA

Luego se realiza el cdigo en la clase Game.cs donde se encuentran el nombre de la solucin, los mtodos de acceso al dibujado (Draw), actualizar las lecturas (Update), inicializar los datos (Initialize), cargar contenido grfico (LoadContent) y eliminar datos de memoria (UnLoadContent).

Para poder generar una conexin al Xbox es necesario registrarse con una sesin que tenga registrada una licencia activa del XNA para desarrolladores, misma que genera un cdigo para introducir a la computadora y generar la comunicacin. Despus el programa se depura en la computadora, en el Xbox, o en ambos:

Figura 4: Compilador de plataformas (PC, XBOX, ZUNE)

El primer paso en el Xbox 360 es dirigirse al bazar de juegos para descargar la aplicacin.

10

Figura 5: Pantalla de inicio

Figura 6: Descarga de juegos

Al solicitar la descarga pide un cdigo de compra, que puede ser adquirido si se cuenta con una tarjeta de crdito ligada a la cuenta de Xbox Live, o en otro caso mediante la compra a travs de la pgina oficial de XNA Membership.

Figura 7: XNA Creators Club

Una vez realizada la compra e introducida la clave, el programa se pone en modo de espera de la compilacin.

11

Figura 8: Conexin al ordenador

Cada vez que se requiera generar una solucin en el Xbox, se deber acceder al programa XNA Creators Club, y cuando se desee revisar el contenido de la solucin, buscarla en la biblioteca de juegos independientes con el nombre asignado.

Figura 9: Seleccin de Solucin o juego

12

CAPITULO 4. DESCRIPCIN DEL PROTOTIPO.

El prototipo propuesto es un sistema de adquisicin de datos, que amplificar la seal producida por los electrodos conectados al cuerpo, luego, a travs del control se enviarn dichas seales al Xbox 360 y se procesarn mediante un filtrado. Los componentes fsicos requeridos son: sensores AgCl, circuito amplificador, control, consola Xbox 360 y una pantalla. La pantalla de inicio del programa es un men como el de cualquier videojuego, donde la primer opcin es la de adquirir las seales. 4.1 Diagrama de bloques

Figura 10: Diagrama de bloques.

En la Figura 10 se observan las etapas de desarrollo del proyecto, primeramente del hardware utilizado para realizar la adquisicin. Se inicia con los sensores, que se conectan al circuito amplificador, el amplificador al control y por ltimo el control se comunica con el Xbox 360.

13

Circuito de acoplamiento.

Control

Xbox360

Figura 11: Conexiones del circuito

Como se observa en la Figura 11, se utilizan sensores de cloruro de plata conectados a un circuito de acoplamiento, que es el encargado de elevar la amplitud, para transmitir informacin valida al control.

En la etapa de software el primer paso es la adquisicin, luego se almacenan los datos y se procesan.

4.1.1 Arquitectura Xbox 360 Su arquitectura

posee un procesador de 3 ncleos cada uno con un reloj de 3.2 GHZ. y dos hilos, lo que permite el manejo de 6 hilos de procesos en total, con 1MB de memoria Cache compartida L2. Sin embargo tambin hay que considerar que el uso del GPU permite transferencias de procesos de hasta 250GB/seg, ambos procesadores pueden utilizarse con el Sistema Operativo (S.O.) incluido.

14

El bus de transferencia es de 128 bits a la GDDR3 RAM, la cual es mucho ms rpida que las memorias RAM de computadoras personales de su generacin, por lo que su S.O. solo requiere el uso de 32MB para ejecutarse correctamente, dejando a disposicin del usuario 480MB, que si bien no son una capacidad asombrosa en la actualidad, cuando se utiliza con su ancho de bus, se puede realizar una mayor cantidad de procesos que equipos de cmputo actuales, que tienen un hardware de hasta 64 bits de transferencia en el rea comercial y con un costo mayor.

Un equipo de cmputo con caractersticas similares, puede llegar a costar cerca del triple del precio de la versin Arcade de esta mquina de videojuegos, esto sin contar con un perifrico de conexin inalmbrica, que en el Xbox 360 es un control inalmbrico que viene incluido en el paquete. Tomando entonces en cuenta el software de diseo, el precio de una computadora se incrementara mucho ms.

El control almbrico o inalmbrico de la consola, tiene la capacidad de recibir seis seales anlogas simultneas, lo que brinda seis canales activos para la adquisicin de seales. Tambin cuenta con dos salidas anlogas con las que controla la vibracin de dos motores; as tambin quedan a disposicin del usuario, ms de 10 botones para el control de los programas.

15

En la tabla 1 se compara una computadora comercial de la marca HP modelo Pavilion S5300, con la consola Xbox 360.

Xbox 360

HP Pavilion S5300

Xenon(Tres Powerpc) 3.2 Intel Pentium Dual Core 2.8 Procesador Memoria Ram Procesador de video USB Conexiones inalmbricas Mando(Control) N/A Ghz. 512MB Xenos 500 Mhz 3 Puertos 2.0 Ghz. 2 GB. Intel 6 puertos 2.0

Tabla 2. Comparacin Xbox360 con equipo de cmputo comercial. 4.1.2 Seales y filtrado

Las seales son variables fsicas observables y medibles, para la adquisicin de las seales elctricas se debe realizar una transduccin en primera instancia, que es la transformacin y envo de la seal. El procesamiento de la seal, busca obtener informacin til a partir de la misma, sin perder informacin, pero dndole un formato que facilite su comprensin, o adecuando su manejo electrnico.

Un filtro ideal permite el paso de ciertas frecuencias sin modificarlas y elimina completamente otras; esto en la realidad no se puede lograr con exactitud ya que no existen componentes tan precisos en el mercado razn por lo que se tienen aproximaciones. El intervalo de frecuencias que deja pasar el filtro se le denomina banda de paso y todas las frecuencias que elimina se le llama banda de supresin.

16

4.1.2.1 Filtros.

Los filtros, en el tratamiento de seales, sirven para rechazar o permitir una frecuencia o una gama de frecuencias o amplitudes, con el fin de recibir solo la informacin necesaria para el tratamiento de un problema especfico, comnmente se eliminan frecuencias donde se produce ruido no deseado.

La funcin de transferencia es la manera en la que se comporta el filtro, se puede determinar, cuando se pasa una seal a travs del filtro, observando el comportamiento de su amplitud y frecuencia.

Figura 12: Funcin de transferencia pasa bajas orden 2

Existen filtros de Respuesta Finita al Impulso (FIR) y de Respuesta Infinita al Impulso (IIR). Los filtros FIR reciben una seal impulso y a la salida dan un nmero finito de valores no nulos, son estables y normalmente presentan simetra en sus coeficientes. Los filtros IIR nunca regresan al estado de reposo una vez introducida la seal, sus salidas tienden a un valor regularmente, sin embargo los valores resultantes son infinitos, pueden llegar a ser inestables.

17

4.1.2.2 Filtro Sinc.

Tambin se le conoce como filtro ideal, elimina todas las frecuencias encima de un ancho de banda dado. En el dominio de las frecuencias se comporta como una funcin rectangular y en el dominio del tiempo su funcin respuesta es determinada por la inversa de la Transformada de Fourier.

Ecuacin: Transformada Inversa de Fourier (Filtro Sinc).

4.1.3 Circuito de acoplamiento.

El control del Xbox, cuenta con 6 potencimetros que regulan el voltaje de la seal de entrada, por lo que para este proyecto se desmontar un potencimetro, para introducir la seal obtenida de los sensores y amplificarla dentro de los valores permitidos por el mando. Para realizar este procedimiento es necesario conocer el comportamiento de los amplificadores y los voltajes que circulan en el control. 4.1.3.1 Amplificadores.

Los amplificadores operacionales (OPAMP) son circuitos integrados con la capacidad de realizar distintas acciones a una seal de entrada dada.

Figura 13: OpAmp

18

En la figura 13, se muestra un amplificador operacional, donde V+ y V- son las entradas de la seal, VS+ es la alimentacin de la fuente positiva, VS- la alimentacin negativa, y Vout la salida de la seal amplificada.

El propsito de las pruebas realizadas con estos circuitos, es la obtencin de una seal con una amplitud ms perceptible y la reduccin del ruido. Los amplificadores utilizados son un ina122 (amplificador de instrumentacin) y un amplificador lm358 (amplificador operacional).

Figura 14: OPAMP LM358 Figura 15: Amplificador de Instrumentacin INA122

Los electrodos utilizados, son de cloruro de plata (AgCl) compuesto que produce una reaccin elctrica al hacer contacto con la superficie de la piel, de manera ms especfica, con el potasio (K). Dependiendo la colocacin del electrodo, se puede obtener una seal que se encuentra en el orden de los micro volts (), o en el rango de los mili volts (m), y son utilizados en ECG, EMG y EOG.

Figura 16: Electrodo AgCl

19

4.1.3.2 Amplificadores de instrumentacin.

Puede formarse de la conexin de 3 amplificadores operacionales. Est diseado para tener una alta impedancia de entrada y un alto rechazo al modo comn (CMRR). Tambin existen encapsulados listos para configurar su ganancia por la resistencia RG. Su utilidad principal es la reduccin del ruido y amplificacin de la seal.

Funciona restando sus dos entradas y multiplicndolas por el valor de la ganancia.

Figura 17: Amplificador de Instrumentacin.

En la figura 17 se muestra la formacin de un amplificador de instrumentacin por medio de tres amplificadores operacionales, donde V1 y V2 son las entradas de la seal, y Vout la salida de la seal amplificada, RG determina la ganancia del circuito de acuerdo a su relacin con R1, R2 y R3.

Las seales bioelctricas se caracterizan por un bajo nivel de amplitud. Para garantizar su adecuado funcionamiento de acuerdo con normas internacionales, el amplificador de instrumentacin debe reunir las siguientes caractersticas:

20

Alta Relacin de Rechazo en modo comn Alta impedancia de entrada Respuesta en frecuencia Bajo Voltaje Offset Bajas corrientes de polarizacin de entrada Circuito de proteccin contra sobre voltajes El fabricante lo recomienda para aplicaciones biomdicas

21

CAPTULO 5. PRUEBAS Y RESULTADOS

Se realizaron pruebas en distintos lenguajes de programacin, para despus revisar los resultados con la finalidad de comprobar el correcto funcionamiento del sistema, y conocer la fiabilidad de la informacin procesada por el Xbox 360. 5.1 Pruebas.

La etapa de pruebas se divide fundamentalmente en dos reas; pruebas de software y las pruebas fsicas.

Las primeras pruebas de programacin fueron sobre XNA, ya que resultaba una plataforma desconocida, y las posibilidades de desarrollo eran inciertas. Para LabView, se obtuvo un programa de la pgina oficial donde se explicaba el manejo del control, e inclua algunos controles grficos, tiles para la revisin del correcto funcionamiento del mando. Todo el cdigo desarrollado se comprob en MatLab.

5.1.1 Pruebas XNA.

En XNA el primer programa se desarrollo para leer los valores del botn anlogo con la propiedad de GamePad.GetState(PlayerIndex.One).Thumbstick, se movi la posicin de un texto en pantalla incrementando los valores de la seal de acuerdo a la fuerza con que fuera presionado el botn.

Se almacenaron datos en vectores y en disco duro, se prosigui insertando imgenes en fondos de pantalla por medio de rectngulos, para luego generar

22

un men de acceso. Posteriormente se analizaron las libreras de dibujado de puntos y lneas, para poder graficar los valores obtenidos en un vector. Por ltimo se ideo la forma de generar el filtro matemtico, se diseo un algoritmo para realizar la convolucin del filtro y una seal de valores dados. En el apndice se pueden revisar los programas generados. 5.1.2 Pruebas LabView.

En LabView, se programaron funciones de adquisicin de los datos del control, cuenta con libreras de acceso a los controladores del sistema, por lo que un dispositivo de interfaz humana (HID), como lo es el control del Xbox 360, puede ser fcilmente reconocido en este programa.

Se pudo comprobar que: una de las limitantes principales en la frecuencia en XNA, es caracterstica de las funciones para tomar lecturas del control en el y no una limitante fsica del control, para ello se conect el control y se realiz la misma adquisicin que en el Xbox (1 Hz. 1 Vpp.), observando que la tabla de valores generada por LabView tena una mejor resolucin.

Figura 18: LabView, diseo de interfaz del control.

23

5.1.3 Pruebas MatLab.

Matlab fue aplicado en la programacin de algoritmos matemticos para el diseo y aplicacin de filtros a la seal, se pudo observar que los filtros tienen una mejor respuesta incrementando el orden, sin embargo el programa incrementa el tiempo de proceso mientras mayor sea el orden. 5.2 Pruebas fsicas del control.

Las primeras pruebas del control, se realizaron revisando los voltajes que circulaban en los potencimetros, para luego poder introducir los valores normales de trabajo desde un circuito de acoplamiento.

Figura 19: Voltaje total

Figura 20: Voltaje en estado neutral

Figura 21: 0 Volts eje a la izquierda

Figura 22: 3.29 Volts eje a la derecha

Para conocer el voltaje en el potencimetro, se toman lecturas del valor de voltaje del punto de tierra al mximo permitido como entrada anloga.

24

Figura 23: Colocacin de conector

Figura 24: Conector montado en el control

Se procedi a colocar un conector dentro del control para administrar fcilmente las conexiones.

Figura 25: Circuito de Acoplamiento

Por ltimo se conect el control al circuito de acoplamiento para revisar las seales obtenidas por los sensores.

5.3 Resultados.

La informacin obtenida en las pruebas, se utiliz para obtener las funciones a las que accedera el programa principal; se program con xito el algoritmo de la convolucin, el filtro sinc, y la adquisicin de datos en XNA.

25

Se utiliz el mismo algoritmo, para desarrollar el filtro sinc en MatLab y LabView, luego se aplic al Xbox 360 a travs de XNA, y se obtuvieron los siguientes resultados: (tabla 3 y Figura 26)

Tabla 3: Valores obtenidos con filtro sinc

Figura 26: Graficacin del filtro sinc en XNA, MatLab y LabView.

Figura 27: Respuesta a la frecuencia filtro sinc MatLab.

26

CAPTULO 6. Conclusiones y recomendaciones

An siendo Microsoft XNA (XNA's Not Acronymed, XNA no es un acrnimo) una herramienta con poco ms de dos aos en el mercado, es un conjunto de herramientas y libreras para Microsoft Visual C#, que permite a los desarrolladores de videojuegos, una programacin ms sencilla para la generacin de estos programas de entretenimiento; sin embargo, esto no delimita su uso, aunque en el Xbox 360 el conjunto de libreras comprimidas (compact framework) no permite todas las funciones utilizadas en una interfaz grafica de usuario(GUI); existen otras maneras de generar las funciones utilizadas en C#, ya que como est basado en Visual Studio, se cuenta con el respaldo de la documentacin de MSDN Library.

Al momento de conectar el Xbox 360 en la red de la Universidad, haba problemas para realizar la conexin a Xbox Live, por lo tanto tambin para programar. Para dar solucin a este conflicto, se solicito una orden en la que se liberaron los puertos de red 53, 80, 88 y 3074.

Se puede considerar, que los problemas de red que existieron al momento de conectar la consola dentro de una red protegida, pueden ser una ventaja ms que una limitante, ya que a diferencia de la computadora, el Xbox solo mantiene abiertos los puertos necesarios, adems se requiere una autentificacin dentro de Xbox Live, lo que brinda una mayor seguridad contra la piratera y los derechos de autor, ya que por este medio, y con una licencia de desarrollador pagada de XNA, se pueden obtener ingresos cuando se genera la solucin final y el juego es aprobado y clasificado dentro del bazar, que estar disponible para todo aquel que tenga una cuenta registrada de Xbox Live.

27

Se realizaron las pruebas con un control de la marca After Glow mismo que sufri averas en las pistas por el exceso de calor, por lo que se recomienda utilizar un cautn con regulador de temperatura.

Se obtuvieron resultados favorables al desarrollar un filtro pasabajas, conocido como sinc, para el procesamiento de la seal. La aplicacin tuvo sus limitantes de adquisicin, por el desarrollo en XNA, sin embargo su uso no se descarta totalmente para otras aplicaciones que no requieran una gran velocidad de muestreo.

Para el trabajo con los ncleos del procesador y las pipelines de la GPU, se recomienda una previa nocin de graficacin. La investigacin se continu para el fitrado de seales por Wavelet, sin embargo, su implementacin queda contemplada en trabajos a futuro, as como la comparacin de velocidades de muestreo, de otros dispositivos perifricos que soporta actualmente el Xbox 360.

En trabajos a futuro, se considera documentar y compartir las libreras de los filtros en internet, as como utilizar XNA 4.0 ya que cuenta con libreras para el uso de micrfonos, y probablemente su frecuencia de muestreo sea mucho mejor que la del control.

28

Referencias.

[1] Simon Scarle, Implications of the Turing Completeness of Reaction-Diffusion Models, informed by GPGPU simulations on an XBox 360: Cardiac Arrhythmias, Re-entry and the Halting Problem, 2009.

http://research.microsoft.com/pubs/79271/turing.pdf,

[2] Hernndez S M, Ramrez R C., Adquisicin y presentacin de seales biomdicas utilizando objetos de sincronizacin entre procesos bajo Windows 98, http://www.hab2001.sld.cu/arrepdf/00217.pdf

[3]http://imaginecup.com/MyStuff/MyTeam.aspx?TeamId=15722 marzo 2010]

[Consulta

[4] Jeff Andrews, Nick Baker, XBOX 360 SYSTEM ARCHITECTURE, http://www.cis.upenn.edu/~milom/cis501-Fall08/papers/xbox-system.pdf

[5]http://oxm.com.mx/noticias/el-xbox-360-conduce-la-mayoria-del-mercado-enmexico/ [Consulta 9 de marzo 2010]

[6]http://www.publimetro.com.mx/noticias/videojuegos-retan-a-larecesion/pigw!NhmXnIcfXY61nHCuOPpww/ [Consulta 9 de marzo 2010]

[7] PROSPECTS OF BRAIN-MACHINE INTERFACES FOR SPACE SYSTEM CONTROL,ww.sciencedirect.com,C.Menonetal/ActaAstronautica64(2009)448 456

[8] Metin Akay, TIME FREQUENCY AND WAVELETS IN BIOMEDICAL SIGNAL PROCESSING

29

Wiley-IEEE Press (24 de Octubre, 1997).

[9] BOYLESTAD, Robert. Fundamentos de electrnica. Mxico. Editorial Prentice-Hall Hispanoamericana, 1997. 624p.

[10] BRONZINO, Joseph. The biomedical engineering: handbook. Boca Raton. Editorial CRC Press, 2000. 1975p.

[11] COGDELL, J. R. Fundamentos de electrnica. Mxico. Editorial Pearson, 2000.420p.

[12] COUGHLIN, Robert F. Amplificadores operacionales y circuitos integrados lineales. Mxico. Editorial Prentice Hall Hispanoamericana, 1993. 538p.

[13] DORF, Richard C. Circuitos elctricos: introduccin al anlisis y diseo. Mxico. Editorial Alfaomega, 2000. 998p.

[14] HERNNDEZ SAMPIERI, Roberto. Metodologa de la investigacin. Mxico. Editorial McGraw-Hill, 2003. 705p.

[15] HOUSSAY, Bernardo A. Fisiologa humana. Buenos Aires. Editorial El Ateneo, 1971. 1318p.

[16] JOHNSON, David E. Anlisis bsico de circuitos elctricos. Mxico. Editorial Prentice-Hall Hispanoamericana, 1996. 752p.

30

[17] WEBSTER, John. Medical instrumentation: application and design. New York. Editorial John Wiley & Sons, 1998. 691p.

[18] Luis Enrique Avendao M. Sc. Fundamentos de Instrumentacin. UNIVERSIDAD TECNOLGICA DE PEREIRA

31

Apndices. Filtro sinc MatLab %En este programa se convoluciona el filtro sinc con una frecuencia de corte a 32 Hz. Y una %senal generada como a^2. clear all; orden=12; %Definir el orden del filtro indice0=1; %El indice 0 en Matlab es 1 vector3=zeros(indice0,(orden*2)+1); %El arreglo resultante se llena con 0's %El tamano de este arreglo debe ser el doble del tamano del orden+1 Fs=62.5; fc = 32/Fs; a=0; %Frecuencia de muestreo %Frecuencia de Corte %variable de incremento para el filtro

for b=-orden:orden if(b==1) fsinc(a)=fc/2; %Filtro Ideal o sinc senal(a)=a*a; end %Una seal a^2

a=a+1; senal(a)=a*a; atmp(a)=b; fsinc(a) = (sin(pi*fc*atmp(a))/(2*pi*atmp(a))); end

%Algoritmo para la convolucin for i=indice0:1:orden %Ciclo exterior, del indice cero al tamano del orden for j=indice0:1:i %ciclo exterior vector3(i)=vector3(i)+senal(j)*fsinc(i-j+1); %El vector resultante es igual %Ciclo interior, del indice cero al tamano del indice del

32

%al valor actual de su posicion, sumado a la multiplicacion del vector1 en %su indice interior, por el vector2 en la resta de los valores de sus %indices mas 1. end end figure(1) plot(senal); figure(2) plot(fsinc); figure(3) plot(vector3)

Filtro sinc XNA //En la clase se colocan las variables static float Fs = 62.5f; float frecCorte = 32f / Fs; //Frecuencia de muestreo //Frecuencia de Corte

float[] fsinc = new float[(orden*2)+1]; //Filtro Sinc float[] atemp = new float[(orden*2)+1]; float[] senal = new float[(orden*2)+1]; float pi = (float)MathHelper.Pi; float sin(double valor) { return (float)Math.Sin(valor); } En la inicializacion se colocan las operaciones. int a = 0; for (int b = -orden; b <= orden; b++) { atemp[a] = b; //Arreglo temporal //senal x^2

33

fsinc[a] = 1000*((sin(frecCotre * pi * atemp[a])) / (2 * pi * atemp[a])) / (frecCorte); if (b == 0) { fsinc[a] = 1000*( frecCorte /2); //Se multiplica *1000 para obtener la escala del dibujado } Console.WriteLine("fsinc[" + a + "]= " + fsinc[a]/1000); a ++;//Se divide entre 1000 para obtener los valores reales }

Respuesta a la frecuencia en MatLab

[H1,F1]=freqz(fsinc,1,1000,2); plot( F1,abs(H1) );Title('Respuesta a la frecuencia');grid on;

34

Вам также может понравиться