Adquisición y análisis de señales bioelectricas con la

Anuncio
Adquisición y Análisis de Señales Bioeléctricas.
con la Consola XBOX 360.
por
José Eduardo Flores Mora
Presentado a la academia de Sistemas Digitales y Comunicaciones
del Instituto de Ingeniería y Tecnología de
La Universidad Autónoma de Ciudad Juárez
para su evaluación
LA UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ
Marzo del 2010
Adquisición y Análisis de Señales Bioeléctricas con la Consola XBOX 360.
MC. Alejandra Mendoza
___________________________________________
Presidente de la academia
Ing. Iván J. Muñoz Cano ___________________________________________
Asesor
José Eduardo Flores Mora
Alumno
___________________________________________
Adquisición y Análisis de Señales Bioeléctricas.
con la Consola XBOX 360.
Introducción.
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
satisfacción de algunas necesidades básicas actuales, como la comunicación,
organización, etc., cubriendo también otras no tan básicas como el entretenimiento; los
ordenadores, los celulares y una gran diversidad de dispositivos cada vez son más
accesibles y satisfacen estos requisitos. Sin embargo, algunos equipos electrónicos
podrían resultar una solución a un campo más específico por su alto poder de
procesamiento, como es el caso del Xbox 360 para adquirir una señal bioeléctrica.
Este equipo se lanzó en el año 2005 y es una consola de videojuegos, desarrollada
por la empresa Microsoft con colaboración de IBM y ATI. Fue la primera de su
generación en salir al mercado, y aún así se ha logrado mantener a la vanguardia durante
casi 5 años con más de 21 millones de equipos posicionados en el continente
Americano, y más 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 investigación propone una forma diferente de utilizar el
Xbox 360 que según la empresa CIU (Competitive Intelligence Unit), en México ha
obtenido el 61% del mercado [5], y como revela otro de sus estudios, el 59% de los
mexicanos están 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
titulación propuesto, demostrando como con una consola, un control inalámbrico, el
entorno de desarrollo C# con la API de Microsoft XNA, las conexiones electrónicas
pertinentes, y los conocimientos adquiridos a lo largo de la carrera; se puede desarrollar
un sistema capaz de registrar señales bioeléctricas y representarlas en pantalla, y el
procesamiento digital de dichas señales, comprobando así una utilidad en el campo de la
medicina y abriendo las puertas a futuros proyectos que aprovechen las características
del Xbox 360.
Antecedentes.
En el año 2001 en Venezuela, en el artículo presentado por M. Hernández y C.
Ramírez, se describe el desarrollo de un programa basado en la técnica de programación
multitareas, y utilizando objetos de sincronización entre procesos bajo el sistema
operativo Windows98, que nos brinda un punto de partida en mediciones de señales
bioeléctricas con un sistema operativo con una antigüedad mayor a diez años [3].
En
el 2009 Simon Scarle del Reino Unido, propone el desarrollo de una
herramienta de análisis de arritmias cardiacas, como una solución a la detección de
paros cardiacos, en ese trabajo se planteó una simulación de cómo actúan distintas
células comparadas como compuertas lógicas, en la consola de videojuegos Xbox 360
programada en lenguaje C++ para ayudar en la identificación 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 señales cardiacas [1].
En ese mismo año un equipo de estudiantes mexicanos presentan un prototipo de
juego para niños con problemas motrices en las piernas, en el que utilizando una silla de
ruedas modificada, un circuito electrónico y un juego realizado en la plataforma XNA,
se les puede dar un entretenimiento ameno a dichos niños. 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 año desde el 2008 a la fecha, posicionándose en la final de
Egipto sede de la competencia mundial en el 2009[2].
Marco teórico.
Una de las características más determinantes de la selección de este producto ante
una computadora regular es la comparativa de costo contra poder de procesamiento. Un
equipo de cómputo con características similares, puede llegar a costar cerca del triple
del precio de la versión “Arcade” de esta máquina de videojuegos, esto sin contar con
un periférico de conexión inalámbrica, que en el Xbox 360 es un control inalámbrico
que viene incluido en el paquete.
Su arquitectura posee un procesador de 3 núcleos 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 también 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 más rápida que las
memorias RAM de computadoras personales de su generación, por lo que su S.O. solo
requiere el uso de 32MB para ejecutarse correctamente, teniendo a nuestra disposición
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 programación 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, diseñada para programadores que manejen el Visual
Studio .NET (2005, 2008, 2010, etc.).
El Xbox 360 aún 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 simulación, sino también obtención de
señales reales. En este caso aprovecharemos los sensores usados en un
electroencefalograma (EEG)
para adquirir las señales cerebrales, procesarlas con
wavelets y representarlas gráficamente [7].
El desarrollo del proyecto comienza con la familiarización con el entorno de
programación C# y la Interfaz de Programación de Aplicaciones(API) XNA, que es la
herramienta creada por Microsoft, dirigido a creadores de videojuegos, la cual en esta
ocasión funcionará como intérprete del procesamiento de la señal ; Comprensión de la
señal a adquirir, investigar en el mercado circuitos de medición actuales, costos y
utilidad; Diseño del circuito de acoplamiento, comparar necesidades de los sensores con
las capacidades de adquisición del control inalámbrico; Captura de señal, al tener el
circuito, almacenar las señales en la memoria del Xbox 360; Procesamiento, aplicar las
ecuaciones matemáticas correspondientes, para analizar irregularidades;
Visualizar
resultados, es la etapa en que se obtiene gráficamente los valores obtenidos; y durante
cada etapa se considera implícito el estudio y solución de errores y documentación.
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 límites para representar en
pantalla los datos leídos en el control de manera clara y organizada.
La segunda etapa será investigar los circuitos que leen y despliegan señales
bioeléctricas tales como presión arterial, temperatura corporal, flujo sanguíneo, etc. para
conocer cuales sensores se pueden integrar al control del Xbox 360. Es importante
comprender los métodos antiguos y actuales para la solución del problema presentado.
La tercera parte es un análisis del control, para saber cómo puede afectar una
conexión externa a este. En esta etapa se deben realizar mediciones digitales y el diseño
de un circuito electrónico y/o conexiones digitales y análogas calculadas, para funcionar
como interfaz entre el mando y el(los) sensor(es) utilizado(s).
Se continuara con el almacenamiento en memoria de la señal adquirida, esta
etapa pretende investigar las clases y métodos para guardar información en un Xbox
360, y analizar si es posible exportar los resultados para ser visualizados en otros
dispositivos (Computadoras, PDA’s, Celulares).
En el procesamiento se desea conocer hasta qué punto es posible analizar la
información obtenida y emitir un juicio acerca del status del paciente, por ejemplo:
Si los latidos del corazón 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
didáctica la información, con el fin de que la comprenda un usuario domestico y pueda
enviar esta información a una persona calificada, y sea una opción accesible para
pacientes que requieran un monitoreo continuo en casa.
Metodología.
Se obtendrán los datos de señales bioeléctricas por medio de sensores, en este
caso se proveerá una señal de tipo electroencefalograma (EEG). La señal 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 almacenarán en memoria para ser
procesados mediante wavelets, para después generar las graficas en la pantalla.
El mando será el dispositivo de enlace entre los sensores bioeléctricos y la
consola. En la investigación se obtendrá el método de conexión entre el mando y los
sensores, así mismo el diseño del circuito pertinente.
Objetivo general: Adquirir y analizar señales bioeléctricas en un equipo de
entretenimiento.
Etapa de Investigación.
Objetivo específico: Investigación de entorno de desarrollo señales y sensores.
Meta 1: Obtener y comprender el Software
Acción 1.1.1.-Obtener e instalar C# y pago de licencia de XNA
Acción 1.1.2.- Realizar programas de prueba utilizando las librerías de XNA.
Acción 1.1.3.-Obtener señales del mando y mostrarlas en pantalla
Meta 2: Conocer las señales a manejar
Acción
1.2.1.- Investigar en libros, revistas e internet, órganos del cuerpo
humano que emitan señales y métodos de obtención de las mismas.
Acción 1.2.2.- Realizar visitas a Unidades Medicas para solicitar información
Meta 3: Conseguir circuitos y/o sensores que registran Señales bioeléctricas
Acción 1.3.1.- Buscar los sensores utilizados.
Acción 1.3.2.- Estudiar los errores que pueden surgir al adquirir una señal
bioeléctrica.
Acción 1.3.3.- Obtener sensores y/o circuitos.
Etapa de Diseño y pruebas.
Objetivo específico: Obtención correcta de la señal.
Meta 1: Diseño de la Interfaz de conexión del sensor al mando.
Acción 2.1.1.-Revisar especificaciones electrónicas del Mando (Control).
Acción 2.1.2.-Evaluar si se requiere un circuito adicional, y de ser así diseñarlo.
Meta 2: Adquirir y almacenar la señal
Acción 2.2.1.-Generar métodos con los resultados de los programas de prueba.
Acción 2.2.2.-Agregar el método de almacenamiento de datos en arreglos.
Meta 3: Pruebas preliminares
Acción 2.3.1.- Confirmar que los datos obtenidos sean los valores deseados.
Etapa de procesamiento y representación de la señal.
Objetivo específico: Procesamiento, representación y almacenamiento correcto de la
información.
Meta 1: Procesamiento de datos.
Acción 3.1.1.- Selección del algoritmo para tratamiento de la señal.
Acción 3.1.2.- Programación del algoritmo.
Acción 3.1.3.- Aplicación del algoritmo a la señal.
Meta 2: Visualizar la señal en pantalla.
Acción 3.2.1.- Programar función para generar grafica.
Meta 3: Importar/Exportar resultados
Acción 3.3.1.- Investigar formatos para exportar y compatibilidad con el entorno
de desarrollo utilizado.
Acción 3.3.2.- Programar funciones para importar y exportar.
Etapa de comprobación.
Objetivo específico: Evaluar de manera fiel los resultados obtenidos.
Meta 1: Corroborar la señal de salida del Xbox 360 simulando los datos en
Matlab.
Acción 4.1.1.- Analizar los datos obtenidos y generar una función en el entorno
de desarrollo Matemático Matlab.
Acción 4.1.2.- De manera visual comprobar los resultados.
Cronograma
Etapa de Investigación
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 Diseño y Pruebas.
Verano 2010
Actividades
2.1.1
2.1.2
2.2.1
2.2.2
2.3.1
Mayo
Junio
Etapa de Procesamiento y Representación
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
4.1.1
4.1.2
Septiembre
Octubre
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] Hernández S M, Ramírez R C., “Adquisición y presentación de señales biomédicas
utilizando
objetos
de
sincronización
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
Adquisición y Análisis de Señales Bioeléctricas.
con la Consola XBOX 360.
Por
José Eduardo Flores Mora
Presentado a la Academia de Sistemas Digitales y Comunicaciones
Del Instituto de Ingeniería y Tecnología de
La Universidad Autónoma de Ciudad Juárez
Para obtener el título de
INGENIERO EN SISTEMAS DIGITALES Y COMUNICACIONES
LA UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ
Noviembre del 2010
UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ
Instituto de Ingeniería y Tecnología
EVALUACIÓN DE EXAMEN
PROFESIONAL INTRACURRICULAR
NIVEL: UCENClATURA
TEMA:
Fecho: 25 de Noviembre del 2010
Horario: 09:00 - 11 :00 HRS.
"Adquisición y Análisis de Señales Bioelécfricas con la Consola
XBOX 360 "
La evaluación del examen profesional intracurricular consta de 4 partes:
(Desarrollado en 1 hora)
1°._
2°._
3°._
4°._
Exposición por parte de los alumnos (máximo 20 minutos).
Réplica por parte del jurado.
Comentarios y/o recomendaciones.
Entrega de resultados.
Nombre del alumno: José Eduardo Flores Mora
Calificación Maestro de la materia (30%)
3l
Calificación Director de Trabajo (40%)
Calificación del Jurado (30%)
TOTAL
Se recomienda que el documento se deposite para consulta en la BIBLIOTECA
Si D
NoD
Director de Trabajo
Ora Nelly Gordillo Caslillo
Jurado
Coordinador de la Materia
"Proyecto de Titulación"
Dr. Humberto Ochoa Dominguez
Dr Vicio, Manuel Hínostroza Zubía
•
UA'
FIRMADO EN ORIGINAL
DEPAR AMEt O DE
INGENIE lA ELÉCTRICA
Y COMPUTACION
ii
Declaración 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 título o reconocimiento en otra institución de educación
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 elaboración 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 día algo nuevo.
Gracias.
iv
DEDICATORIAS
A toda mi familia, amigos, mi novia, siempre están cuando los necesito, siempre
que me necesiten cuenten conmigo.
A mis asesores Ing. Iván Javier Muñoz Cano y la Dra. Nelly Gordillo, me han
ayudado a reforzar mi aprendizaje y al Dr. Hinostroza por su atención y su
ayuda.
v
Resumen.
En el presente documento, se presentan las bases y fundamentos del desarrollo,
de un prototipo funcional para la adquisición de señales bioeléctricas con una
consola de videojuegos. De igual manera, la teoría aplicada en el diseño del
circuito generado, así como la estructura de la programación, para permitir darle
continuidad a trabajos futuros basados en éste proyecto.
El proyecto, consta de un sistema de adquisición de datos análogos, para
propósitos prácticos, en este caso medición de biorritmo o señales bioeléctricas.
La resolución de la tarjeta de adquisición es de 8 bits, y la frecuencia de
muestreo de la señal en el Xbox 360 se limita a 62.5 Hz. por software; sin
embargo, para este propósito resulta suficiente.
El software utilizado XNA framework, es proporcionado por Microsoft para el
desarrollo de Videojuegos, también 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: Convolución de dos señales cuadradas, resultante señal
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: Conexión al ordenador..................................................................11
Figura 9: Selección de Solución o juego......................................................12
Figura 10: Diagrama de bloques..................................................................13
Figura 11: Conexiones del circuito...............................................................14
Figura 12: Función de transferencia pasa bajas orden 2..…......................17
Figura 13: OPAMP LM358...........................................................................18
Figura 14: Amplificador de Instrumentación INA122....................................19
Figura 15: Amplificador de Instrumentacion.................................................19
Figura 16: Electrodo AgCl.............................................................................19
Figura 17: Amplificador de Instrumentación.................................................20
Figura 18: LabView, diseño 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: Colocación de conector...............................................................25
Figura 24: Conector montado en el control..................................................25
Figura 25: Circuito de Acoplamiento.............................................................25
Figura 26: Graficación 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 señales bioeléctricas……………………….6
Tabla 2. Comparación Xbox360 con equipo de cómputo comercial…..........16
Tabla 3: Valores obtenidos con filtro sinc......................................................26
viii
Contenido:
DECLARACIÓN DE ORIGINALIDAD.……...……………………….…………iii
AGRADECIMIENTOS…...………………………………………………..…….iv
DEDICATORIAS……………….………………………………………………....v
RESUMEN…………………...…….……….…………………………………….vi
LISTA DE FIGURAS Y TABLAS…………..………………………………......vii
CAPITULO 1. INTRODUCCIÓN……………….…………….….…………......1
CAPITULO 2. FUNDAMENTOS SEÑALES BIOELÉCTRICAS………….…3
2.1 Tipos de señales bioeléctricas…………..………………………..........3
2.1.1 Electrocardiograma ECG…………………………………….……3
2.1.2 Electromiografía EMG…………..………………………...............4
2.1.3 Electroencefalograma EEG……………………………….……….5
2.1.4 Electrooculograma EOG………………………………….………..6
CAPITULO 3 HERRAMIENTAS DE PROGRAMACIÓN…………………….7
3.1 Fundamentos de LabView………………….…………………………..7
3.2 Fundamentos de MatLab…………………...…………………………..7
3.3 Programación de Xbox 360 XNA…………...………………………….6
CAPITULO 4. DESCRIPCIÓN DEL PROTOTIPO.…..…………………….13
4.1 Diagrama de bloques…...…………………………………………..13
4.1.1 Arquitectura Xbox 360………………………………………14
4.1.2 Señales 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 instrumentación…………….20
CAPÍTULO 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 físicas con el control………………………………..24
5.3 Resultados………………………………………………………25
CAPÍTULO 6. CONCLUSIONES Y RECOMENDACIONES………..27
REFERENCIAS………………………………………………….……………….29
APÉNDICES……………………………………………………………………...32
x
ADQUISICIÓN Y ANÁLISIS DE SEÑALES BIOELÉCTRICAS.
CON LA CONSOLA XBOX 360.
CAPITULO 1. INTRODUCCIÓN.
El Xbox 360 posee una arquitectura de procesamiento, comparable con la de
una supercomputadora. El objetivo general del proyecto es obtener una
adquisición de señales bioeléctricas, amplificadas para su análisis en esta
consola.
Existe gran diversidad de circuitos electrónicos, con la capacidad de captar
señales eléctricas del cuerpo humano, se amplifican sus potenciales eléctricos
para poder ser analizados y descubrir problemas que la medicina moderna
pueda corregir. También, en la actualidad, se le ha dado otro uso a esta
información corporal; las interfases cerebro máquina son el medio de
comunicación 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 investigación comprueba que en el
Xbox 360, se pueden realizar adquisiciones análogas, con una frecuencia de
muestreo menor a 62.5 Hz, para contemplar, entre otros, una interfaz cerebro
máquina, en trabajos a futuro.
El programa se realizó en XNA, tratando de cumplir con algunos estándares
establecidos de diseño de software. Las funciones se trabajaron de manera
independiente, para el diseño de sus clases e implementación.
1
El circuito de acoplamiento utilizado, consta de un divisor de voltaje y un
amplificador operacional para obtener la referencia y un amplificador de
instrumentación como comparador de las señales.
2
CAPITULO 2. FUNDAMENTOS SEÑALES BIOELÉCTRICAS.
Las señales bioeléctricas del cuerpo humano, son producidas debido al
desplazamiento de iones en disolución (portadores de carga en los fluidos
orgánicos), especialmente son correspondientes al Sodio (Na+), Potasio (K+) y
Cloro(Cl-).
El desplazamiento de iones se produce por la concentración de fluidos orgánicos
que son: el líquido extracelular, el intersticial y el intracelular. El movimiento de
estas partículas con carga eléctrica se llama difusión y se realiza generalmente
de las zonas más concentradas a las más 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 señales bioeléctricas
Las señales bioeléctricas se pueden obtener con distintos fines, para ello existen
clasificaciones de graficación de las mismas, para poder tener un mejor control
de las necesidades de amplificación y filtrado para cada caso. Las más utilizadas
son:
electrocardiograma
(ECG/EKG),
electromiografía
(EMG),
electroencefalograma (EEG) y electrooculograma (EOG).
2.1.1 Electrocardiograma ECG
El electrocardiograma (ECG/EKG, del alemán Elektrokardiogramm) es la
representación gráfica de la actividad eléctrica del corazón, sirve para conocer el
3
ciclo cardiaco y estudiar algunas deficiencias del corazón, como defectos del
miocardio, agrandamiento del corazón, defectos congénitos, enfermedades de
válvula cardíaca, arritmias, taquicardia o bradicardia (frecuencia cardíaca
demasiado rápida o demasiada lenta), enfermedades de la arteria coronaria,
cambios en la cantidad de electrolitos (químicos en la sangre), etc.
El corazón es un tejido de fibras musculares llamado miocardio y sus tejidos son
los responsables de la contracción. Produce potenciales de acción con una
frecuencia desde 1 Hz (un latido por segundo), que se propagan a las aurículas
provocando su contracción. Estos potenciales también se propagan hacia los
ventrículos a través de las vías internodales hasta alcanzar el nodo aurículoventricular (A-V) donde las aurículas se contraen para que la sangre que todavía
permanece en ellas pase a los ventrículos, proceso llamado sístole auricular. El
espectro de señal se extiende desde 0.01 Hz hasta los 150 Hz. Y la amplitud
típica en QRS es de 1 mili volt (mv).
2.1.2 Electromiografía EMG
La electromiografía se especializa en el análisis de señales provenientes de las
reacciones musculares, engloba también a la electroneurografía (ENMG). Las
unidades motoras simples SMU (single motor units) forman los músculos,
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 acción 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
4
potencial de acción muscular que se propaga a lo largo de las fibras musculares.
Luego de esto viene la relajación muscular el cual es otro proceso activo.
El rango de frecuencia de estas señales es mayor que las ECG y EEG, van de
100 HZ a 10 kHZ, y de más 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 señales de otros movimientos.
2.1.3 Electroencefalograma EEG
Las señales EEG conocidas por sus amplitudes extremadamente pequeñas. Son
difíciles de interpretar ya que representan la actividad comprendida de billones
de neuronas transmitidas por las membranas del cerebro, fluidos y el cuero
cabelludo. Son señales entre los 4 a 20 Hz con una amplitud mínima de 5 micro
volts de una fuente de aproximadamente 10 – 20 kilo ohms de impedancia.
Las señales eléctricas del cerebro que actualmente se pueden monitorear e
identificar se clasifican en:

Alpha: Para una persona despierta y en estado de relajación. Describe
una actividad eléctrica de 8-12 Hz, típicamente de 20 a 50 micro volts.

Beta: Cuando una persona está pensando o respondiendo a algún
estímulo. De 14 a 25 Hz, de más baja amplitud.

Theta: Cuando la persona está dormida. De 4 a 8 Hz, pueden ser de más
de 20 micro volts.

Delta: En estado profundo de sueño. De 0.5 a 4 Hz.
5
2.1.4 Electrooculograma EOG:
Las señales EOG son recibidas de la diferencia de potencial generada como
resultado del movimiento de los ojos entre el flujo conductivo del cráneo, de
aproximadamente de 0,4 a 5 mV entre la córnea y la membrana de Bruch
situada en la parte posterior del ojo.
Es una amplitud pequeña (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 señales bioeléctricas.
6
CAPITULO 3.- HERRAMIENTAS DE PROGRAMACIÓN
Para la realización del proyecto se realizaron pruebas con la información, filtros y
datos adquiridos, con dos programas especializados para el tratamiento de
señales: LabView y Matlab, para comprobar que los resultados obtenidos en el
Xbox 360 tendrían 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 programación de las funciones de
los elementos presentados al usuario.
Figura 1: Filtro sinc de orden 12 en LabView
7
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 programación propio de éste
(lenguaje M). Fue creado en 1984 para emplear subrutinas de Fortran en los
cursos de álgebra lineal y análisis numérico sin necesidad de programar en
dicho lenguaje. Al igual que LabView, sus paquetes de funciones, permiten una
amplia funcionalidad reduciendo considerablemente las líneas de código
empleadas.
La generación de gráficas es mucho más sencilla con este programa, las
variables no requieren una previa declaración, y la sintaxis es muy similar a
lenguaje C. Incluye palabras reservadas para operaciones matemáticas y
graficación.
Figura 2: Convolución de dos señales cuadradas, resultante señal triangular.
8
3.3 Programación de Xbox 360 XNA
XNA es una plataforma de desarrollo soportada en Visual C# que contiene su
propio estándar 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 programación 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 librerías, optimizadas para el desarrollo de videojuegos,
pero para este proyecto sólo se tomará el enfoque de las librerías para resolver
problemas o funciones matemáticas.
La estructura de las soluciones desarrolladas en XNA es muy similar a la de una
solución de C#, sin embargo las soluciones no cuentan con una interfaz gráfica
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.
9
Figura 3: Explorador de soluciones C# XNA
Luego se realiza el código en la clase Game.cs donde se encuentran el nombre
de la solución, los métodos de acceso al dibujado (Draw), actualizar las lecturas
(Update), inicializar los datos (Initialize), cargar contenido gráfico (LoadContent)
y eliminar datos de memoria (UnLoadContent).
Para poder generar una conexión al Xbox es necesario registrarse con una
sesión que tenga registrada una licencia activa del XNA para desarrolladores,
misma que genera un código para introducir a la computadora y generar la
comunicación. Después 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
aplicación.
10
Figura 5: Pantalla de inicio
Figura 6: Descarga de juegos
Al solicitar la descarga pide un código de compra, que puede ser adquirido si se
cuenta con una tarjeta de crédito ligada a la cuenta de Xbox Live, o en otro caso
mediante la compra a través de la página 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 compilación.
11
Figura 8: Conexión al ordenador
Cada vez que se requiera generar una solución en el Xbox, se deberá acceder al
programa XNA Creators Club, y cuando se desee revisar el contenido de la
solución, buscarla en la biblioteca de juegos independientes con el nombre
asignado.
Figura 9: Selección de Solución o juego
12
CAPITULO 4. DESCRIPCIÓN DEL PROTOTIPO.
El prototipo propuesto es un sistema de adquisición de datos, que amplificará la
señal producida por los electrodos conectados al cuerpo, luego, a través del
control se enviarán dichas señales al Xbox 360 y se procesarán mediante un
filtrado. Los componentes físicos 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 opción
es la de adquirir las señales.
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 adquisición. 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 información valida al control.
En la etapa de software el primer paso es la adquisición, luego se almacenan los
datos y se procesan.
4.1.1 Arquitectura Xbox 360
Su
arquitectura
posee un procesador de 3 núcleos 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 también 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 más
rápida que las memorias RAM de computadoras personales de su generación,
por lo que su S.O. solo requiere el uso de 32MB para ejecutarse correctamente,
dejando a disposición 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 cómputo actuales, que
tienen un hardware de hasta 64 bits de transferencia en el área comercial y con
un costo mayor.
Un equipo de cómputo con características similares, puede llegar a costar cerca
del triple del precio de la versión “Arcade” de esta máquina de videojuegos, esto
sin contar con un periférico de conexión inalámbrica, que en el Xbox 360 es un
control inalámbrico que viene incluido en el paquete. Tomando entonces en
cuenta el software de diseño, el precio de una computadora se incrementaría
mucho más.
El control alámbrico o inalámbrico de la consola, tiene la capacidad de recibir
seis señales análogas simultáneas, lo que brinda seis canales activos para la
adquisición de señales. También cuenta con dos salidas análogas con las que
controla la vibración de dos motores; así también quedan a disposición del
usuario, más 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
Ghz.
Ghz.
Memoria Ram
512MB
2 GB.
Procesador de video
Xenos 500 Mhz
Intel
USB
3 Puertos 2.0
6 puertos 2.0
Mando(Control)
N/A
Conexiones
inalámbricas
Tabla 2. Comparación Xbox360 con equipo de cómputo comercial.
4.1.2 Señales y filtrado
Las señales son variables físicas observables y medibles, para la adquisición de
las señales eléctricas se debe realizar una transducción en primera instancia,
que es la transformación y envío de la señal. El procesamiento de la señal,
busca obtener información útil a partir de la misma, sin perder información, pero
dándole un formato que facilite su comprensión, o adecuando su manejo
electrónico.
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 razón 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 supresión.
16
4.1.2.1 Filtros.
Los filtros, en el tratamiento de señales, sirven para rechazar o permitir una
frecuencia o una gama de frecuencias o amplitudes, con el fin de recibir solo la
información necesaria para el tratamiento de un problema específico,
comúnmente se eliminan frecuencias donde se produce ruido no deseado.
La función de transferencia es la manera en la que se comporta el filtro, se
puede determinar, cuando se pasa una señal a través del filtro, observando el
comportamiento de su amplitud y frecuencia.
Figura 12: Función 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 señal impulso y a la salida dan un
número finito de valores no nulos, son estables y normalmente presentan
simetría en sus coeficientes. Los filtros IIR nunca regresan al estado de reposo
una vez introducida la señal, 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.
También 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 función rectangular y en el dominio del tiempo su función respuesta es
determinada por la inversa de la Transformada de Fourier.
Ecuación: Transformada Inversa de Fourier (Filtro Sinc).
4.1.3 Circuito de acoplamiento.
El control del Xbox, cuenta con 6 potenciómetros que regulan el voltaje de la
señal de entrada, por lo que para este proyecto se desmontará un
potenciómetro, para introducir la señal 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 señal 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 señal, VS+ es la alimentación de la fuente positiva, VS- la
alimentación negativa, y Vout la salida de la señal amplificada.
El propósito de las pruebas realizadas con estos circuitos, es la obtención de
una señal con una amplitud más perceptible y la reducción del ruido. Los
amplificadores utilizados son un ina122 (amplificador de instrumentación) y un
amplificador lm358 (amplificador operacional).
Figura 14: OPAMP LM358 Figura 15: Amplificador de Instrumentación
INA122
Los electrodos utilizados, son de cloruro de plata (AgCl) compuesto que produce
una reacción eléctrica al hacer contacto con la superficie de la piel, de manera
más específica, con el potasio (K). Dependiendo la colocación del electrodo, se
puede obtener una señal 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 instrumentación.
Puede formarse de la conexión de 3 amplificadores operacionales. Está
diseñado para tener una alta impedancia de entrada y un alto rechazo al modo
común (CMRR). También existen encapsulados listos para configurar su
ganancia por la resistencia RG. Su utilidad principal es la reducción del ruido y
amplificación de la señal.
Funciona restando sus dos entradas y multiplicándolas por el valor de la
ganancia.
Figura 17: Amplificador de Instrumentación.
En la figura 17 se muestra la formación de un amplificador de instrumentación
por medio de tres amplificadores operacionales, donde V1 y V2 son las entradas
de la señal, y Vout la salida de la señal amplificada, RG determina la ganancia
del circuito de acuerdo a su relación con R1, R2 y R3.
Las señales bioeléctricas se caracterizan por un bajo nivel de amplitud. Para
garantizar su adecuado funcionamiento de acuerdo con normas internacionales,
el amplificador de instrumentación debe reunir las siguientes características:
20
Alta Relación de Rechazo en modo común
Alta impedancia de entrada
Respuesta en frecuencia
Bajo Voltaje Offset
Bajas corrientes de polarización de entrada
Circuito de protección contra sobre voltajes
El fabricante lo recomienda para aplicaciones biomédicas
21
CAPÍTULO 5. PRUEBAS Y RESULTADOS
Se realizaron pruebas en distintos lenguajes de programación, para después
revisar los resultados con la finalidad de comprobar el correcto funcionamiento
del sistema, y conocer la fiabilidad de la información procesada por el Xbox 360.
5.1 Pruebas.
La etapa de pruebas se divide fundamentalmente en dos áreas; pruebas de
software y las pruebas físicas.
Las primeras pruebas de programación fueron sobre XNA, ya que resultaba una
plataforma desconocida, y las posibilidades de desarrollo eran inciertas. Para
LabView, se obtuvo un programa de la página oficial donde se explicaba el
manejo del control, e incluía algunos controles gráficos, útiles para la revisión del
correcto funcionamiento del mando. Todo el código desarrollado se comprobó en
MatLab.
5.1.1 Pruebas XNA.
En XNA el primer programa se desarrollo para leer los valores del botón análogo
con la propiedad de GamePad.GetState(PlayerIndex.One).Thumbstick, se movió
la posición de un texto en pantalla incrementando los valores de la señal de
acuerdo a la fuerza con que fuera presionado el botón.
Se almacenaron datos en vectores y en disco duro, se prosiguió insertando
imágenes en fondos de pantalla por medio de rectángulos, para luego generar
22
un menú de acceso. Posteriormente se analizaron las librerías de dibujado de
puntos y líneas, para poder graficar los valores obtenidos en un vector. Por
último se ideo la forma de generar el filtro matemático, se diseño un algoritmo
para realizar la convolución del filtro y una señal de valores dados. En el
apéndice se pueden revisar los programas generados.
5.1.2 Pruebas LabView.
En LabView, se programaron funciones de adquisición de los datos del control,
cuenta con librerías 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 fácilmente reconocido en este programa.
Se pudo comprobar que: una de las limitantes principales en la frecuencia en
XNA, es característica de las funciones para tomar lecturas del control en el y
no una limitante física del control, para ello se conectó el control y se realizó la
misma adquisición que en el Xbox (1 Hz. 1 Vpp.), observando que la tabla de
valores generada por LabView tenía una mejor resolución.
Figura 18: LabView, diseño de interfaz del control.
23
5.1.3 Pruebas MatLab.
Matlab fue aplicado en la programación de algoritmos matemáticos para el
diseño y aplicación de filtros a la señal, 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 físicas del control.
Las primeras pruebas del control, se realizaron revisando los voltajes que
circulaban en los potenciómetros, para luego poder introducir los valores
normales de trabajo desde un circuito de acoplamiento.
Figura 19: Voltaje total
Figura 21: 0 Volts eje a la izquierda
Figura 20: Voltaje en estado neutral
Figura 22: 3.29 Volts eje a la derecha
Para conocer el voltaje en el potenciómetro, se toman lecturas del valor de
voltaje del punto de tierra al máximo permitido como entrada análoga.
24
Figura 23: Colocación de conector
Figura 24: Conector montado en el
control
Se procedió a colocar un conector dentro del control para administrar fácilmente
las conexiones.
Figura 25: Circuito de Acoplamiento
Por último se conectó el control al circuito de acoplamiento para revisar las
señales obtenidas por los sensores.
5.3 Resultados.
La información obtenida en las pruebas, se utilizó para obtener las funciones a
las que accedería el programa principal; se programó con éxito el algoritmo de la
convolución, el filtro sinc, y la adquisición 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 través de XNA, y se obtuvieron los siguientes
resultados: (tabla 3 y Figura 26)
Tabla 3: Valores obtenidos con filtro sinc
Figura 26: Graficación del filtro sinc en XNA, MatLab y LabView.
Figura 27: Respuesta a la frecuencia filtro sinc MatLab.
26
CAPÍTULO 6. Conclusiones y recomendaciones
Aún siendo Microsoft XNA (XNA's Not Acronymed, XNA no es un acrónimo) una
herramienta con poco más de dos años en el mercado, es un conjunto de
herramientas y librerías para Microsoft Visual C#, que permite a los
desarrolladores de videojuegos, una programación más sencilla para la
generación de estos programas de entretenimiento; sin embargo, esto no
delimita su uso, aunque en el Xbox 360 el conjunto de librerías 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 documentación de MSDN Library.
Al momento de conectar el Xbox 360 en la red de la Universidad, había
problemas para realizar la conexión a Xbox Live, por lo tanto también para
programar. Para dar solución 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 más
que una limitante, ya que a diferencia de la computadora, el Xbox solo mantiene
abiertos los puertos necesarios, además se requiere una autentificación dentro
de Xbox Live, lo que brinda una mayor seguridad contra la piratería 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 solución 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ó averías en las pistas por el exceso de calor, por lo que se recomienda
utilizar un cautín con regulador de temperatura.
Se obtuvieron resultados favorables al desarrollar un filtro pasabajas, conocido
como sinc, para el procesamiento de la señal. La aplicación tuvo sus limitantes
de adquisición, 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 núcleos del procesador y las pipelines de la GPU, se
recomienda una previa noción de graficación. La investigación se continuó para
el fitrado de señales por Wavelet, sin embargo, su implementación queda
contemplada en trabajos a futuro, así como la comparación de velocidades de
muestreo, de otros dispositivos periféricos que soporta actualmente el Xbox 360.
En trabajos a futuro, se considera documentar y compartir las librerías de los
filtros en internet, así como utilizar XNA 4.0 ya que cuenta con librerías para el
uso de micrófonos, 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] Hernández S M, Ramírez R C., “Adquisición y presentación de señales
biomédicas utilizando objetos de sincronización 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/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 electrónica. México. 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 electrónica. México. Editorial Pearson,
2000.420p.
[12] COUGHLIN, Robert F. Amplificadores operacionales y circuitos integrados
lineales. México. Editorial Prentice Hall Hispanoamericana, 1993. 538p.
[13] DORF, Richard C. Circuitos eléctricos: introducción al análisis y diseño.
México.
Editorial Alfaomega, 2000. 998p.
[14] HERNÁNDEZ SAMPIERI, Roberto. Metodología de la investigación. México.
Editorial McGraw-Hill, 2003. 705p.
[15] HOUSSAY, Bernardo A. Fisiología humana. Buenos Aires. Editorial El
Ateneo, 1971. 1318p.
[16] JOHNSON, David E. Análisis básico de circuitos eléctricos. México. 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 Avendaño M. Sc. Fundamentos de Instrumentación.
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
31
Apéndices.
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;
%Una señal a^2
end
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 convolución
for i=indice0:1:orden %Ciclo exterior, del indice cero al tamano del orden
for j=indice0:1:i
%Ciclo interior, del indice cero al tamano del indice del
%ciclo exterior
vector3(i)=vector3(i)+senal(j)*fsinc(i-j+1); %El vector resultante es igual
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];
//Arreglo temporal
//senal x^2
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;
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
Descargar