reconocedor biométrico bimodal utilizando señales ppg y

129
Reconocedor biométrico bimodal utilizando señales PPG y ECG en el dominio temporal implementado con un sistema embebido en FPGA. por Ing. José Alfredo Jiménez Duarte Tesis sometida como requerimiento parcial para obtener el grado de Maestría en Ciencias en la especialidad de Electrónica En el: Instituto Nacional de Astrofísica, Óptica y Electrónica Agosto, 2019 Tonantzintla, Puebla Asesor: Dr. Juan Manuel Ramírez Cortés Co-Asesor: Dr. Álvaro Hernández Alonso c INAOE 2019 Todos los derechos reservados El autor(a) otorga al INAOE permiso para la reproducción y distribución del presente documento

Upload: khangminh22

Post on 06-May-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

Reconocedor biométrico bimodal utilizando

señales PPG y ECG en el dominio temporal

implementado con un sistema embebido en

FPGA.

por

Ing. José Alfredo Jiménez Duarte

Tesis sometida como requerimiento parcial para obtener el grado de

Maestría en Ciencias en la especialidad de Electrónica

En el:

Instituto Nacional de Astrofísica, Óptica y Electrónica

Agosto, 2019

Tonantzintla, Puebla

Asesor:

Dr. Juan Manuel Ramírez Cortés

Co-Asesor:

Dr. Álvaro Hernández Alonso

c©INAOE 2019

Todos los derechos reservados

El autor(a) otorga al INAOE permiso para la reproducción y distribución del

presente documento

Todos somos el resultado

de lo que nuestros seres cercanos nos enseñan,

somos el resultado de nuestro entorno.

Esta tesis la dedico a todos ellos,

quienes me han guiado para tomar mi lugar,

en el ciclo de la vida.

Índice general

Índice de figuras vii

Índice de tablas xi

Agradecimientos xiii

Resumen xv

1. Introducción 1

2. Objetivos 5

2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Marco teórico 7

3.1. Reconocimiento biométrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1. Identificación y verificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1.2. Propiedades del reconocimiento biométrico . . . . . . . . . . . . . . . . . . . 8

3.1.3. Modalidades biométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1.4. Proceso de reconocimiento biométrico . . . . . . . . . . . . . . . . . . . . . . 11

3.2. Biometría multimodal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

III

3.2.1. Niveles de fusión multimodal . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.2. Tipos de sistemas multimodales . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3. Biometría bimodal con señales PPG y ECG . . . . . . . . . . . . . . . . . . . . . . . 16

3.3.1. Captura de señales PPG y ECG . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.2. Métodos de extracción de características seleccionados con base en prueba

ANOVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.3. Clasificación por DTW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.4. Sistema embebido con FPGA (SoC Zynq-7000) . . . . . . . . . . . . . . . . . . . . . 27

3.4.1. Lógica programable PL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4.2. Integrador de IP en Vivado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.3. Interfaces de propósito general e IP para la extensión del PS en el PL . . . . 32

3.4.4. Bus AXI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4.5. Sistema de procesamiento PS . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.4.6. Kit de desarrollo de software de Xilinx (XSDK) . . . . . . . . . . . . . . . . 37

4. Desarrollo Experimental 39

4.1. Adquisición de señales fotopletismográficas (PPG) y electrocardiográficas (ECG) . . 40

4.1.1. Sensor fotopletismográfico (PPG) . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.1.2. Sensor electrocardiográfico (ECG) . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1.3. Acondicionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2. Conversión analógica digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2.1. Protocolo de comunicación del convertidor analógico digital Pmod AD1 . . . 47

4.2.2. Parámetros de diseño en hardware para el control del convertidor analógico

digital Pmod AD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.3. Lógica programable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3.1. Propiedad intelectual (IP por sus siglas en inglés Intellectual Property) . . . . 52

IV

4.3.2. Arquitectura del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

4.4. Sistema de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.4.1. Extracción de datos almacenados . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.4.2. Algoritmos para extracción de características . . . . . . . . . . . . . . . . . . 63

4.4.3. Algoritmo de generación para la base de datos (target) . . . . . . . . . . . . . 71

4.4.4. Algoritmo de clasificación por DTW . . . . . . . . . . . . . . . . . . . . . . . 72

5. Resultados 75

5.1. Elementos que integran la implementación . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2. Simulación de propiedad intelectual (IP) . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.3. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4. Tiempo de procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5. Pruebas estadísticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.5.1. Matriz de confusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.5.2. Curva ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6. Conclusiones y trabajo futuro 95

A. Enlazar la descripción del hardware en VHDL con el bus AXI 97

B. Empaquetar la propiedad intelectual (IP) e integrarla a la lista de IPs 99

C. Generar un nuevo proyecto en Vivado y diagrama de bloques del hardware 101

D. Generar un constrain 103

E. Generar un proyecto en SDK 104

F. Programar hardware y software en FPGA con SDK 105

V

G. Interpretación de medidas obtenidas por matriz de confusión en la evaluación

del sistema y ecuaciones para su obtención 106

H. Interpretación de medidas obtenidas por gráfico ROC en la evaluación del sis-

tema y ecuaciones para su obtención 108

Bibliografía 110

VI

Índice de figuras

3.1. Modalidades biométricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2. Proceso de reconocimiento biométrico. . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3. Fusión a nivel sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4. Fusión a nivel de extracción de características. . . . . . . . . . . . . . . . . . . . . . 14

3.5. Fusión a nivel de comparacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.6. Fusión a nivel de decisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.7. Sistema biométrico bimodal, fusionando señales ECG y PPG a nivel de extracción

de características. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.8. Las diferentes ondas del electrocardiograma. . . . . . . . . . . . . . . . . . . . . . . . 18

3.9. Las diferentes ondas del pletismograma. . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.10. Proceso utilizado en la selección de métodos de extracción de características, esta-

dísticamente significativos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.11. Arquitectura del SoC Zynq-7000 AP [1]. . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.12. Bloques de comunicación etre PS y PL [1]. . . . . . . . . . . . . . . . . . . . . . . . . 30

3.13. Diagrama a bloque de IP Zynq [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.14. Bus AMBA para microcontroladores [1]. . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.15. Arquitectura de canales en bus AXI4-Lite [1]. . . . . . . . . . . . . . . . . . . . . . . 34

3.16. Diagrama a bloques del sistema de procesamiento PS [1]. . . . . . . . . . . . . . . . 35

3.17. Diagrama a bloques los periféricos del PS [1]. . . . . . . . . . . . . . . . . . . . . . . 36

VII

4.1. Diagrama a bloques del reconocedor biométrico bimodal, utilizando señales PPG y

ECG en el dominio temporal, implementado con un sistema embebido en FPGA. . . 39

4.2. Proceso de adquisición y acondicionamiento de las señales PPG y ECG. . . . . . . . 41

4.3. Sensor pletismográfico Spo2 g tec R©. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.4. Sensor de ritmo cardiaco AD8232 de Sparkfun R© y puntos anatómicos para la colo-

cación de electrodos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.5. Acondicionamiento de señal fotopletismográfica de pulso (PPG), diseñado en Labview R©. 45

4.6. Acondicionamiento de señal electrocardiográfica (ECG), diseñado en Labview R©. . . 45

4.7. Descripción de pines para el Pmod AD1. . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.8. Protocolo de comunicación del convertidor analógico digital Digilent R© Pmod AD1. . 47

4.9. Diagrama de flujo para conversión analógica digital muestreando a 125 Hz. . . . . . 49

4.10. Diagrama de flujo para contador encargado de generar el periodo de muestreo. . . . 50

4.11. Diagrama de bloques de la lógica programable (PL) . . . . . . . . . . . . . . . . . . 51

4.12. Diagrama de bloques para el funcionamiento de memoria RAM. . . . . . . . . . . . . 53

4.13. Diagrama de bloques para el funcionamiento de la máquina de estados finitos (FSM). 54

4.14. Interconexión de las descripciones (hardware) con el bus AXI. . . . . . . . . . . . . . 56

4.15. Descripcción de hardware empaquetado como propiedad intelectual (IP). . . . . . . . 56

4.16. Diagrama de bloques con la configuracion general del Hardware en Vivado. . . . . . 57

4.17. Diagrama de bloques del sistema de procesamiento (PS). . . . . . . . . . . . . . . . . 59

4.18. Diagrama de bloques del proceso de extracción de datos del PL al PS. . . . . . . . . 62

4.19. Diagrama de bloques del algoritmo para la obtención de movilidad de la suma de

señales PPG y ECG (parámetro Hjorth). . . . . . . . . . . . . . . . . . . . . . . . . 64

4.20. Diagrama de bloques del algoritmo para la obtención de movilidad de la señal ECG

(parámetro Hjorth). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.21. Diagrama de bloques del algoritmo para la obtención de curtosis de la señal ECG. . 67

VIII

4.22. Diagrama de bloques del algoritmo para la obtención de movilidad de la señal PPG

(parámetro Hjorth). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.23. Diagrama de bloques del algoritmo para la obtención de curtosis de la suma de

señales PPG y ECG (parámetro Hjorth). . . . . . . . . . . . . . . . . . . . . . . . . 70

4.24. Diagrama de flujo del algoritmo para la obtención de la base de datos (target). . . . 72

4.25. Diagrama de flujo del algoritmo de clasificación por DTW. . . . . . . . . . . . . . . . 73

4.26. Diagrama de flujo del algoritmo DTW. . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.1. Resultados obtenidos a partir del desarrollo experimental y pruebas del sistema. . . 75

5.2. Elementos físicos del sistema biométrico bimodal. . . . . . . . . . . . . . . . . . . . . 76

5.3. Simulación del tiempo de conversión analogica digital. . . . . . . . . . . . . . . . . . 77

5.4. Simulación de la frecuencia de muestreo para la adquisición. . . . . . . . . . . . . . . 77

5.5. Simulación del tiempo de grabación en memorias RAM. . . . . . . . . . . . . . . . . 77

5.6. Señales PPG y ECG capturadas a 8.184s. . . . . . . . . . . . . . . . . . . . . . . . . 78

5.7. Menú principal del sistema biométrico bimodal. . . . . . . . . . . . . . . . . . . . . . 78

5.8. Configuración de la opción 1 del menú principal. . . . . . . . . . . . . . . . . . . . . 79

5.9. Proceso de adquisición del target (modo usuario). . . . . . . . . . . . . . . . . . . . . 80

5.10. Proceso de reconocimiento (modo usuario). . . . . . . . . . . . . . . . . . . . . . . . 81

5.11. Pruebas estadísticas de manera general. . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.12. Matriz de confusión realizada en 20 pruebas con 50 sujetos. . . . . . . . . . . . . . . 84

5.13. Gráfica comparativa de medidas (análisis e implementación). . . . . . . . . . . . . . 85

5.14. Matriz de confusión realizada en 20 pruebas con 15 sujetos. . . . . . . . . . . . . . . 86

5.15. Gráfica comparativa de medidas (base de datos [2] y base de datos propia). . . . . . 87

5.16. Gráfico ROC (análisis e implementación). . . . . . . . . . . . . . . . . . . . . . . . . 89

5.17. Tasas de falsos positivos y falsos negativos (análisis e implementación). . . . . . . . . 89

5.18. Tasas de igual error (EER) en curvas ROC (análisis e implementación). . . . . . . . 90

IX

5.19. Tasas de igual error (análisis e implementación). . . . . . . . . . . . . . . . . . . . . 91

5.20. Gráfico ROC (base de datos [2] y base de datos propia). . . . . . . . . . . . . . . . . 92

5.21. Tasas de falsos positivos y falsos negativos (base de datos [2] y base de datos propia). 92

5.22. Tasas de igual error (EER) en curvas ROC (base de datos [2] y base de datos propia). 93

5.23. Tasas de igual error (base de datos [2] y base de datos propia). . . . . . . . . . . . . 94

X

Índice de tablas

1.1. Sistemas de identificación evaluados para la biometría de señales PPG y ECG en el

estado del arte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1. Métodos de extracción de características estadísticamente significativas obtenidas

por ANOVA y multicomparación Tukey. . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2. Características del SoC ZynqR c©-7000. . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3. Características generales del sistema de procesamiento (PS) y la Lógica programable

(PL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4. Componentes de los bloques de interconexión entre PS y PL. . . . . . . . . . . . . . 31

3.5. Tabla de periféricos y sus IPs incluidos en Vivado. . . . . . . . . . . . . . . . . . . . 32

3.6. Principales componentes de la región PS del SoC Zynq-7000. . . . . . . . . . . . . . 35

3.7. Periféricos gestionados por el sistema de procesamiento PS. . . . . . . . . . . . . . . 36

4.1. Datos técnicos del sensor g.SpO2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2. Datos técnicos del sensor de ritmo cardiaco AD8232 de Sparkfun R© . . . . . . . . . . 43

4.3. Especificaciones requeridas para acondicionamiento de señal fotopletismográfica de

pulso (PPG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.4. Características del convertidor analógico digital Digilent R© Pmod AD1 . . . . . . . . 46

4.5. Configuración del contador direccionador y memoria RAM. . . . . . . . . . . . . . . 55

4.6. Tabla de conexiones entre IP_ADC_RAM (Entradas/Salidas) y puerto GPIO de la

FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

XI

4.7. Tabla de direcciones para la IP_ADC_RAM. . . . . . . . . . . . . . . . . . . . . . . 58

4.8. Tabla de vinculación entre registros y entradas/salidas de IP_ADC_RAM. . . . . . 61

4.9. Métodos de extracción de características estadísticamente significativas obtenidas

por ANOVA y multicomparación Tukey. . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.1. Elementos físicos del sistema biométrico bimodal. . . . . . . . . . . . . . . . . . . . . 76

5.2. Tiempos y ciclos de reloj obtenidos por cada proceso del sistema biométrico bimodal. 82

5.3. Tabla comparativa de medidas basada en matriz de confusión (análisis e implemen-

tación). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.4. Tabla comparativa de medidas basada en matriz de confusión (base de datos [2] y

base de datos propia). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.5. Tabla comparativa de medidas basada en gráfico ROC (análisis e implementación). . 90

5.6. Tabla comparativa de medidas basada en gráfico ROC (base de datos [2] y base de

datos propia). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

XII

Agradecimientos

Al Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE) por permitirme pertenecer

a esta gran institución rica en conocimientos y cultura. A todo su personal por su gran calidad

humana y sus excelentes valores.

Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por su apoyo y financiamiento en mis

actividades vinculadas al desarrollo de la investigación científica y tecnológica durante mi grado de

maestría.

A la Universidad de Alcalá de Henares (UAH) por haber sido mi recinto durante mi estancia de tres

meses. A su personal por compartir su cultura conmigo, brindándome tanto amistad como conoci-

miento y a su país España por permitirme la entrada en su territorio, otorgándome la oportunidad

para conocer su historia y modo de vida.

Un especial agradecimiento al Doctor Juan Manuel Ramírez Cortés asesor de esta tesis, por com-

partir sus conocimientos conmigo, apoyándome en el desarrollo de mi posgrado en los cursos im-

partidos, en el desarrollo de este trabajo y como un gran ser humano que es, convirtiéndose en mi

mentor y un gran ejemplo a seguir.

Al Doctor Álvaro Hernández Alonso co-asesor de esta tesis, por brindarme a mí y a mis compañeros

la oportunidad de tener una estancia en su país, apoyándonos pacientemente en el aprendizaje de

lo que hoy es parte de mi tema de tesis, por su colaboración en este trabajo y su gran hospitalidad

en la UAH, en su país y en su hogar.

Al Doctor José De Jesús Rangel Magdaleno por su gran apoyo durante mi maestría, siendo un

gran mentor y amigo, le agradezco los conocimientos brindados que hoy son base fundamental de

este trabajo, la oportunidad para trabajar con el equipo que tiene a su cargo y el placer de haber

convivido con él, sus alumnos y su familia.

A mis sinodales: la Doctora María Del Pilar Gómez Gil, el Doctor Israel Cruz Vega y el Doctor

XIII

José De Jesús Rangel Magdaleno, por pertenecer al jurado de evaluación en mi tema de fin de

maestría, siendo así un placer contar con sus comentarios y recomendaciones.

A mis padres José Alfredo Jiménez Pérez y Mónica Duarte Alba por ser quienes me han formado

desde mi nacimiento, me han visto crecer, son ustedes la razón principal de lo que yo soy, les

agradezco los valores que me han enseñado y nuevamente este logro es todo suyo, son mi ejemplo

a seguir, los amo.

A mi hermana Abril Maroí Jiménez Duarte, por ese apoyo incondicional que me ha dado desde

siempre, por esas alegrías que complementan mi vida, por ser parte de esta nueva etapa que

incursioné desde que salí de la casa para alcanzar un nuevo sueño, por ser una gran hermana,

un gran ejemplo y una gran amiga, cumple todos tus sueños nunca te rindas, te amo.

A mis abuelos José Duarte Rodríguez, Luvia Alba Chávez, María Elena Jiménez Martínez y Julio

Jiménez Corona, por ser hoy y siempre los pilares de mi familia, por seguir enseñándome cada día

algo nuevo, por ser mi ejemplo a seguir y mis primeros maestros, los amo mucho.

A mis tíos y tías, primos y primas, sobrinos y sobrinas, por inspirarme a seguir siendo mejor

persona, por los valores que me han enseñado, principalmente la unión.

A mi familia no de sangre, pero sí de corazón: Juan Erasmo Mancilla Cardoso, Leticia Palestina

Ayala, Leticia Mancilla Palestina, Iván Mancilla Palestina y Lia Maylet Candia Mancilla, que desde

ya hace mucho tiempo me han brindado mucho amor, amistad, confianza, y una gran familia, les

agradezco más que nada el amar tanto a Denisse.

A mis amigos y compañeros por permitirme conocerlos aprendiendo de cada uno de ellos, siendo

mi familia aquí y en tierras lejanas.

El mayor de mis agradecimientos es para el amor de mi vida la Ingeniera y próximamente Maestra

en Ciencias Denisse Escarlette Mancilla Palestina, porque toda esta etapa en mi vida se la debo

a ella y a su amor, su coraje, su decisión, su conocimiento, su compañía, su apoyo, todas sus

virtudes, ella más que nadie ha sido la razón por la que he puesto todo mi empeño en este trabajo

y en la vida. Es mi pasado, mi presente y mi futuro, le agradezco el romper fronteras a mi lado y

juntos llegar a lugares nunca imaginados, le agradezco no solo ser parte de mi maestría, también

ser parte de mi vida, la parte más importante. Estoy muy orgulloso de ti, sigamos caminando por

la vía agarrados de la mano y en un futuro, marcando más de cuatro huellas en la arena, TE

ETERNUMESCALFMORE.

XIV

Resumen

Múltiples sistemas de identificación basados en la biometría unimodal se han vuelto vulne-

rables a la falsificación, tal es el caso de los sistemas basados en la biometría por huella dactilar o el

reconocimiento por voz, aunque algunas características físicas son difíciles de imitar y/o duplicar,

esto no es imposible. El presente escrito describe el diseño e implementación de un sistema, cuyo

objetivo es el reconocimiento de personas por clasificación biométrica bimodal, utilizando señales

fotopletismográfica (PPG) y electrocardiográfica (ECG) en el dominio temporal, con un sistema

embebido en FPGA.

El sistema adquiere las señales PPG y ECG de una persona (previamente registrada) con un tiempo

de grabación de 8.184 s gestionado por la lógica programable (PL) del Sistem-On-Chip (SoC) en

la FPGA, procesando dichas señales por el sistema de procesamiento (PS) del SoC en un tiempo

de 1.491 ms con una fusión a nivel de extracción de características, en el cual son extraídas las

características: movilidad de la suma de señales PPG y ECG (parámetro Hjorth), movilidad de ECG

(parámetro Hjorth), curtosis ECG, movilidad de PPG (parámetro Hjorth) y curtosis de la suma

de señales PPG y ECG. Es realizada la clasificación por el algoritmo de alineamiento Temporal

Dinámico (DTW). El control del sistema en modo usuario, así como el resultado de la clasificación

son desplegados en una PC.

El sistema se evaluó realizando pruebas con 50 señales PPG y ECG provenientes de la base de datos

[2] y con 15 señales PPG y ECG provenientes de una base de datos propia para su identificación.

Obteniendo un 99.5% de exactitud, 86.84% de precisión, 90.26% de sensibilidad, 99.68% de espe-

cificidad y una tasa de igual error (EER) de 6.75%, evaluando el sistema con la base de datos [2].

Y un 99.61% de exactitud, 97.44% de precisión, 97.33% de sensibilidad, 99.78% de especificidad

y una tasa de igual error (EER) de 5.83%, evaluando el sistema con la base de datos propia.

XV

Palabras clave

Biometría bimodal, Identificación, Fotopletismográfica (PPG), Electrocardiográfica (ECG),

Dominio temporal, Sistema embebido, FPGA.

XVI

Capítulo 1

Introducción

Como respuesta a la creciente demanda de seguridad existente en la actualidad. Se han desa-

rrollado diferentes sistemas de identificación, implementando modalidades dentro de la biometría,

las cuales se definen como características que permiten el reconocimiento, como son el reconocimien-

to de la huella dactilar, forma del rostro, de iris, retina, geometría de dedos y manos, verificación

de la voz, reconocimiento de la firma, etc. Esta investigación se enfoca en el reconocimiento de

personas utilizando señales fotopletismográficas (PPG) y electrocardiográficas (ECG). En el esta-

do del arte existen diferentes sistemas biométricos que utilizan como modalidades señales PPG o

ECG para la identificación de personas, en la tabla 1.1 se muestran algunos trabajos y sus valores

de exactitud y/o tasa de igual error (EER) resultado de la evaluación de sus sistemas donde:

An Adaptive Deep Learning Approach for PPG-Based Identification [3]. Presenta una técnica

de identificación biométrica a través de aprendizaje profundo, monitoreando señales PPG a

largo plazo atreves de biosensores portátiles logrando una precisión del 96.1%.

Acceleration Plethysmogram Based Biometric Identification [4]. presenta el estudio basado en

el biométrico pletismograma de aceleración (APG) como mecanismo de reconocimiento, este

se obtiene de la segunda derivada de la señal fotopletismográfica de pulso (PPG). Fueron

adquiridas señales APG de 10 sujetos, las características discriminantes se extraen de la

morfología APG.

Microcontroller Based RR-Interval Measurement Using PPG Signals for Heart Rate Varia-

bility based Biometric Application [5]. Este estudio está destinado a aprovechar la propiedad

HRV del corazón para identificación de persona a través del sensor de pulso basado en señales

1

fotopletismográficas de pulso (PPG) y la medición del intervalo RR. La clasificación se realiza

mediante el clasificador k vecinos más cercanos (KNN).

Deep Learning based Biometric Identification using Wrist-Worn PPG [6]. En este artículo

se presenta un sistema basado en el aprendizaje profundo para la identificación biométrica,

utilizando datos recopilados de señales fotopletismográficas (PPG) en ambientes ambulatorios

utilizando una red neuronal profunda de cuatro capas: empleando dos redes neuronales de

convolución (CNN) junto con dos memorias largas a corto plazo(LSTM), seguido de una

capa de salida densa para modelar la secuencia temporal inherente dentro de la señal pulsátil

representante de la actividad cardíaca. Se evaluó en el conjunto de datos TROIKA recopilado

de 12 sujetos involucrados en actividad física, logrando una exactitud del 96%.

A Multiresolution Convolutional Neural Network for ECG-Based Biometric Human Identifi-

cation in Smart Health Applications [7]. Propone una red neuronal convolucional, permitiendo

seleccionar ciegamente una señal fisiológica con fines de identificación, evitando el proceso de

extracción de características fiduciales de la señal. Utiliza una red neuronal convolucional 1-D

multirresolución (1-D-CNN) para un aprendizaje automático, logrando una tasa de identifi-

cación promedio del 93.5%.

ECG based authentication for E-Healthcare Systems: Towards a Secured ECG features trans-

mission [8]. El algoritmo presentado es una nueva técnica que permite compartir de forma

segura la identificación de ECG a través de un canal no confiable. La técnica oculta los datos

confidenciales de ECG basados en la codificación de predicción lineal (LPC).

Towards a Continuous Biometric System Based on ECG Signals Acquired on the Steering

Wheel [9]. En este artículo se utilizaron métodos de decisión basados en máquinas de soporte

vectorial (SVM), k vecinos más cercano (kNN), perceptrones multicapa (MLP) y modelos

de mezcla gaussiana tanto para tareas de identificación como de autenticación. También se

estudiaron técnicas adicionales de autenticación ajustada por el usuario y ponderación de

puntajes pasados. El rendimiento del método es de 94,9% de precisión y tasa de error de

autenticación igual a 2.66% (EER).

ECG Biometric Recognition Using SVM-Based Approach [10]. 21 características basadas en

distancias temporales, así como de amplitud entre puntos fiduciales detectados y 10 des-

criptores morfológicos son extraído de cada latido del corazón. Una máquina de vectores de

soporte (SVM) se usa como clasificador. El algoritmo se evaluó utilizando dos bases de datos

(MIT-BIH arritmia y MIT-BIH Ritmo sinusal normal). El análisis de los resultados muestra

2

que la combinación de todas las características permitió mejorar la eficiencia de su sistema

con respecto a sujetos humanos sanos y aquellos con arritmia.

Embedded system for individual recognition based on ECG Biometrics [11]. Este artículo pre-

senta un sistema de reconocimiento biométrico embebido basado en la señal electrocardiográ-

fica (ECG) para la identificación individual y la verificación. El sistema propuesto implementa

un algoritmo de reconocimiento que extrae información en el dominio de la frecuencia. El sis-

tema se basa en el procesador ARM Cortex 4. Los resultados preliminares muestran que las

plataformas embebidas son un camino prometedor para la implementación de las aplicaciones

basadas en señales ECG en un escenario del mundo real.

Tabla 1.1: Sistemas de identificación evaluados para la biometría de señales PPG y ECG en el estado del

arte.Señales Trabajo Número de Individuos Número de características Clasificador EER Exactitud

PPG [3] 11 11 Lógica difuza ————— 96.10 %

PPG [4] 10 ————— K vecinos más cercanos (KNN) ————— 62.50 %

PPG [5] 40 20 K vecinos más cercanos (KNN) ————— 92.26 %

PPG [6] 12 11 Aprendizaje profundo ————— 96.00 %

ECG [7] 28 ————— Red neuronal convolucional ————— 93.50 %

ECG [8] 90 5000 ————— 15.00 % —————

ECG [9] ————— 163 Máquina de soporte vectorial (SVM) 2.66 % 94.90 %

ECG [10] 30 31 Máquina de soporte vectorial (SVM) ————— 98.80 %

ECG [11] 10 ————— Función de suma de pendiente 14.00 % 100.00 %

El objetivo de este trabajo es la implementación de un método de reconocimiento de personas por

clasificación biométrica bimodal, utilizando señales fotopletismográfica (PPG) y electrocardiográ-

fica (ECG) en el dominio temporal, con un sistema embebido en FPGA. El sistema es integrado

por: el sensor Spo2 g tec R©, el sensor de ritmo cardiaco AD8232 de Sparkfun R© para la adquisición

de las señales PPG y ECG respectivamente, un convertidor analógico digital Digilent R© Pmod AD1

de 12 bits, una tarjeta de adquisición de datos National Instruments R©, una FPGA Zed board y

una PC donde son desplegados los resultados obtenidos por el sistema. Las señales fotopletismo-

gráficas (PPG) y electrocardiográficas (ECG) son adquiridas y almacenadas a una frecuencia de

muestreo de 125 Hz, con un tiempo de grabación de 8.184 segundos para su procesamiento. El

tiempo de procesamiento (que engloba la extracción de características y la etapa de identificación)

es de 1.491 ms. El sistema es operado en modo usuario a través de una interfaz organizada en forma

de menú, donde se puede seleccionar las opciones programadas con instrucciones sintetizadas para

guiarlo durante la operación. Se realizaron pruebas con 50 señales PPG y ECG provenientes de la

3

base de datos [2] y con 15 señales PPG y ECG provenientes de una base de datos propia para su

identificación. Obteniendo un 99.5% de exactitud, 86.84% de precisión, 90.26% de sensibilidad,

99.68% de especificidad y una tasa de igual error (EER) de 6.75%, evaluando el sistema con la

base de datos [2]. Y un 99.61% de exactitud, 97.44% de precisión, 97.33% de sensibilidad, 99.78%

de especificidad y una tasa de igual error (EER) de 5.83%, evaluando el sistema con la base de

datos propia.

Este documento se divide en 6 capítulos, el capítulo 1 corresponde a la sección done se expone el

planteamiento del problema, el estado del arte y los alcances de la investigación, en el capítulo 2 se

muestran los objetivos de la implementación, en el capítulo 3 se encuentra la teoría utilizada para la

implementación del sistema, en el capítulo 4 se describe el desarrollo experimental donde se expresa

cuál fue el procedimiento que se siguió para la implementación del sistema, en los capítulos 5 y 6

se encuentran los resultados, conclusiones y trabajo futuro, finalmente en la sección de bibliografía

se enlistan las referencias del escrito.

4

Capítulo 2

Objetivos

2.1. Objetivo general

El objetivo principal de este trabajo es, la implementación de un método de reconocimiento

de personas por clasificación biométrica bimodal, utilizando señales fotopletismográfica (PPG) y

electrocardiográfica (ECG) en el dominio temporal, con un sistema embebido en FPGA.

2.2. Objetivos específicos

Diseñar e implementar en FPGA una propiedad intelectual (IP) capaz de controlar el conver-

tidor analógico digital PMOD AD1, adquiriendo señales fotopletismográficas de pulso (PPG)

y electrocardiográficas (ECG) a una frecuencia de muestreo de 125 Hz, almacenándolas con

un tiempo de grabación de aproximadamente 8s.

Implementar los algoritmos para las técnicas de extracción de características estadísticamente

significativas del trabajo [12].

Implementar el algoritmo de alineamiento temporal dinámico (DTW) como clasificador del

sistema biométrico bimodal en modo de identificación.

Diseñar en forma de menú una interfaz de control del sistema en modo usuario.

Medir tiempo de los procesos de: adquisición, algoritmos para la extracción de características,

algoritmo de identificación por DTW y el tiempo total.

5

Evaluar el sistema biométrico bimodal y comparar resultados entre análisis [12] e implemen-

tación.

6

Capítulo 3

Marco teórico

3.1. Reconocimiento biométrico

La biometría es la ciencia que estudia el reconocimiento de seres vivos por medio de sus carac-

terísticas físicas o de comportamiento. El reconocimiento biométrico permite realizar la verificación

o la identificación de un ser vivo mediante sistemas automáticos [13]. En términos etimológicos las

palabras, “bios” y “metrón”, literalmente significan “vida” y “medida” ó “medida de la vida” [14].

De manera general, el reconocimiento se realiza comparando muestras características (obtenidas de

los parámetros biológicos) con muestras adquiridas y almacenadas previamente del mismo individuo

u otros. Existen dos maneras para realizar reconocimiento:

Identificación. Cuando la comparación se realiza de un individuo a varios [13].

Verificación. Cuando la comparación se realiza de un individuo a sí mismo [13].

La biometría es aplicada principalmente en humanos, como respuesta a la creciente demanda de

seguridad existente en la actualidad. Existen diferentes modalidades dentro de la biometría, las

cuales se definen como características que permiten el reconocimiento como son:

Reconocimiento de la huella dactilar

Reconocimiento de la cara

Reconocimiento de iris/retina

7

Geometría de dedos/mano

Autentificación de la voz

Reconocimiento de la firma

Un sistema biométrico en general consta de componentes tanto hardware como software necesarios

para el proceso de reconocimiento. Dentro del hardware se incluyen principalmente los sensores que

son los dispositivos encargados de extraer la característica deseada. Una vez obtenida la información

del sensor, será necesario realizar sobre ella las tareas de acondicionamiento necesarias, para ello

se emplean diferentes métodos dependiendo del sistema biométrico utilizado [15].

3.1.1. Identificación y verificación

Las dos principales variedades del reconocimiento biométrico son la identificación y la ve-

rificación de personas. La identificación es utilizada para reconocer la identidad de una persona,

comparando una serie de características biométricas con aquellas del mismo usuario y otros más

almacenadas previamente conocidas como características objetivo ó traducido al inglés “target”.

Este proceso consiste en proponer criterios de aceptación en la comparación de características, ya

que las muestras o modelos comparados pueden o no tener márgenes de error aceptables, bajo

estas premisas la identificación puede corresponder a un usuario reconocido o no identificado. Para

la verificación, se determina si las características biométricas corresponden con quien el usuario

dice ser. Para ello, se comparan dichas características con el modelo del usuario. Si la similitud

no supera un margen de error, se considera que el usuario es quien dice ser. En caso contrario, se

considera que es un impostor [13].

3.1.2. Propiedades del reconocimiento biométrico

Existe una gran variedad de medios disponibles para identificar a una persona, en función

de una asociación de datos correspondientes a cada una de ellas como son:

Apariencia. Cómo se ven las personas.

Comportamiento social. Cómo interactúan unas personas con otras.

Nombres. Cómo una persona es llamada por otras.

Códigos. Cómo se nombra a una persona dentro de una organización.

8

Conocimiento. El saber de las personas.

Objetos. Las posesiones de las personas.

Biodinámica. Las acciones realizadas por las personas.

Fisiografía natural. La constitución física de las personas.

Características físicas impuestas. La situación particular de vida de las personas en un deter-

minado momento.

Como parámetros de referencia aplicables a la biometría se tiene la apariencia, el comportamiento

social, la biodinámica, la fisiología y las características físicas impuestas [16].

Las propiedades deseables para cualquier sistema de reconocimiento biométrico son:

Universalidad: Se dice que una característica biométrica es universal cuando se encuentra en

todos los individuos de la población.

Unicidad: La unicidad implica que las características biométricas consideradas sean diferentes

para cada uno de los individuos y diferenciables de las de cualquier otro individuo, de manera

que cada individuo sea distinguible del resto a partir de dichas características.

Permanencia: La permanencia hace referencia a la estacionalidad de las características bio-

métricas. Es deseable que éstas se mantengan a lo largo del tiempo, de manera que no varíen

con la edad del individuo ni con situaciones transitorias como enfermedad, estado del humor,

utilización de accesorios, etc.

Cuantificación: Las características biométricas deben ser mensurables y cuantificables de for-

ma objetiva. De esta manera, los valores obtenidos para las diferentes características serán

comparables entre sí y permitirán discriminar entre los diferentes individuos.

Aceptación: Ciertas modalidades biométricas pueden ser poco aceptadas por los potenciales

usuarios, bien sea por ser consideradas intrusivas o bien por ser relacionadas con aplicaciones

criminales y forenses o de alta seguridad.

La adecuada combinación de estas características determina la efectividad de un sistema biomé-

trico, aunque ninguna modalidad biométrica cumple con ninguna de estas características de forma

absoluta [16].

Otras características que deben tenerse en cuenta en el diseño de un sistema de reconocimiento

biométrico son:

9

Fiabilidad: Los resultados proporcionados por los sistemas de reconocimiento biométrico de-

ben proporcionar unos resultados de reconocimiento acordes con la seguridad requerida por

la aplicación.

Facilidad de uso: Esta característica se refiere a la facilidad en la adquisición, la medición y el

almacenamiento de los datos, así como a la facilidad y rapidez en la obtención del resultado

de reconocimiento.

Prevención de ataques: Un sistema de reconocimiento debe ser robusto a los posibles ataques

malintencionados por parte de individuos que pretendan acceder a lugares o datos a los que

no tienen derecho de acceso.

Coste: El coste depende del hardware, la instalación, la facilidad de uso, el mantenimiento,

la base de datos, etc. Es importante tener en cuenta el coste, principalmente en aplicaciones

de seguridad media [13].

3.1.3. Modalidades biométricas

Se considera modalidad biométrica a cualquier característica que permita distinguir entre

diferentes individuos. Una de las formas más comunes de clasificar las modalidades biométricas es

distinguir entre modalidades biométricas fisiológicas y conductuales [13], como se muestra en la

figura 3.1, donde:

Biometrías fisiológicas: Son aquellas relacionadas con las características físicas de los indivi-

duos, como pueden ser las características faciales, las huellas dactilares, la geometría de la

mano, la retina, la geometría de la oreja, el ADN o la altura.

Biometrías conductuales: Están relacionadas con el comportamiento o la forma en que alguna

acción se realiza. Algunas de estas modalidades biométricas pueden ser la forma de escribir

o firmar, la frecuencia de pulsación en un teclado, la gestualidad o la forma de caminar.

10

Figura 3.1: Modalidades biométricas.

Otras formas de clasificar las modalidades biométricas es distinguir entre modalidades estáticas y

dinámicas [15].

Biometría estática. La medición de las características corporales de las personas. Los princi-

pales estudios y aplicaciones de la biometría estática están basados en la medición de huellas

digitales, geometría de la mano, iris, forma de la cara, retina y venas del dorso de la mano.

Existen también, pero menos usadas, las técnicas biométricas basadas en forma de las orejas,

temperatura corporal (termografía) y forma del cuerpo.

Biometría dinámica. La medición de las características de comportamiento de las personas.

Los principales estudios y aplicaciones de la biometría dinámica están basados en el patrón

de voz, firma manuscrita, dinámica del tecleo, cadencia del paso y análisis gestual.

3.1.4. Proceso de reconocimiento biométrico

El proceso de reconocimiento de sistemas biométricos comprende desde la captación biomé-

trica hasta la decisión final. Sus principales componentes son la adquisición de la señal biométrica,

la extracción de parámetros o características, la clasificación de dichos parámetros y la evaluación

de los resultados obtenidos [17].

Las diferentes características biométricas deben ser captadas y convertidas en señales para que

puedan ser procesadas por los sistemas de reconocimiento. Para ello es necesaria la utilización de

11

sensores que conviertan propiedades físicas en señales eléctricas [13].

De manera general, la arquitectura de un sistema biométrico consta de cinco secciones principales

[14] como se muestra en la figura 3.2, donde:

Sección de captura. Consiste en capturar los datos provenientes de las propiedades físicas

biométricas para extraer una representación numérica de manera digital. Esta representación

se utiliza también para el registro de un modelo característico del usuario y es aplicado en la

verificación o identificación.

Sección de procesamiento de señal. Permite la reducción de los datos numéricos extraídos,

optimiza la cantidad de datos a almacenar durante el registro, disminuye tiempo de procesa-

miento durante las fases de verificación e identificación.

Sección de almacenamiento. Se utiliza para almacenar el modelo biométrico de cada individuo.

Sección de coincidencia. Se utiliza para comparar los datos biométricos extraídos con uno o

más modelos biométricos previamente almacenados. Por lo tanto, esta sección determina el

grado de similitud (o divergencia) entre dos vectores biométricos.

Sección de decisión: se utiliza para determinar si el grado de similitud devuelto es suficiente

para determinar la identidad de un individuo.

Figura 3.2: Proceso de reconocimiento biométrico.

12

3.2. Biometría multimodal

Múltiples técnicas biométricas se han vuelto vulnerables a la falsificación, un ejemplo de esto

es el sistema de identificación basado en datos digitales de huella dactilar, poniendo en riesgo la

integridad jurídica y financiera de un individuo. Aunque algunas características físicas son difíciles

de imitar y/o duplicar, esto no es imposible. Por lo tanto, diferentes investigaciones han propuesto

la fusión o combinación de múltiples señales fisiológicas, con el objetivo de proporcionar robustez

al sistema [18].

Los sistemas biométricos multimodales combinan diversas modalidades en un sistema de reco-

nocimiento único. La fusión multimodal permite mejorar los resultados obtenidos por una sola

característica biométrica y hacen el sistema más robusto a ruidos e interferencias y más resistente

a posibles ataques. La fusión se puede realizar a nivel de las señales adquiridas por los distintos

sensores, de los parámetros obtenidos para cada modalidad, de las puntuaciones proporcionadas

por sistemas unimodales o de la decisión tomada por dichos sistemas [19].

3.2.1. Niveles de fusión multimodal

Los sistemas multimodales combinan propiedades de diferentes sistemas biométricos unimo-

dales y adquieren un resultado global de reconocimiento. Para esto es necesario realizar un proceso

de fusión con diferentes características, con la intención de interpretar la información multimodal

en una decisión sobre la identidad de una persona.

Existen cuatro niveles de fusión a partir de diferentes características unimodales [20]:

A nivel de sensor. En este modelo de fusión los datos obtenidos por los diferentes sensores

están fusionados como se muestra en la figura 3.3. Se pueden utilizar muestras de la misma

característica biométrica obtenidas por múltiples sensores compatibles o múltiples caracterís-

tica del mismo rasgo biométrico usando un solo sensor. En él, los datos se fusionan en una

etapa muy temprana, por lo que tiene una gran cantidad de información en comparación con

otros niveles de fusión.

13

Figura 3.3: Fusión a nivel sensor.

A nivel de extracción de características. Los modelos o conjunto de características que se

originan de varios sensores se fusionan como se muestra en la figura 3.4. Estos vectores de

características son entonces concatenados para formar un nuevo vector único. La fusión a

nivel de extracción de características es un reto, dado que la relación entre características es

comúnmente incompatible en su dimensionalidad. Debido a estas dificultades, comúnmente

las investigaciones se enfocan en la fusión a nivel de característica bimodales.

Figura 3.4: Fusión a nivel de extracción de características.

A nivel de comparación. Cada sistema proporciona una puntuación de coincidencia obtenida

por el módulo de comparación, el cual indica la proximidad del vector característico con el

vector modelo como se observa en la figura 3.5. Para este nivel de fusión, los puntajes se

pueden combinar para afirmar la veracidad del veredicto. Si las puntuaciones que obtuvieron

los diferentes módulos no son idénticas, la técnica de decisión se basa en la diferencia entre

puntuaciones de coincidencias.

14

Figura 3.5: Fusión a nivel de comparacion.

A nivel de decisión. Las salidas finales de los clasificadores se combinan, como se muestra en

la figura 3.6. El esquema de voto mayoritario se puede utilizar para la toma de decisión final.

La fusión a nivel de decisión incluye un nivel muy abstracto de información, por lo que son

menos preferidos en el diseño de sistemas biométricos bimodales.

Figura 3.6: Fusión a nivel de decisión.

15

3.2.2. Tipos de sistemas multimodales

Dependiendo de los rasgos, sensores y conjuntos de características, existen diferentes tipos

sistemas multimodales [20], como son:

Rasgo biométrico único (sensores múltiples). Múltiples sensores son utilizados para registrar

la misma característica biométrica. Los datos obtenidos por los diferentes sensores pueden

ser combinados a nivel de extracción de característica o a nivel de comparación.

Biometría múltiple. Diferentes sensores son usados para múltiples rasgos biométricos que

puedan ser combinados como ejemplo, huellas dactilares y forma de la cara.

Unidades múltiples (rasgos biométricos únicos). Un ejemplo de este tipo de biometría se

aplica cuando, dos o más dedos del mismo usuario pueden usarse como rasgo biométrico. Es

una forma económica de implementar un sistema multimodal, ya que no requiere sensores

múltiples o incorporar métodos de extracción de características adicionales.

Múltiples muestras (rasgos biométricos únicos). Se utiliza más de una muestra de la misma

característica biométrica para el proceso de reconocimiento. Por ejemplo, múltiples muestras

del mismo dedo o múltiples muestras de voz

Múltiples algoritmos. Se utilizan diferentes métodos para la extracción de características y

coincidencia en los rasgos biométricos.

3.3. Biometría bimodal con señales PPG y ECG

La fusión o combinación de múltiples señales fisiológicas es implementada con el objetivo

de proporcionar robustez al sistema, los sistemas biométricos multimodales combinan diversas

modalidades en un sistema de reconocimiento único. Comúnmente las investigaciones se enfocan

en los sistemas biométricos bimodales fusionando a nivel de extracción de característica dado que,

la relación entre características en sistemas que combinan más de dos modalidades biométricas es

comúnmente incompatible en su dimensionalidad. [19].

Este trabajo se enfoca en el desarrollo de un sistema biométrico bimodal combinando modalidades

biométricas fisiológicas (señal electrocardiográfica (ECG) y señal pletismográfica (PPG)) e imple-

mentando un sistema de fusión a nivel de extracción de características como se muestra en la figura

3.7.

16

Figura 3.7: Sistema biométrico bimodal, fusionando señales ECG y PPG a nivel de extracción de caracte-

rísticas.

3.3.1. Captura de señales PPG y ECG

Como se mencionó, la sección de captura en el proceso de reconocimiento biométrico, con-

siste en capturar los datos provenientes de las propiedades físicas biométricas, para extraer de

manera digital una representación numérica de dichas propiedades. Las propiedades o modalidades

biométricas fisiológicas de interés para este trabajo, son las señales electrocardiográficas (ECG)

y pletismográficas (PPG), obtenidas por electrodos de contacto superficial y sensor oxímetro de

pulso, respectivamente.

Señal electrocardiográfica (ECG)

El electrocardiograma registra la diferencia de potencial que se genera en el corazón, a

través de electrodos colocados en puntos preestablecidos, generalmente en la superficie corporal.

El electrocardiograma es un reflejo de las diferencias de potencial transmembrana que ocurren en

las células miocárdicas durante los fenómenos de despolarización y repolarización. El potencial

eléctrico registrado en las derivaciones electrocardiográficas representa la sumatoria de las fuerzas

eléctricas instantáneas que ocurren en forma secuencial durante los procesos de despolarización y

17

repolarización [21].

En [22] se indica la posibilidad de trabajar con la señal ECG sin pérdida de información (ancho de

banda entre 0-1000 Hz), señalando anchos de banda de la señal ECG con fines de diagnóstico (0,01

- 250 Hz) y monitoreo (0,5 - 40 Hz).

Comúnmente en un ECG, cada complejo consta de una serie de deflexiones (ondas del ECG) que

alternan con la línea basal como se muestra en la figura 3.8. Realizando la lectura de izquierda a

derecha, se distinguen la onda P, el segmento P-R, el complejo QRS, el segmento ST y finalmente

la onda T [23], donde:

Figura 3.8: Las diferentes ondas del electrocardiograma.

Onda P. Es la primera deflexión hacia arriba que aparece en el ECG. Representa el momento

en que las aurículas se están contrayendo y enviando sangre hacia los ventrículos.

Segmento P-R. Es el tramo de la línea basal (línea isoeléctrica) que se encuentra entre el final

de la onda P y la siguiente deflexión —que puede ser hacia arriba (positiva) o hacia abajo

(negativa)— del ECG. Durante este período, las aurículas terminan de vaciarse y se produce

una relativa desaceleración en la transmisión de la corriente eléctrica a través del corazón,

justo antes del inicio de la contracción de los ventrículos.

Complejo QRS. Corresponde con el momento en que los ventrículos se contraen y expulsan

su contenido sanguíneo. Como su nombre indica, consta de las ondas Q, R y S. La onda Q no

siempre está presente. Se identifica por ser la primera deflexión negativa presente después del

segmento P-R. Toda deflexión positiva que aparezca después del segmento P-R corresponde

ya a la onda R propiamente dicha y, como se ha comentado, el hecho de que no vaya precedida

18

por una onda Q no es en absoluto patológico. De hecho, y siempre en relación con un ECG

normal, las ondas Q deben ser de pequeño tamaño, tanto en longitud (duración) como en

profundidad (voltaje). La onda R es muy variable en altura (voltaje). La onda S se observa

como continuación directa de la onda R y comienza a partir del punto en que esta última, en

su fase decreciente, se hace negativa.

Segmento ST. Es el trazado de la línea basal que se encuentra entre el final de la onda S

y el comienzo de la onda T. Su elevación o descenso en relación con la línea basal puede

significar insuficiencia en el riego del corazón, especialmente si dichas oscilaciones coinciden

con sintomatología característica que pueda expresar afectación en el aporte de oxígeno al

corazón. En este sentido, su valor como herramienta diagnóstica resulta insustituible.

Onda T. Se inscribe a continuación del segmento ST. Consiste en una deflexión normalmente

positiva que asemeja el relieve de una montaña más o menos simétrica. La onda T representa

el momento en que el corazón se encuentra en un período de relajación, una vez que ha

expulsado la sangre que se hallaba en los ventrículos.

La señal ECG es adquirida a partir de electrodos que funcionan como transductores de señales

electroquímicas a corrientes eléctricas, comúnmente se emplean electrodos superficiales para el

monitoreo y diagnóstico de señales ECG, también existen electrodos invasivos, los cuales tienen

contacto directo con la superficie del corazón y su propósito es el mismo, servir como transductor

entre las señales electroquímicas generadas en el corazón y transformarlas en corrientes eléctricas

para su captura y análisis en los sistemas biométricos.

Señal pletismográfica (PPG)

La señal de PPG es el resultado de las variaciones que se producen en el flujo o en el volumen

sanguíneo que ocurre con cada contracción cardíaca, tiene componentes en frecuencia entre 1 y 2

Hz [24]. Se puede detectar con esta señal, actividades como, la frecuencia cardíaca, la respiración,

saturación de oxígeno, la viscosidad de la sangre, la presión arterial o incluso cambios de la postura

del usuario. El ciclo completo de la señal de PPG puede verse en la figura 3.9. A continuación, se

describen los principales parámetros de esta señal [25]:

19

Figura 3.9: Las diferentes ondas del pletismograma.

Pico sistólico. Es el nivel máximo de volumen que se detecta en el área sometida a medición

correspondiente a la fase sistólica del corazón, donde se eyecta la sangre.

Pico diastólico. Después del pico sistólico, el volumen comienza a decrecer, el pico diastólico

está relacionado con la fase diastólica del sistema cardiovascular en la que los ventrículos se

llenan de sangre. Este pico no siempre es visible al representar gráficamente la señal de PPG,

quedando oculto por la bajada desde del pico sistólico.

Incisura dicrota. Punto de inflexión entre el pico sistólico y el pico diastólico. Representa el

momento de cierre de la válvula aórtica.

La adquisición de esta señal emplea un sistema de pulso oximetría, consiste en monitorear la

absorción de luz en áreas periféricas como pueden ser, las yemas de los dedos o los lóbulos de las

orejas. Estos cambios volumétricos se producen debidos a los latidos del corazón, irrigando todas

las zonas de nuestro cuerpo [25].

El sistema está compuesto típicamente por dos diodos LED, uno de longitud de frecuencia corres-

pondiente al color rojo y otro correspondiente al infrarrojo, que emiten luz pulsátil intermitente e

intercaladamente. En el otro extremo del sensor hay un fotodetector que adquiere aquella luz que

no ha sido absorbida. De este modo, se puede componer una señal en DC y AC de la que puede

extraerse información como el pulso cardíaco, la saturación de oxígeno en la hemoglobina y otros

parámetros como la frecuencia en la respiración [25].

20

3.3.2. Métodos de extracción de características seleccionados con base en prueba

ANOVA

La sección que corresponde a “procesamiento de señales” en el proceso de reconocimiento

biométrico, permite la reducción de los datos numéricos extraídos por los sensores de pulso oximetría

y los electrodos de contacto superficial, utilizados para la obtención de las señales PPG y ECG

respectivamente.

Los métodos de extracción de características consisten en extraer información asociada a los pará-

metros biológicos de interés y pueden ser usados en el proceso de clasificación de datos.

La selección de técnicas no redundantes para los métodos de extracción de características, es uno

de los objetivos para el análisis de señales en una dimensión. Un procedimiento estadístico para

evaluar el grado de asociación o independencia entre valores cuantitativos, se conoce como Análisis

de la Varianza (ANOVA) y se ha implementado como discriminador estadístico en la selección de

técnicas, para la extracción de características en señales PPG y ECG [12][26].

Prueba ANOVA como discriminador estadístico en la selección de técnicas, para la extracción de

características en señales PPG y ECG

El análisis de varianza ANOVA por sus siglas en inglés (Analysis of Variance), se utiliza

para determinar si existen diferencias estadísticamente significativas entre las medias de tres o más

grupos conocidos como factor en estudio y los distintos tratamientos en los grupos se conocen como

niveles del factor. ANOVA es aplicado para aceptar o rechazar las siguientes hipótesis [27]:

Hipótesis alternativa. "Hay una diferencia significativa entre los niveles del factor".

Hipótesis nula. "No hay una diferencia significativa entre niveles del factor ".

Luego de realizar el ANOVA, si se acepta la hipótesis alternativa, se puede determinar entre qué ni-

veles del factor existen diferencias estadísticamente significativas mediante pruebas de comparación

múltiple [27][26].

En el trabajo desarrollado por [12], se detalla la metodología utilizada para la selección de métodos

de extracción características estadísticamente significativas en señales PPG y ECG, los cuales fueron

implementados para el desarrollo de este trabajo.

Existen múltiples métodos de extracción de características descritos en la literatura. La selección

21

de métodos no redundantes, es uno de los objetivos para el análisis de señales en una dimensión

[26]. En el trabajo [12], fueron seleccionados 18 métodos para la extracción de características de

señales PPG y ECG:

1. Varianza de la diferencia de instantes de cruce por la media de la señal PPG.

2. Varianza de la diferencia de instantes de cruce por la media de la señal ECG.

3. Actividad de PPG (parámetro Hjorth).

4. Movilidad de PPG (parámetro Hjorth).

5. Complejidad de PPG (parámetro Hjorth).

6. Actividad de ECG (parámetro Hjorth).

7. Movilidad de ECG (parámetro Hjorth).

8. Complejidad de ECG (parámetro Hjorth).

9. Asimetría PPG.

10. Curtosis PPG.

11. Asimetría ECG.

12. Curtosis ECG.

13. Varianza de la diferencia de instantes de cruce por la media de la suma de señales PPG y

ECG.

14. Actividad de la suma de señales PPG y ECG (parámetro Hjorth).

15. Movilidad de la suma de señales PPG y ECG (parámetro Hjorth).

16. Complejidad de la suma de señales PPG y ECG (parámetro Hjorth).

17. Asimetría de la suma de señales PPG y ECG.

18. Curtosis de la suma de señales PPG y ECG.

22

El proceso utilizado por [12] en la selección de métodos estadísticamente significativos se ilustra en

la figura 3.10. Donde:

Figura 3.10: Proceso utilizado en la selección de métodos de extracción de características, estadísticamente

significativos.

Niveles del factor. Corresponde a los 18 métodos de extracción de características seleccionados.

Factores de estudio. En [12], se utilizó la base de datos [2], donde se obtuvieron grabaciones

de señales ECG y PPG de 50 sujetos, cada una de 8 minutos de duración muestreadas a 125

Hz.

ANOVA. Se aplicó la prueba ANOVA a los 50 factores de estudio (sujetos), cada uno con 18

niveles del factor(métodos de extracción de características). Se propuso un nivel de signifi-

cancia (alpha) de 0.05 y se obtuvo un P-valor igual a cero, menor al nivel de significancia.

Esto indica que, se tiene un 95% de confianza al aceptar la hipótesis alterna, donde “Hay una

diferencia significativa entre los niveles del factor” [27]. Por lo tanto, se concluyó que existen

métodos de extracción de características no redundantes, que podrían otorgar información

para el reconocimiento de cada sujeto en la base de datos.

Multicomparación. En [12], se aplicó la técnica de multicomparación Tukey [28] donde se

obtuvieron los P- valores de cada combinación por pares de métodos de extracción de ca-

racterísticas. De igual manera, se propuso un nivel de significancia (alpha) de 0.05, lo cual

indica que se tiene un 95% de confianza al aceptar la hipótesis de que, existe una diferencia

23

estadísticamente significativa en los métodos de extracción de características con un P-valor

menor a alpha.

Niveles del factor no redundantes. Después de ANOVA y el análisis de multicomparación

Tukey en [12] se obtuvo como resultado los métodos de extracción de características mostrados

en la tabla 3.1, los cuales demostraron tener diferencias estadísticamente significativas.

Tabla 3.1: Métodos de extracción de características estadísticamente significativas obtenidas por ANOVA y

multicomparación Tukey.

# Método Nombre

15 Movilidad de la suma de señales PPG y ECG (parámetro Hjorth)

7 Movilidad de ECG (parámetro Hjorth).

12 Curtosis ECG.

4 Movilidad de PPG (parámetro Hjorth).

18 Curtosis de la suma de señales PPG y ECG.

Métodos de extracción de características obtenidas por ANOVA (Movilidad y Curtosis)

Con base en los resultados obtenidos por [12], este trabajo se enfoca en los métodos de

extracción de características: movilidad de la suma de señales PPG y ECG, movilidad de ECG,

curtosis ECG, movilidad de PPG y curtosis de la suma de señales PPG y ECG. De manera general

las técnicas de interés son la movilidad (parámetro Hjorth) y la curtosis donde:

Movilidad. Este método de extracción de características pertenece a uno de los descriptores de

Hjorth (métricas de propiedades estadísticas de señales en el dominio temporal, sus resultados

también pueden interpretarse en el dominio de la frecuencia) [29]. Movilidad representa la

frecuencia media de la señal, para obtenerla se divide la desviación estándar de la primera

derivada de la señal entre la desviación estándar de la señal original como se muestra en (3.1).

El incremento en la frecuencia de la señal da como resultado una movilidad creciente [30].

Movilidad =

√√√√var(

dy(n)dt

)var (y(n))

(3.1)

24

Donde:

var.- Varianza.

y.- Señal original.

n.- Muestra.

Curtosis. Informa sobre el grado de homogeneidad de la distribución de datos de la señal.

Representa el grado de apuntamiento que tiene dicha distribución de datos. Mediante la

curtosis se puede saber la proporción de la varianza explicada por la combinación de valores

atípicos respecto a la media en contraposición con datos en posiciones más centrales [29].

Para el cálculo de la curtosis se utiliza (3.2).

Curtosis =1

N

∑(xi − x̄)4

σ4(3.2)

Donde:

xi.- Datos de la señal.

x̄.- Media de la señal.

σ.- Desviación estándar.

3.3.3. Clasificación por DTW

El algoritmo de alineamiento temporal dinámico (DTW por sus siglas en inglés Dynamic

Time Warping) compara dos vectores que pueden tener distinta longitud. El propósito del algoritmo

es modificar de forma no lineal la dimensión temporal de ambos vectores, y mapearlos en un único

conjunto de índices, de tal forma que la distancia calculada componente a componente sea mínima.

Así, las zonas donde el vector de referencia coincida con el vector de prueba se ubiquen y queden

“alineados” [31].

En el trabajo realizado por [12] es utilizado el algoritmo DTW como método de clasificación en

su sistema biométrico. En este trabajo se implementó dicho algoritmo como medida de distancia

entre datos a clasificar, con la intensión de comparar la evaluación del sistema con los resultados

obtenidos por [12]. En [32] se menciona que la elección de una medida de distancia depende de

las características de los datos a clasificar y que el alineamiento temporal dinámico (DTW) según

los experimentos realizados en el documento y todos los experimentos justos reproducibles en

la literatura, que no existe gran cantidad de evidencia de alguna medida de distancia que sea

sistemáticamente mejor que DTW.

25

Algoritmo

A continuación, se describe el algoritmo para obtener el valor de DTW de 2 vectores uno de

referencia almacenado en la base de datos del sistema biométrico y otro de prueba [33].

Sea X un vector de longitud N e Y un vector de longitud M, ver (3.3) (3.4).

X (n) = {x1, x2, x3, ..., xN , } (3.3)

Y (m) = {y1, y2, y3, ..., yM , } (3.4)

Con (3.5), es construida la matriz de “distancias locales” d(n,m) el resultado se observa en (3.6).

d (n,m) = |x (n)− y (m)| ; 1 ≤ n ≤ N, 1 ≤ m ≤M (3.5)

Y (m)...

Y (2)

Y (1)

d (1,m) d (2,m) · · · d (n,m)

...... · · ·

...

d (1, 2) d (2, 2) · · · d (n, 2)

d (1, 1) d (2, 1) · · · d (n, 1)

[X (1) X (2) · · · X (n)

](3.6)

A partir de la matriz de distancias locales se aplica la función de recursión mostrada en (3.7).

D (x, y) = d (x, y) +min [D (x− 1, y) , D (x− 1, y − 1) , D (x, y − 1)] (3.7)

Finalmente se obtiene el valor de DTW (x,y) con (3.8).

DTW (x, y) =D (N,M)

L(3.8)

Donde:

D(N,M) .- Función de recursión evaluada en (N,M)

L . – Longitud del camino optimo desde D(0,0) a D(N,M)

La sección de decisión es la última etapa en el proceso de reconocimiento biométrico, el valor DTW

es el índice que indica al sistema biométrico el grado de similitud entre el vector de prueba y los

26

vectores almacenados en la base de datos, donde se toma como un individuo identificado aquel que

obtenga el mínimo valor de DTW, lo cual indica la mínima diferencia entre vectores.

3.4. Sistema embebido con FPGA (SoC Zynq-7000)

Un sistema embebido SoC por sus siglas en inglés (System-on-Chip) se trata de un sistema

de computación diseñado para realizar una o algunas funciones para cubrir necesidades específicas.

Al contrario de lo que ocurre con las computadoras de propósito general (como una computadora

personal o PC), diseñados para cubrir un amplio rango de necesidades. En un sistema embebido

la mayoría de los componentes se encuentran incluidos en la placa base (la tarjeta de vídeo, audio,

módem, etc.). Es un sistema que incluye entradas, salidas, y una unidad de cálculo con propósito

especifico. Un sistema embebido tiene como características generales [34]:

Fiabilidad. Deben ser capaces de funcionar de manera ininterrumpida en modo desatendido.

Personalización. Deben posibilitar la modificación del sistema de acuerdo a las necesidades

del proceso.

La familia Zynq R©-7000 SoC integra la capacidad de programación de software con un procesador

basado en ARM R© y la capacidad de programación de hardware de una FPGA, esto permite

implementar un sistema embebido basado en la tecnología del SoC Zynq-7000 cuyas características

se muestran en la tabla 3.2 [1]:

27

Tabla 3.2: Características del SoC ZynqR c©-7000.

Caracteristicas Complementos

Procesador y periféricos

Procesadores Dual RMR c© Cortex

TM-A9.

Interconexión AXI.

Componentes periféricos AXI.

Reset, clocking, depurar puertos.

Plataforma de software para sistema de procesamiento

Sistemas operativos (por ejemplo, Li-

nux, FreeRTOS).

Soporte de lenguaje C.

Servicios de procesador.

C drivers para hardware.

Aplicación de usuario.

C drivers para hardware.

Aplicación de usuario.

La arquitectura del “system on chip” Zynq-7000 AP está compuesta por dos grandes secciones

conocidas como “sistema de procesamiento” PS (por sus siglas del inglés processing system) y la

“lógica programable” PL (por sus siglas del inglés progammable logic), las cuales se muestran en la

figura 3.11.

28

Figura 3.11: Arquitectura del SoC Zynq-7000 AP [1].

Las características generales del sistema de procesamiento y de la logica programable se muestran

en la tabla 3.3 [1]:

Tabla 3.3: Características generales del sistema de procesamiento (PS) y la Lógica programable (PL).

PS: Sistema de procesamiento PL: Lógica programable

Procesadores Dual ARM R© Cortex TM -A9. ArtixTM en dispositivos: Z-7010, Z-7015 and Z-7020 (so-

lamente en bancos de entradas y salidas de alto rango).

Múltiples periféricos.

KintexTM en dispositivos: Z-7030, Z-7035, Z-7045, and

Z-7100 (combinado en bancos de entradas y salidas de

alto rango y alto rendimiento).

Núcleo de silicio sólido. ——————————

3.4.1. Lógica programable PL

La sección PL en el SoC Zynq-7000 consiste en un conjunto de bloques lógicos configurables

(LBs) unidos entre sí por una matriz de conexiones programables, multiplexores y bloques de

29

entradas y salidas (I/O). La matriz de interconexión programable, permite modificar la unión de

los LBs y así realizar las funciones deseadas. Los bloques de entradas y salidas (I/O), son la interfaz

que permite la comunicación con el exterior de la FPGA y así realizan el intercambio de información

con elementos externos en modo de escritura y lectura [35]. La comunicación entre el sistema de

procesamiento y la lógica programable se muestra en la figura 3.12.

Figura 3.12: Bloques de comunicación etre PS y PL [1].

30

Como es mostrado en la tabla 3.4, la interconexión del PS y el PL se realiza mediante tres

bloques [1].

Tabla 3.4: Componentes de los bloques de interconexión entre PS y PL.

Bloque de interconexión Componentes

Procesamiento del Sistema maestro

Dos puertos que comunican desde el PS al PL.

Una conexión del bloque de la CPU a los pe-

riféricos comunes a través de la interconexión

central.

Procesamiento del Sistema esclavo Dos puertos que comunican desde el PL al PS.

Rango de direcciones periféricas en PL modo esclavo

Rango de direcciones periféricas en PL modo

esclavo.

4000_0000 y 7FFF_FFFF (conectados a GP0)

8000_0000 y BFFF_FFFF (conectados a GP1)

3.4.2. Integrador de IP en Vivado

Vivado es el conjunto de herramientas para el diseño de FPGA de Xilinx e incluye la capa-

cidad para el diseño de sistemas embebidos. Su integrador de IP (propiedad intelectual) permite el

diseño a nivel de sistema en la parte de hardware de un sistema embebido. Vivado incluye todas las

herramientas, IP y documentación que se requieren para el diseño de sistemas con el SoC Zynq-7000

AP y / o el procesador MicroBlaze Xilinx[1].

El catálogo de IP contiene una colección de IP que se puede usar para ensamblar el sistema

embebido, esto facilita la construcción rápida del sistema, cada bloque de IP tiene sus propios

parámetros de configuración, la mayoría de los IP son gratuitos, algunos requieren licencias, se

encuentran almacenados como código fuente en el directorio de instalación. Los periféricos en el PS

están siempre presentes y se pueden habilitar o deshabilitar dinámicamente a través del asistente

de configuración del PS[1], los periféricos IP incluidos de forma gratuita en vivado se muestran en

la tabla 3.5.

31

Tabla 3.5: Tabla de periféricos y sus IPs incluidos en Vivado.

Periféricos IP incluidos en Vivado

Controladores de bus y bridge

Conector AXI a AXI.

Bus de memoria local (LMB).

AXI Chip a Chip.

AHB-Lite a AXI.

AXI4-Lite a APB.

AXI4 a AHB-Lite.

Núcleos de depuración Analizador lógico integrado.

DMA y temporizadores Perro guardián, intervalo fijo.

Comunicación entre procesadores

Controlador periférico externo, Memoria y controlador de memoria

Periféricos de comunicación

Controlador MAC AXI 10/100 Ethernet.

Ethernet de modo triple de núcleo sólido.

AXI IIC.

AXI SPI.

AXI UART.

Otros núcleos

Monitor del sistema.

Convertidor de analógico-digital Xilinx (XADC).

Generador de reloj, módulo de reinicio del sistema.

Controlador de interrupción.

Generador de tráfico, monitor de rendimiento.

3.4.3. Interfaces de propósito general e IP para la extensión del PS en el PL

Para añadir IP en el procesador lógico PL es necesario configurar desde la opción de vi-

vado “PS-PL configuration” los puertos GP de personalización del PS. por ejemplo, habilitar

M_AXI_GP0 / 1 o S_AXI_GP0 / 1. Los puertos estarán disponibles en el diagrama de blo-

ques de Zynq como se muestra en la figura 3.13 y se conecta la IP agregada al puerto apropiado, se

32

asigna una dirección a la IP agregada o se agrega si no lo está, si es necesario se puede configurar

la IP y hacer conexiones externas, es posible agregar puertos e interfaces externas si la IP agregada

está interactuando con dispositivos externos.

Figura 3.13: Diagrama a bloque de IP Zynq [1].

3.4.4. Bus AXI

El estándar de interfaz extensible avanzado (AXI por sus siglas del inglés Advanced Ex-

tensible Interface), se trata de un protocolo perteneciente a la especificación AMBA (Advance

Microcontroller Bus Arquitecture) de tercera y cuarta generación de ARM [35].

Concretamente, como se muestra en la figura 3.14, el SoC Zynq-7000 emplea el AXI4, que hace

referencia a la especificación AMBA4 (curta versión) desarrollada en 2010. Este protocolo se emplea

como medio de comunicación entre los bloques IP, se encarga de comunicar la lógica programable

(PL) y el sistema de procesamiento (PS) del SoC.

Figura 3.14: Bus AMBA para microcontroladores [1].

Para el desarrollo de este proyecto se emplea el AXI4-Lite, que es una variante reducida de la espe-

cificación AXI4-Full solo permite una transferencia de datos por transacción (no soporta ráfagas).

Como se muestra en la figura 3.15, la interfaz AXI4-Lite consta de cinco canales diferentes [1].

33

Figura 3.15: Arquitectura de canales en bus AXI4-Lite [1].

Cada canal presente en una interfaz AXI4 se gestiona mediante un protocolo de establecimiento

de comunicación (handshake). Para establecer automáticamente una negociación entre pares, que

establece de forma dinámica los parámetros de un canal de comunicación entre ellos antes de que

comience la comunicación normal por el canal. Es decir, emisor y receptor se comunican entre sí

para realizar las operaciones de escritura y lectura [35].

3.4.5. Sistema de procesamiento PS

La sección del sistema de procesamiento PS mostrado en el diagrama a bloques de la figura

3.16 es la zona del SoC donde se localiza el microprocesador de doble núcleo ARM Cortex, encargado

de ejecutar desde aplicaciones de usuario hasta programas como un sistema operativo, así como el

control de diferentes periféricos de entrada y salida [1]. Los principales componentes de la región

PS del SoC son enlistados en la tabla 3.6.

34

Figura 3.16: Diagrama a bloques del sistema de procesamiento PS [1].

Tabla 3.6: Principales componentes de la región PS del SoC Zynq-7000.

Componentes de la región PS

Unidad de procesamiento de aplicaciones (APU).

Periféricos de entrada y salida (IOP).

Interfases de memoria.

Memoria de acceso directo (DMA).

Temporizadores.

Control de interrupción general.

Memorias ROM y RAM.

Controlador de depuración: CoreSight.

Una de las características del sistema de procesamiento PS es gestionar los diferentes periféricos

en el SoC mostrados en la tabla 3.7, los cuales pueden observarse en el diagrama de bloques de la

figura 3.17 [1].

35

Tabla 3.7: Periféricos gestionados por el sistema de procesamiento PS.

Periféricos del sistema de procesamiento PS Detalles

Dos USB 2.0 OTG / Dispositivo / anfitrión

Dos Tri-modo GigE (10/100/1000)

Dos interfaces SD / SDIO Tarjetas de memoria, entrada y salida.

Dos CAN 2.0Bs, SPIs, I2Cs, UARTs

Cuatro bloques GPIO de 32 bits Cuatro bloques GPIO de 32 bits

Entrada / salida multiplexada (MIO) Multiplexado de periféricos y memorias estáticas.

MIO extendido Periféricos mapeados del PS al PL.

Figura 3.17: Diagrama a bloques los periféricos del PS [1].

Como se muestra en la figura 3.16, la memoria de la lógica programable en el sistema de proce-

samiento PS cuenta con dos puertos que van al DDR y un puerto al OCM SRAM. En el PS la

interconexión central activa otras interconexiones de comunicación, los periféricos maestros USB,

GigE, SDIO conecta al DDR y PL a través de la interconexión central, los periféricos esclavos son:

CPU, DMA, y PL acceden a los periféricos IOP [1].

36

3.4.6. Kit de desarrollo de software de Xilinx (XSDK)

En la arquitectura del SoC Zynq-7000, la parte que corresponde al sistema de procesamiento

(PS) es la encargada de la ejecución de software como: aplicaciones de usuario, control de periféricos,

etc. Para el diseño de software ejecutado por el PS, es utilizado en este trabajo el kit de desarrollo

de software de Xilinx (XSDK). Es el entorno de diseño integrado para crear aplicaciones en los

microprocesadores de Xilinx: Zynq R© UltraScale + MPSoC , Zynq-7000 SoCs y el microprocesador

MicroBlaze TM . Es un entorno de diseño de software basado en Eclipse 4.5.0 y CDT 8.8.0 (a

partir de la versión 2016.3). Permite la integración de componentes de hardware y software. Se

enlaza con Vivado a partir del entorno de diseño integrado (IDE) con: compiladores, herramientas

de compilación, administración de memoria flash e integración de depuración JTAG, conjunto

completo de bibliotecas y controladores de dispositivos [1].

Proyectos de aplicaciones SDK

Los proyectos de aplicaciones en software son los archivos que contienen las líneas de co-

mandos que el programador diseñe para sus aplicaciones. El directorio del proyecto que se crea

contiene los archivos de origen de C / C ++ (lenguaje de programación utilizado en SDK), el

archivo de salida ejecutable y los archivos de utilidad asociados, como los utilizados para generar

el proyecto. Cada proyecto de SDK produce un archivo ejecutable llamado “projectname” donde

se puede configurar los ajustes de compilación, configuraciones de construcción, ejecutar y depurar

configuraciones [1].

Cada proyecto debe vincularse con la placa FPGA a utilizar por medio del “board support package”

que proporciona servicios de software basados en el procesador y los periféricos que conforman el

sistema. De lo contrario, la imagen de software no se vinculará. Puede tenerse cualquier número

de proyectos de aplicación. Esto permite realizar todo el desarrollo de software para un hardware

determinado dentro del mismo espacio de trabajo en SDK. Dentro de SDK pueden crearse dos

tipos de proyectos [1]:

Proyecto en lenguaje C o C ++ administrado por SDK. Un proyecto administrado por SDK

genera automáticamente los makefiles. Estos archivos son necesarios para que los proyectos

se construyan con éxito.

Proyecto en lenguaje C o C ++ estándar. Debe crearse un makefile o usar un makefile existente

para construir el proyecto.

37

Las herramientas de compilación de GNU (GCC) se llaman para compilar y vincular ejecutables

de aplicaciones para cada procesador en el sistema. El compilador para el procesador ARM es

arm-xilinx-eabi-gcc [1].

El compilador lee un conjunto de archivos de fuente y código de código C o archivos de fuente

de ensamblador para el procesador de destino. El enlazador combina las aplicaciones compiladas

con las bibliotecas seleccionadas y produce el archivo ejecutable en formato ELF. El vinculador

también lee un script de vinculador, que es el script generado por las herramientas que se han

proporcionado [1].

38

Capítulo 4

Desarrollo Experimental

Los parámetros de diseño e implementación del reconocedor biométrico bimodal, utilizando

señales PPG y ECG en el dominio temporal, implementado con un sistema embebido en FPGA,

fueron desarrollados con base en las etapas mostradas en el diagrama a bloques de la figura 4.1.

Figura 4.1: Diagrama a bloques del reconocedor biométrico bimodal, utilizando señales PPG y ECG en el

dominio temporal, implementado con un sistema embebido en FPGA.

Cada bloque pertenece a las etapas que conforman el sistema biométrico bimodal, donde:

Adquisición de señales fotopletismográficas (PPG) y electrocardiográficas (ECG). Se describe

el método de adquisición utilizado para el registro de señales, resultantes de las variaciones

que se producen en el flujo o en el volumen sanguíneo que ocurre con cada contracción car-

39

díaca (PPG) y las señales causadas por la diferencia de potencial que se genera en el corazón,

a través de electrodos colocados en puntos preestablecido (ECG). Se muestran las caracterís-

ticas de los sensores implementados y su colocación. Se describe el método utilizado para el

acondicionamiento de las señales adquiridas por los sensores, con la intensión de colocarlas en

los parámetros de amplitud recomendados por el fabricante del conversor analógico digital.

Conversión analógica digital. Se muestran las características del convertidor analógico digital

utilizado en la implementación del sistema, los requerimientos en hardware necesarios para su

funcionamiento y el protocolo de comunicación necesario para poder vincular el dispositivo

con la FPGA.

Lógica programable. Esta etapa pertenece a la parte de hardware que compone al sistema

embebido o SoC del Zynq-7000 donde, con ayuda del programa Vivado es configurado el

hardware necesario para el sistema biométrico bimodal. Se detalla el proceso de diseño del

controlador para el conversor analógico digital, los elementos diseñados para almacenar los

datos adquiridos y los mecanismos que sincronizan el hardware para ser administrados por

software, esto en lenguaje VHDL. Se muestra el proceso utilizado para la configuración del

SoC, la metodología implementada para la vinculación de los bloques en VHDL con un bus

AXI-lite y el proceso de empaquetamiento para la creación de una propiedad intelectual (IP).

Sistema de procesamiento. Esta etapa administra la sección de software que compone al

sistema embebido o SoC del Zynq-7000 donde, con ayuda del Kit de desarrollo de software

de Xilinx (XSDK) son gestionados los comandos necesarios para el control del hardware. Se

describen los diferentes algoritmos implementados para la extracción de características en las

señales adquiridas y el algoritmo utilizado como clasificador.

4.1. Adquisición de señales fotopletismográficas (PPG) y electrocar-

diográficas (ECG)

Como se muestra en el diagrama a bloques de la figura 4.2, esta etapa consiste en el proceso

de adquisición de las señales PPG y ECG por medio de un sistema de pulso oximetría y electrodos

superficiales, respectivamente. Dichas señales fueron acondicionadas en amplitud, con base en las

características del convertidor analógico digital utilizado y filtradas con base en las recomendaciones

de diseño que los proveedores de los sensores proponen.

40

Figura 4.2: Proceso de adquisición y acondicionamiento de las señales PPG y ECG.

4.1.1. Sensor fotopletismográfico (PPG)

Para la adquisición de la señal fotopletismográfica (PPG) se utilizó el sensor Spo2 g tec R©.

Como se muestra en la figura 4.3, es un módulo fotopletismográfico no invasivo que genera una señal

resultado de, las variaciones que se producen en el flujo o en el volumen sanguíneo que ocurre con

cada contracción cardíaca. El sensor debe colocarse en el segundo dedo de la extremidad superior

derecha o izquierda con el LED en el lado opuesto de la uña. El dispositivo se enciende presionando

el botón “ON / OFF”. Inmediatamente después de encender el dispositivo, se emite una señal de

calibración, una vez finalizado ese proceso el indicador “SIG OK” se enciende. El led para “BAT

OK” indica el voltaje correcto de la batería. Los datos técnicos del sensor g.SpO2 se muestran en

la tabla 4.1 [36].

El sistema está compuesto típicamente por dos diodos LED, uno de longitud de frecuencia corres-

pondiente al color rojo y otro correspondiente al infrarrojo, que emiten luz pulsátil intermitente e

intercaladamente. En el otro extremo del sensor hay un fotodetector que adquiere aquella luz que

no ha sido absorbida. De este modo, se puede componer la señal PPG de la que puede extraerse

información como el pulso cardíaco[36].

41

Figura 4.3: Sensor pletismográfico Spo2 g tec R©.

Tabla 4.1: Datos técnicos del sensor g.SpO2

Dato técnico Especificación

Pletismograma (pin 3, conector blanco) Filtro recomendado: 0.1-30 Hz,

filtro notch 50/60 Hz.

Intervalo de amplitud en señal de salida Aprox. 0-200 mV.

Fuente de alimentación 2 x 1.5 V (AA) baterías alcalinas,

fusible interno: 500 mA

Consumo de corriente <60 mA

BAT OK (voltaje) 2.4 V

SIG OK Calidad >90 %

4.1.2. Sensor electrocardiográfico (ECG)

Para la adquisición de la señal electrocardiográfica (ECG) se utilizó el sensor de ritmo car-

diaco AD8232 de Sparkfun R©. Como se muestra en la figura 4.4, es un módulo de adquisición no

invasivo de la señal electrocardiográfica, registrando la diferencia de potencial que se genera en

el corazón, a través de electrodos colocados en las fosas cubitales de las extremidades superiores

42

derecha e izquierda y en la zona externa de la apófisis estiloide del cúbito en la extremidad superior

derecha.

El dispositivo se enciende presionando el botón “ON / OFF”, un led de color verde se ilumina

inmediatamente como indicador de encendido, la señal analógica correspondiente a la señal ECG,

es transmitida por los cables de salida. Los datos técnicos del sensor de ECG se muestran en la

tabla 4.2 [37].

Figura 4.4: Sensor de ritmo cardiaco AD8232 de Sparkfun R© y puntos anatómicos para la colocación de

electrodos.

Tabla 4.2: Datos técnicos del sensor de ritmo cardiaco AD8232 de Sparkfun R©

Dato técnico Especificación

Electrocardiograma Filtro recomendado: Filtro pasa

bajas 40 Hz.

Intervalo de amplitud en señal de salida Aprox= 2.0-3.5 V.

Fuente de alimentación 3.5 V

4.1.3. Acondicionamiento

El acondicionamiento de las señales PPG y ECG se realizó con base en el software de in-

geniería en sistemas LabView R©. Donde fueron diseñados los filtros y ganancias necesarias para

acondicionar las señales provenientes de los sensores, a los parámetros requeridos por el converti-

dor analógico digital Digilent R© Pmod AD1 (del cual se detallará su funcionamiento en la sección

de conversión analógica digital).

Las especificaciones requeridas para el acondicionamiento de la señal PPG del sensor g-SpO2 se

43

muestran en la tabla 4.3, donde:

Amplitud de salida. Con la finalidad de colocar las señales PPG y ECG en niveles de amplitud

similar, se calculó una ganancia de 6.5 a la señal PPG ya que el sensor g-SpO2 otorga una

amplitud de salida de 200mV y el sensor de ECG otorga una amplitud de salida de 1.5V.

Filtrado. Como se mencionó, el fabricante del sensor g-SpO2 recomienda filtrar la señal de

0.1 a 30 HZ y un filtro de rechazo en 60 Hz.

Línea base. El convertidor A/D especifica un intervalo de voltaje de entrada que va de 0 V

a 3.3 V. Dado que la salida analógica del sensor g-SpO2 tiene como línea de base 0 V, fue

necesario añadir un valor de DC, con la intención de proporcionar un “offset” a la señal PPG

de 1.65V colocándola entre 0 - 3.3 V.

Tabla 4.3: Especificaciones requeridas para acondicionamiento de señal fotopletismográfica de pulso (PPG).

Sensor g-SpO2

Dato técnico Especificaciones originales Especificaciones requeridas

Amplitud de salida 200 mV 1.5 V

Filtrado —————————— Filtro recomendado: 0.1-30 Hz,

filtro Notch 50/60 Hz.

Línea de base 0V 1.65V

En la figura 4.5, se muestran los bloques utilizados para el acondicionamiento de la señal PPG.

El bloque “ADQUISICIÓN” pertenece a la etapa donde se adquiere la señal del sensor g-SpO2,

aquí se establece la comunicación entre el programa diseñado y la tarjeta de adquisición de datos

“MyDaq” de National Instruments R©. Esta tarjeta fue utilizada con la finalidad de adquirir las

señales provenientes de los sensores, g-SpO2 y el sensor de ritmo cardiaco AD8232 de SparkfunR R©,

para su acondicionamiento. El bloque de “Ganancia”, fue configurado para amplificar la señal PPG

colocándola en niveles de amplitud similar a la señal ECG. Para el filtro de rechazo se configuró

la frecuencia de 60 Hz, seguido del filtro pasa banda configurado de 0.1 a 30 Hz. El bloque “Línea

de base” fue configurado para otorgar un “offset” a la señal PPG de 1.65V colocando la señal PPG

entre 0 - 3.3 V.

44

Figura 4.5: Acondicionamiento de señal fotopletismográfica de pulso (PPG), diseñado en Labview R©.

La especificación requerida para el acondicionamiento de la señal ECG del sensor de ritmo car-

diaco AD8232 de SparkfunR R©, consiste en implementar un filtro pasa bajas de 40 Hz el cual es

recomendado por el fabricante para monitoreo. Este proceso se muestra en la figura 4.6, donde se

configuró el bloque del filtro pasa bajas a 40 Hz.

Figura 4.6: Acondicionamiento de señal electrocardiográfica (ECG), diseñado en Labview R©.

Las señales fotopletismográficas de pulso y electrocardiográficas acondicionadas, son entregadas

de manera analógica por la tarjeta “MyDaq” de National Instruments R© con las características

necesarias para ser adquiridas por el conversor analógico digital Digilent R© Pmod AD1.

4.2. Conversión analógica digital

El propósito de esta etapa es obtener datos digitales relacionados con las fuentes biológicas de

nuestro sistema biométrico (señales PPG y ECG acondicionadas), con la intención de compatibilizar

con el sistema digital. Para esto se utilizó el convertidor analógico digital Digilent R© Pmod AD1

cuyas características se muestran en la tabla 4.4 [38].

45

Tabla 4.4: Características del convertidor analógico digital Digilent R© Pmod AD1

Convertidor analógico digital Digilent R© Pmod AD1

Dato técnico Especificación

Número de canales A/D Dos canales a 12 bits de resolución.

Conversión analógica digital Simultánea

Tamaño de PCB 2.4 cm × 2.0 cm

Número de pines 6

Interfaz GPIO

Comunicación SPI

Este trabajo se enfoca en el desarrollo de un sistema biométrico bimodal combinando modalidades

biométricas fisiológicas (señal electrocardiográfica (ECG) y señal pletismográfica (PPG)), por esta

razón fue implementado el convertidor analógico digital Digilent R© Pmod AD1, ya que cada uno

de los canales A/D están separados entre sí, el dispositivo permite convertir dos señales analógicas

simultáneamente. La descripción de pines del dispocitivo se muestran en la figura 4.7.

Figura 4.7: Descripción de pines para el Pmod AD1.

Las señales PPG y ECG fueron acondicionadas para colocar sus niveles de amplitud en el intervalo

de 0-3.3 V dado que el dispositivo Pmod AD1 convierte una señal de entrada analógica que va de

0-3.3 V a un valor digital de 12 bits en el intervalo de 0-4095.

46

4.2.1. Protocolo de comunicación del convertidor analógico digital Pmod AD1

El Pmod AD1 se comunica con la FPGA mediante un protocolo de comunicación similar al

SPI. La diferencia entre el protocolo SPI estándar y este protocolo se manifiesta en la disposición de

los pines. Una interfaz SPI típica implementa un “Chip Select”, un “Master-Out-Slave-In” (MOSI),

un “Master-in-Slave-Out” (MISO), y una señal de reloj serial. Sin embargo, ambas líneas de datos

de los dos ADC en este chip, están diseñadas para funcionar solo como salidas, lo que las convierte

en “Master-In-Slave-Out” (MISO).

Como se muestra en la figura 4.9, el Pmod AD1 proporciona sus 12 bits de información a la FPGA

a través de 16 ciclos de reloj activados por un flanco descendiente de la señal CS, los primeros

cuatro bits consisten en cuatro ceros iniciales y los 12 restantes representan los 12 bits de datos,

la señal CS regresa a su estado ascendente después de los 16 ciclos de reloj otorgados por la señal

SCLK.

Figura 4.8: Protocolo de comunicación del convertidor analógico digital Digilent R© Pmod AD1.

4.2.2. Parámetros de diseño en hardware para el control del convertidor analógico

digital Pmod AD1

Para el desarrollo de este trabajo, se utilizó la base de datos [2], donde se obtuvieron gra-

baciones de señales ECG y PPG de 50 sujetos, cada una de 8 minutos de duración muestreadas a

125 Hz, las cuales fueron generadas de manera analógica por medio del software de ingeniería en

sistemas LabView R©, donde fue programada una función encargada de leer las señales obtenidas y

reproducirlas a través de la tarjeta de adquisición de datos Mydaq de National Instruments. Esto

con la intención de emular las señales generadas por un humano.

47

Con base en la frecuencia de muestreo utilizada para la obtención de las señales en la base de datos

y fundamentados en el capítulo 3, donde se menciona que el ancho de banda de las señales PPG y

ECG son: 0.5 - 40 Hz y 1 – 2 Hz respectivamente, se propuso configurar el convertidor analógico

digital a una frecuencia de muestreo de 125 Hz, la cual respeta el teorema de Nyquist que establece

como valor de frecuencia de muestreo mínimo, el doble de la componente en frecuencia máxima de

la o las señales capturadas [39].

Las líneas de código encargadas de configurar el hardware de esta sección se encuentran en el

apéndice electrónico anexado. En la figura 4.9 se observa el diagrama de flujo que describe la

configuración realizada para una conversión analógica digital muestreando a 125 Hz. Para esto se

implementó un contador (del cual se detallará en la sección de “Generador del periodo de muestreo”)

capaz de medir el tiempo en intervalos que corresponden al periodo de muestreo Ts. Para el cálculo

del periodo de muestreo se define la frecuencia de muestreo de Fs igual a 125 Hz, al aplicar (4.1)

se obtiene un periodo de muestreo Ts igual a 8 ms.

Ts =1

Fs(4.1)

Si el contador registra que han transcurrido 8 ms, la señal C̄S proveniente de la FPGA (maestro)

cambia a un estado bajo, indicando al dispositivo (esclavo) que es momento de iniciar la conversión

analógica a digital. Este proceso es sincronizado a partir de la señal Sclk oscilando a una frecuencia

(fSclk) de 4.125 MHz (configuración propuesta por el fabricante [38]), los datos son enviados por

el esclavo al maestro y almacenados en las señales auxiliares de 12 bits dp0 y dp1. El protocolo de

comunicación del ADC registra una conversión completa a través de 16 ciclos de reloj generados por

la señal Sclk y es indicada por la bandera conv pasando de un estado “bajo” a un estado “alto” en

el momento que el dato digital esté listo, el tiempo para una conversión analógica digital completa

(tADC) se calcula con (4.2), obteniendo un tADC igual a 3.88 µs. El proceso se repite reiniciando

el conteo de 8 ms, mientras esta condición no se cumpla el dispositivo esclavo permanece inactivo.

tADC = 16 ∗ 1

fSclk(4.2)

48

Figura 4.9: Diagrama de flujo para conversión analógica digital muestreando a 125 Hz.

Generador del periodo de muestreo

Como se mencionó la frecuencia de muestreo establecida es de 125 Hz y el periodo de muestreo

calculado para obtener dicha frecuencia es de 8 ms. Este tiempo se generó implementando un

contador descendente cuya lógica se muestra en el diagrama de flujo de la figura 4.10. Se calculó el

valor necesario para el conteo con (4.3).

K =

(Ts

TMclk

)− 1 (4.3)

Tomando en cuenta el periodo de la señal de reloj de la FPGA (TMclk) de 33 MHz se obtuvo

un valor en hexadecimal de x”4073F”, el cual es cargado a la variable auxiliar K. Las variables

auxiliares QP, QN e Init son utilizadas para realizar el proceso de decremento en el conteo. El

ciclo comienza con el monitoreo de QP el cual inicialmente se encuentra en cero, el valor de K es

cargado a QN y el valor de QN es cargado a QP en todo momento cada ciclo de reloj. Cuando el

49

valor de QP es diferente de cero se decrementa en uno y es cargado en QN. Siguiendo el diagrama

de flujo el valor de QP es monitoreado, si su valor es cero indicando que han transcurrido 8 ms,

la variable Init activa la señal C̄S, de lo contrario C̄S permanece inactiva, repitiendo el ciclo del

contador.

Figura 4.10: Diagrama de flujo para contador encargado de generar el periodo de muestreo.

4.3. Lógica programable

Como se mencionó en el capítulo 3, la sección de lógica programable (PL) corresponde a la

zona del SoC donde es configurado el hardware del sistema embebido. El diseño de esta sección se

realizó con base en el diagrama de bloques mostrado en la figura 4.11 donde:

ADC. Corresponde a la etapa descrita en la sección “Conversión analógica digital”, aquí

50

son digitalizadas las señales PPG y ECG provenientes de los sensores, capturadas a una

frecuencia de muestreo de 125 Hz con una resolución de 12 bits. Estas señales digitales fueron

configuradas como salidas, con la intención de ser almacenadas dentro de memorias para su

procesamiento.

RAM. Representa la sección de lógica programable donde son almacenados los datos digitales

que en conjunto representan las señales capturadas PPG y ECG. Esta etapa fue diseñada

para ser controlada por software, con la intención de acceder a sus datos y así procesar las

señales contenidas, de igual manera fue diseñada para poder controlar su función de lectura

y escritura según sea necesario.

FSM. Corresponde a la máquina de estados finitos encargada de coordinar los datos digitales

de 12 bits (otorgados por el ADC), el almacenamiento de ellos en las memorias RAM y la

gestión de lectura y escritura de datos solicitada por el sistema de procesamiento según sea

el caso.

Figura 4.11: Diagrama de bloques de la lógica programable (PL)

La etapa que corresponde a la propiedad intelectual (IP), consiste en el proceso por el cual los

bloques ADC, RAM y FSM son vinculadas a un bus AXI, con la intensión de comunicar la lógica

51

programable con el sistema de procesamiento, configurando la comunicación en modo esclavo donde

el maestro corresponde al sistema de procesamiento (PS). Como resultado se tuvo el “empaque-

tando” de la descripción de hardware en un bloque con entradas y salidas definidas, así como la

comunicación por medio del bus AXI.

El diseño de la arquitectura del sistema, corresponde a la construcción total de la configuración en

hardware en el sistema embebido. Esta etapa consistió en interconectar por medio de diagramas de

bloques los módulos necesarios en la construcción del sistema embebido, como es el microprocesador

ARM, el módulo de interconexión AXI, el módulo de reset maestro y la IP diseñada. También se

configuraron las direcciones que vinculan el sistema de procesamiento con los registros de la lógica

programable, así como las señales de entrada y salida de la IP con las localidades físicas de la

FPGA donde es conectado el dispositivo ADC.

4.3.1. Propiedad intelectual (IP por sus siglas en inglés Intellectual Property)

Consiste en diseñar las descripciones que conforman los bloques, ADC (descrito en la sección

“Conversión analógica digital”), RAM y FSM mostrados en la figura 4.11, cada bloque representa

la configuración necesaria para la adquisición de las señales PPG y ECG en ventanas de tiempo

establecido, almacenadas en localidades las cuales pueden ser gestionadas por el software del sistema

de procesamiento. Teniendo el diseño de estos bloques, fueron vinculadas las salidas necesarias al

bus AXI comunicando la parte PL de la PS en el SoC, finalmente la IP se empaquetó en un bloque

para su interconexión con el SoC.

Memoria RAM

Corresponde a la configuración del SoC donde serán almacenados los datos digitales de las

señales PPG y ECG. Como se mencionó en el capítulo 3, esta representación digital de las señales

biológicas se utiliza para el registro de un modelo característico del usuario y es aplicado en la

identificación. Para la obtención del modelo característico se almacenaron 1024 muestras de las

señales biológicas que corresponden a 8.184 s de grabación. El número de bits necesarios para

direccionar 1024 localidades en la memoria RAM es obtenido con (4.4) dando como resultado 10

bits necesarios.

bits = log2(nmuestras)) (4.4)

52

El diagrama de flujo mostrado en la figura 4.12 ilustra el funcionamiento de las memorias RAM

implementadas.

Figura 4.12: Diagrama de bloques para el funcionamiento de memoria RAM.

El funcionamiento de la memoria RAM es diseñado para poder configurarse como lectura o escri-

tura. Siguiendo el diagrama de bloques de la figura 4.12 con una configuración en modo lectura,

son introducidas las direcciones a leer en las variables ADDR_R y la variable de configuración W

(lectura y escritura) es colocada en un nivel bajo, guardando el dato (almacenado en la dirección

deseada) en la variable de salida DATA_R. Para una configuración en modo escritura, son introdu-

cidas las direcciones donde serán almacenados los datos y la variable de configuración W (lectura

y escritura) es colocada en un nivel alto, guardando el dato en las localidades con las direcciones

introducidas.

Máquina de estados finitos FSM

La etapa encargada de sincronizar las secciones del ADC y RAM es la sección FSM que

consta de una máquina de estados la cual se muestra en el diagrama de la figura 4.13.

53

Figura 4.13: Diagrama de bloques para el funcionamiento de la máquina de estados finitos (FSM).

Las funciones de cada etapa en la máquina de estados son:

Estado 0. Permanece en esta etapa mientras la señal guarda se encuentra en estado bajo,

guarda fue implementada con la finalidad de ser controlada desde el sistema de procesamiento

(PS). La señal W corresponde al control de lectura/escritura en el funcionamiento de la

memoria RAM, en este estado la configuración de la RAM es en modo “lectura”. La señal

opc se encarga de configurar un contador ascendente, el cual direcciona la memoria RAM e

incrementa cada que es guardado un nuevo dato, en este estado la configuración corresponde

a “reiniciar” el conteo. el comportamiento de las señales opc y W se describen en la tabla 4.5.

Cuando la señal guarda cambia a un nivel alto hay un cambio al estado 1.

Estado 1. Permanece en esta etapa mientras la señal conv se encuentra en estado bajo, conv

corresponde a la señal del bloque ADC que indica si la conversión analógica digital está lista.

En este estado la configuración de la RAM es en modo “lectura” y el contador en modo

“mantiene”. Cuando la señal conv cambia a un nivel alto indicando que el dato digital está

listo, el sistema cambia al estado 2.

Estado 2. En este estado el sistema asegura que el dato digital este guardado en la variable

de 12 bits conectada a la entrada de la memoria RAM en DATA_W.

54

Estado 3. La configuración de la RAM cambia a modo “escritura” guardando el dato en la

dirección donde se encuentre el contador.

Estado 4. El sistema cambia a este estado si el contador se encuentra en un valor menor a

1023 ya que es aquí donde se presenta un incremento en el direccionamiento de la memoria

controlado por la variable opc. Cuando el contador se encuentra en un valor igual a 1023 el

sistema salta al estado 0, se activa la bandera llamada OK indicando que la memoria se ha

llenado y el ciclo de la máquina de estados se reinicia.

Tabla 4.5: Configuración del contador direccionador y memoria RAM.

opc

Estado lógico Configuración

00 Mantiene

01 Incrementa

1X Reinicia

W

Estado lógico Configuración

0 Lectura

1 Escritura

Empaquetamiento de IP

Consiste en el proceso por el cual la descripción del hardware es conectada al bus AXI. Como

se muestra en la figura 4.14, los bloques de descripción de hardware constan de entradas/salidas

interconectadas, por las cuales se comunican e intercambian información de sus procesos. Se pueden

observar las entradas ds0, ds1, que corresponden a los datos digitales provenientes del dispositivo

ADC y sus señales de control CS, sclk. Las señales DATA_R0, DATA_R1, ADDR_R0, ADDR_R1,

ADC0, ADC1, guarda y OK, fueron interconectadas al bus AXI para comunicarlas al sistema de

procesamiento y permitir su manipulación por medio de software, los pasos necesarios para enlazar

la descripción del hardware en VHDL con el bus AXI se detallan en el apéndice A.

55

Figura 4.14: Interconexión de las descripciones (hardware) con el bus AXI.

Para facilitar el manejo del hardware diseñado, se sintetizaron las descripciones en un bloque

con entrada/salidas al dispositivo ADC y al bus AXI en los registros modo esclavo (0-7) como

se muestra en la figura 4.15, esto permite incluir la propiedad intelectual en la librería de IPs

predefinida por Vivado. Los pasos necesarios para empaquetar la propiedad intelectual (IP) se

detallan en el apéndice B.

Figura 4.15: Descripcción de hardware empaquetado como propiedad intelectual (IP).

56

4.3.2. Arquitectura del sistema

Corresponde al proceso por el cual se configura en vivado la arquitectura general del hard-

ware. En esta sección se habilitaron los bloques necesarios para el desarrollo del sistema biométrico

bimodal, se está implementado un sistema de computación diseñado para realizar una o algunas

funciones para cubrir necesidades específicas como se mencionó en el capítulo 3. Por esta razón,

como se muestra en el diagrama de bloques de la figura 4.16 son habilitados únicamente la IP dise-

ñada, el bloque del sistema de procesamiento ZYNQ, el bloque de comunicación AXI y el reset del

sistema de procesamiento (estos dos últimos son generados de manera automática al interconectar

el ARM y la IP). El proceso por el cual se genera un nuevo proyecto en Vivado, así como los pasos

para construir el diagrama de bloques de hardware de la figura 4.16, se encuentran en el apéndice

C.

Figura 4.16: Diagrama de bloques con la configuracion general del Hardware en Vivado.

Configuración del sistema de procesamiento. Accediendo a la configuración del sistema de

procesamiento en el diagrama de bloques, se habilitan las opciones de transferencia de da-

tos por comunicación serial a través del periférico UART 1 y la gestión de puertos GPIO,

manteniendo la configuración preestablecida del resto de los módulos.

Vinculación entre la descripción y el puerto de propósito general. Consiste en interconectar

las entradas y salidas de la IP_ADC_RAM con el puerto de propósito general (GPIO) donde

se conecta el dispositivo ADC. En la tabla 4.6 se muestran los pines de conexión. El proceso

por el cual se genera un constrain (archivo de vinculación entre pines de la FPGA y la

descripción), se encuentran en el apéndice D.

Verificación del proyecto y exportación del hardware. El proceso por el cual Vivado se encarga

de verificar que el proyecto no tenga errores, así como generar de manera automática las

57

Tabla 4.6: Tabla de conexiones entre IP_ADC_RAM (Entradas/Salidas) y puerto GPIO de la FPGA

IP_ADC_RAM (Entradas/Salidas) FPGA (pines)

CS PIN Y11

ds0 PIN AA11

ds1 PIN Y10

sclk PIN AA9

configuraciones necesarias como es el direccionamiento del hardware para su manipulación

por software, es obtenido con las herramientas “validate design”, “Run Synthesis” y “Run

implementation”. En la tabla 4.7 se muestran las direcciones generadas para la IP diseñada

(IP_ADC_RAM).

Tabla 4.7: Tabla de direcciones para la IP_ADC_RAM.

Bloque Dirección de desplazamiento Dirección final

IP_ADC_RAM 0x43C1_0000 0x43C1_FFFF

Para finalizar la edición del hardware del sistema, se crea el “bitstream” del proyecto en Vivado

donde se encuentra la configuración diseñada. El hardware es exportado para programar

la FPGA desde SDK con la herramienta “Export hardware” donde se incluye el archivo

bitstream.

4.4. Sistema de procesamiento

Como se mencionó en el capítulo 3, el sistema de procesamiento (PS) corresponde a la zona

del SoC donde es configurado el software del sistema embebido. El diseño de esta sección se realizó

con base en el diagrama de bloques mostrado en la figura 4.17, el cual corresponde al sistema de

reconocimiento biométrico con una técnica de fusión a nivel de extracción de características. Los

modelos o conjunto de características que se originan por los sensores de las señales ECG y PPG

se fusionan. Estos valores de características son concatenados para formar un nuevo vector único,

utilizado para la construcción de la base de datos y para el proceso de identificación a través del

módulo de decisión. Cada algoritmo fue programado en lenguaje C con el Kit de desarrollo de

software de Xilinx (SDK). El proceso necesario para la creación de un proyecto en SDK se describe

58

en el apéndice E y los pasos para programar hardware y software en la tarjeta FPGA (Zed board)

se describen en el apéndice F.

Figura 4.17: Diagrama de bloques del sistema de procesamiento (PS).

El sistema se compone por cuatro secciones donde:

Extracción de datos almacenados. En esta sección se configuran los registros modo esclavo

correspondientes al direccionamiento establecido en el empaquetamiento de la IP, para re-

cibir los datos de las señales PPG e ECG almacenados en las memorias RAM de la lógica

programable (PL).

Algoritmos para extracción de características. Los algoritmos diseñados para los métodos de

extracción de características son implementados en esta sección, los valores obtenidos a partir

de estos métodos son concatenados para formar el vector característico o modelo utilizado en

el proceso de reconocimiento biométrico (Cada algoritmo implementado fue generado como

función en lenguaje C).

Algoritmo de generación del target. Se describe el método utilizado en la obtención de los

modelos biométricos de cada individuo para su identificación.

Algoritmo de clasificación por DTW. Proceso por el cual se realiza la comparación de los

datos biométricos extraídos con uno o más modelos biométricos previamente almacenados.

59

4.4.1. Extracción de datos almacenados

La configuración de registros permite el control del hardware por medio de software para

extraer los datos almacenados en las memorias RAM. Como se muestra en la tabla 4.8 las entra-

das/salidas de la IP_ADC_RAM vinculadas a los registros tipo esclavo de bus AXI son etiquetadas

como reg0-reg7 dentro de SDK donde:

Reg0 (guarda). Si es asignado un 1 lógico a este registro, la IP_ADC_RAM comienza a

almacenar 1024 muestras de las señales PPG y ECG. Un cero lógico mantiene el proceso de

almacenamiento inactivo.

Reg1 (ADDR_R0). Son asignadas las direcciones de la memoria RAM (0-1023) en la cual es

almacenada la señal PPG.

Reg2 (ADDR_R1). Son asignadas las direcciones de la memoria RAM (0-1023) en la cual es

almacenada la señal ECG.

Reg3 (DATA_R0). Corresponde al registro de salida de la IP_ADC_RAM, por el cual se

envían los datos de la señal PPG almacenada en la memoria RAM.

Reg4 (DATA_R1). Corresponde al registro de salida de la IP_ADC_RAM, por el cual se

envían los datos de la señal ECG almacenada en la memoria RAM.

Reg5 (ADC0). Corresponde al registro de salida de la IP_ADC_RAM, por el cual se envían

los datos de la señal PPG en modo continuo.

Reg6 (ADC1). Corresponde al registro de salida de la IP_ADC_RAM, por el cual se envían

los datos de la señal ECG en modo continuo.

Reg7 (OK). Corresponde al registro de salida de la IP_ADC_RAM, por el cual se indica al

sistema de procesamiento la captura completa de 1024 muestras de señales PPG y ECG.

60

Tabla 4.8: Tabla de vinculación entre registros y entradas/salidas de IP_ADC_RAM.

Salidas/Entradas IP_ADC_RAM Registro bus AXI Registro SDK

Guarda SLV_0 reg0

ADDR_R0 SLV_1 reg1

ADDR_R1 SLV_2 reg2

DATA_R0 SLV_3 reg3

DATA_R1 SLV_4 reg4

ADC0 SLV_5 reg5

ADC1 SLV_6 reg6

OK SLV_7 reg7

Extracción de datos almacenados

El proceso de extracción de señales se desarrolló con base en el diagrama de flujo mostrado

en la figura 4.18, el fragmento de código que se utiliza para esta función se localiza en el apéndice

electrónico. Son declarados los registros de configuración reg0, reg1, reg2, reg3, reg4, reg5, reg7.

Siguiendo el diagrama de flujo se monitorea el estado del registro reg5 que corresponde a la señal

PPG en modo continuo, cuando la señal supera el umbral de 2048 (1.65V) se coloca un 1 lógico en

el registro reg0, activando el proceso de adquisición en la lógica programable (PL), el registro es

puesto nuevamente en 0 para desactivar la adquisición una vez guardados los datos en la memoria

RAM de la IP_ADC_RAM. Se monitorea el registro reg7 que indica al sistema el final del proceso

de adquisición en el PL.

Ya que se tienen los datos de las señales PPG y ECG almacenados en las memorias RAM de

la IP, se declaran los registros reg1, reg3, la variable N (número de datos almacenados), el vector

senial_ppg [N] (variable que contendrá la señal PPG) y la variable auxiliar j=0. El ciclo por el cual

son guardados los datos de la señal PPG en la variable senial_ppg comienza con asignar al registro

reg1 el valor de la variable auxiliar j la cual direcciona las localidades de la memoria RAM_0. El

valor almacenado en dicha localidad, es convertido de un dato digital a su valor equivalente en

voltaje y almacenado en la posición correspondiente de la variable senial_ppg , se incrementa en

1 el valor de j y se monitorea su estado, si el valor es menor al número de datos almacenados en

RAM_0 se repite el ciclo, si el valor es mayor se finaliza el ciclo y la señal queda almacenada en la

61

variable senial_ppg .

Siguiendo el diagrama de flujo, se declaran los registros reg2, reg4, el vector senial_ecg [N] (variable

que contendrá la señal ECG) y la variable auxiliar j=0. El ciclo por el cual son guardados los datos

de la señal ECG en la variable senial_ecg comienza con asignar al registro reg2 el valor de la

variable auxiliar j la cual direcciona las localidades de la memoria RAM_1. El valor almacenado

en dicha localidad, es convertido de un dato digital a su valor equivalente en voltaje y almacenado

en la posición correspondiente de la variable senial_ecg , se incrementa en 1 el valor de j y se

monitorea su estado, si el valor es menor al número de datos almacenados en RAM_1 se repite el

ciclo, si el valor es mayor se finaliza el ciclo y la señal queda almacenada en la variable senial_ecg .

Se propuso utilizar una tercera señal en el proceso de reconocimiento biométrico, resultante de la

suma de las señales PPG y ECG. Para obtener esta señal, siguiendo el diagrama de flujo se declara

el vector suma [N] (variable que contendrá la señal suma) y la variable auxiliar j=0. El ciclo por el

cual son guardados los datos de la señal suma en la variable suma comienza con la suma aritmética

de los vectores senial_ppg y senial_ecg , el valor es almacenado en la posición correspondiente

de la variable suma , se incrementa en 1 el valor de j y se monitorea su estado, si el valor es menor

a 1024 se repite el ciclo, si el valor es mayor se finaliza el ciclo y la señal queda almacenada en la

variable suma .

Figura 4.18: Diagrama de bloques del proceso de extracción de datos del PL al PS.

62

4.4.2. Algoritmos para extracción de características

Esta sección es la encargada de procesar las señales PPG y ECG obtenidas, extrayendo in-

formación asociada a los parámetros biológicos para el proceso de identificación. Como se mencionó

en el capítulo 3 la selección de técnicas no redundantes para los métodos de extracción de carac-

terísticas, es uno de los objetivos para el análisis de señales en una dimensión. En la tabla 4.9 se

muestran los métodos de extracción de características estadísticamente significativas, obtenidos a

partir de un proceso estadístico para evaluar el grado de asociación o independencia entre valores

cuantitativos, conocido como Análisis de la Varianza (ANOVA). Estos métodos de extracción de

características son seleccionados como resultado del trabajo de [12], donde fueron elegidos 5 mé-

todos de 18 iniciales. Los fragmentos de código utilizados para el desarrollo de algoritmos en la

extracción de características se localizan en el apéndice electrónico.

Tabla 4.9: Métodos de extracción de características estadísticamente significativas obtenidas por ANOVA y

multicomparación Tukey.

# Método Nombre

1 Movilidad de la suma de señales PPG y ECG (parámetro Hjorth)

2 Movilidad de ECG (parámetro Hjorth).

3 Curtosis ECG.

4 Movilidad de PPG (parámetro Hjorth)

5 Curtosis de la suma de señales PPG y ECG

Movilidad de la suma de señales PPG y ECG (parámetro Hjorth)

La movilidad representa la frecuencia media de la señal suma, para obtenerla se divide la

desviación estándar de la primera derivada de la señal entre la desviación estándar de la señal

original o de manera equivalente es a la raíz cuadrada del cociente de la varianza de la derivada de

la señal, entre la varianza de la señal original como se muestra en (3.1) del capítulo 3. El proceso

de extracción de la característica movilidad de la suma de señales PPG y ECG se desarrolló con

base en el diagrama de flujo mostrado en la figura 4.19, el fragmento de código que se utiliza para

esta función se localiza en el apéndice electrónico.

63

Figura 4.19: Diagrama de bloques del algoritmo para la obtención de movilidad de la suma de señales PPG

y ECG (parámetro Hjorth).

Para la obtención de la varianza de la señal se declaran las variables N (longitud de la señal suma),

fs (frecuencia de muestreo de la señal), las variables auxiliares j, k, sumad1, promediod1, actividad1

y el vector que contiene a la señal suma . Se obtiene el promedio de la señal suma y es almacenado

en promediod1, la varianza es obtenida a partir del cociente de la diferencia al cuadrado de cada

dato de la señal suma con la variable promediod1, dividido entre N, el resultado es almacenado en

actividad1.

Para la obtención de la derivada de la señal, se realiza el producto entre fs con la diferencia de

suma[j+1] y suma[j], la señal queda almacenada en el vector auxiliar derivada1 . La varianza de

la derivada de la señal es obtenida a partir del cociente de la diferencia al cuadrado de cada dato de

la señal derivada1 con el promedio de la misma, dividido entre la longitud del vector derivada1 ,

64

el resultado es almacenado en var_der1.

La movilidad de la suma de señales PPG y ECG se obtiene con la raíz cuadra del cociente de

var_der1 y actividad1, el resultado es almacenada en la variable mov_suma .

Movilidad de ECG (parámetro Hjorth)

El proceso de extracción de la característica movilidad de la señal ECG se desarrolló con

base en el diagrama de flujo mostrado en la figura 4.20, el fragmento de código que se utiliza para

esta función se localiza en el apéndice electrónico.

Figura 4.20: Diagrama de bloques del algoritmo para la obtención de movilidad de la señal ECG (parámetro

Hjorth).

65

Para la obtención de la varianza de la señal se declaran las variables N (longitud de la señal ECG),

fs (frecuencia de muestreo de la señal), las variables auxiliares j, k, sumad1, promediod1, actividad1

y el vector que contiene a la señal senial_ecg . Se obtiene el promedio de la señal senial_ecg

y es almacenado en promediod1, la varianza es obtenida a partir del cociente de la diferencia al

cuadrado de cada dato de la señal senial_ecg con la variable promediod1, dividido entre N, el

resultado es almacenado en actividad1.

Para la obtención de la derivada de la señal, se realiza el producto entre fs con la diferencia de

senial_ecg [j+1] y senial_ecg [j], la señal queda almacenada en el vector auxiliar derivada1 . La

varianza de la derivada de la señal es obtenida a partir del cociente de la diferencia al cuadrado

de cada dato de la señal derivada1 con el promedio de la misma, dividido entre la longitud del

vector derivada1 , el resultado es almacenado en var_der1.

La movilidad de la señal ECG se obtiene con la raíz cuadra del cociente de var_der1 y actividad1,

el resultado es almacenada en la variable mov_ecg .

Curtosis ECG

Curtosis Informa sobre el grado de homogeneidad de la distribución de datos de la señal

ECG, para obtenerla se realiza el producto del cociente de 1 entre el número de datos de la señal,

multiplicado por el cociente de la suma acumulativa elevada a la cuarta potencia, de la diferencia

entre cada dato de la señal con el promedio de la misma y la desviación estándar de la señal

elevada a la cuarta potencia como se muestra en (3.2) del capítulo 3. El proceso de extracción de

la característica curtosis de la señal ECG se desarrolló con base en el diagrama de flujo mostrado

en la figura 4.21, el fragmento de código que se utiliza para esta función se localiza en el apéndice

electrónico.

66

Figura 4.21: Diagrama de bloques del algoritmo para la obtención de curtosis de la señal ECG.

Para la obtención de la suma acumulativa se declara la variable N (longitud de la señal ECG), las

variables auxiliares j, sumad1, mediat y el vector que contiene a la señal senial_ecg . Se obtiene

el promedio de senial_ecg y es almacenado en mediat, la suma acumulativa es obtenida elevando

a la cuarta potencia la diferencia entre cada dato de senial_ecg con mediat sumando cada valor,

el resultado es dividido entre N y almacenado en NUMERADOR.

La varianza es obtenida a partir del cociente de la diferencia al cuadrado de cada dato de se-

nial_ecg con la variable mediat dividido entre N, el resultado es almacenado en varianzat.

La desviación estándar se obtiene con la raíz cuadrada de varianzat, el resultado es elevado a

la cuarta potencia y almacenado en DENOMINADOR. La curtosis de la señal ECG se obtiene

dividiendo NUMERADOR con DENOMINADOR, el resultado es almacenado en cur_ecg .

67

Movilidad de PPG (parámetro Hjorth)

El proceso de extracción de la característica movilidad de la señal PPG se desarrolló con

base en el diagrama de flujo mostrado en la figura 4.22, el fragmento de código que se utiliza para

esta función se localiza en el apéndice electrónico.

Figura 4.22: Diagrama de bloques del algoritmo para la obtención de movilidad de la señal PPG (parámetro

Hjorth).

68

Para la obtención de la varianza de la señal se declaran las variables N (longitud de la señal PPG),

fs (frecuencia de muestreo de la señal), las variables auxiliares j, k, sumad1, promediod1, actividad1

y el vector que contiene a la señal senial_ppg . Se obtiene el promedio de la señal senial_ppg

y es almacenado en promediod1, la varianza es obtenida a partir del cociente de la diferencia al

cuadrado de cada dato de la señal senial_ppg con la variable promediod1, dividido entre N, el

resultado es almacenado en actividad1.

Para la obtención de la derivada de la señal, se realiza el producto entre fs con la diferencia de

senial_ppg [j+1] y senial_ppg [j], la señal queda almacenada en el vector auxiliar derivada1 . La

varianza de la derivada de la señal es obtenida a partir del cociente de la diferencia al cuadrado

de cada dato de la señal derivada1 con el promedio de la misma, dividido entre la longitud del

vector derivada1 , el resultado es almacenado en var_der1.

La movilidad de la señal PPG se obtiene con la raíz cuadra del cociente de var_der1 y actividad1,

el resultado es almacenada en la variable mov_ppg .

Curtosis de la suma de señales PPG y ECG (parámetro Hjorth)

Curtosis Informa sobre el grado de homogeneidad de la distribución de datos de la señal

SUMA, para obtenerla se realiza el producto del cociente de 1 entre el número de datos de la señal,

multiplicado por el cociente de la suma acumulativa elevada a la cuarta potencia, de la diferencia

entre cada dato de la señal con el promedio de la misma y la desviación estándar de la señal

elevada a la cuarta potencia como se muestra en (3.2) del capítulo 3. El proceso de extracción de

la característica curtosis de la señal SUMA se desarrolló con base en el diagrama de flujo mostrado

en la figura 4.23, el fragmento de código que se utiliza para esta función se localiza en el apéndice

electrónico.

69

Figura 4.23: Diagrama de bloques del algoritmo para la obtención de curtosis de la suma de señales PPG y

ECG (parámetro Hjorth).

Para la obtención de la suma acumulativa se declara la variable N (longitud de la señal SUMA), las

variables auxiliares j, sumad1, mediat y el vector que contiene a la señal señal suma . Se obtiene

el promedio de señal suma y es almacenado en mediat, la suma acumulativa es obtenida elevando

a la cuarta potencia la diferencia entre cada dato de señal suma con mediat sumando cada valor,

el resultado es dividido entre N y almacenado en NUMERADOR.

La varianza es obtenida a partir del cociente de la diferencia al cuadrado de cada dato de señal

suma con la variable mediat dividido entre N, el resultado es almacenado en varianzat.

La desviación estándar se obtiene con la raíz cuadrada de varianzat, el resultado es elevado a la

cuarta potencia y almacenado en DENOMINADOR. La curtosis de la señal SUMA se obtiene

dividiendo NUMERADOR con DENOMINADOR, el resultado es almacenado en cur_suma .

70

4.4.3. Algoritmo de generación para la base de datos (target)

El proceso por el cual se obtienen los modelos biométricos característicos, se muestra en

el diagrama de flujo de la figura 4.24, donde es configurado el número de usuarios a reconocer

y el número de pruebas para la obtención de un modelo biométrico promedio. Se inicializan las

variables usuario, pruebas y las variables auxiliares i e ii. Es activado el proceso de adquisición

mostrado en el diagrama de flujo de la figura 4.18 y son llamadas las funciones para la extracción

de características. Se realiza la suma acumulativa de cada método de extracción de características,

repitiendo el proceso hasta que la variable i corresponda al número de pruebas establecido. Se

realiza el promedio de cada método de extracción de características dividiendo su suma acumulativa

entre el número de pruebas. El proceso se repite con cada usuario y se finaliza cuando la variable

ii corresponda al número de usuarios establecido. La base de datos es finalizada y los modelos

característicos de cada usuario son almacenados.

71

Figura 4.24: Diagrama de flujo del algoritmo para la obtención de la base de datos (target).

4.4.4. Algoritmo de clasificación por DTW

Esta sección pertenece a la etapa del sistema biométrico donde, el usuario es identificado

comparando su modelo biométrico con la base de datos. El proceso de identificación se muestra

en el diagrama de flujo de la figura 4.25. Es declarado el vector INCOGNITA el cual contiene

los valores correspondientes a los métodos de extracción de características, la matriz TARGET

que corresponde a la base de datos, la variable auxiliar DTW_F, el vector DTW_VEC el cual

72

contendrá los valores DTW entre la incógnita y los modelos almacenados en la base de datos, las

variables pos e i. Se aplica el algoritmo para obtener el valor DTW entre la INCOGNITA y el

modelo correspondiente a la posición indicada por la variable auxiliar i, el ciclo finaliza hasta que

se realiza la comparación con el último modelo de la base de datos. La toma de decisión se realiza

localizando el valor mínimo contenido en el vector DTW_VEC y almacenando su posición, la

cual indica el usuario que el sistema reconoció.

Figura 4.25: Diagrama de flujo del algoritmo de clasificación por DTW.

73

Algoritmo de alineamiento temporal dinámico (DTW)

Para la obtención del valor DTW como se muestra en el diagrama de flujo de la figura 4.26 se

declaran las variables T, I que corresponden al tamaño de los vectores TARGET e INCOGNITA

respectivamente y las variables auxiliares i, j. Para la construcción de la matriz de distancia locales

se realiza la diferencia entre vectores TARGET e INCOGNITA. La matriz D se obtiene con

la función de recursión mostrada en 3.7 del capítulo 3. Teniendo la matriz D , se obtiene el valor

L con la ruta ideal entre el punto D [0][0] y D [4][4], el valor DTW se obtiene dividiendo El valor

D [4][4] entre L.

Figura 4.26: Diagrama de flujo del algoritmo DTW.

74

Capítulo 5

Resultados

En este capítulo se muestran los productos obtenidos a partir del desarrollo experimental

y los objetivos planteados. En el diagrama a bloques de la figura 5.1 se muestran los resultados

obtenidos de manera general.

Figura 5.1: Resultados obtenidos a partir del desarrollo experimental y pruebas del sistema.

5.1. Elementos que integran la implementación

En la figura 5.2 se muestran los elementos utilizados para la implementación del sistema

biométrico bimodal, así como para las pruebas del mismo. En la tabla 5.1 son nombrados dichos

elementos.

75

Figura 5.2: Elementos físicos del sistema biométrico bimodal.

Tabla 5.1: Elementos físicos del sistema biométrico bimodal.

Inciso Nombre

a) FPGA Zed board

b) Convertidor analógico digital Digilent R© Pmod AD1

c) Tarjeta de adquisición de datos National Instruments R©

d) Sensor de ritmo cardiaco AD8232 de SparkfunR R©

e) Sensor Spo2 g tec R©

f) Adaptador multipuertos USB

g) PC

5.2. Simulación de propiedad intelectual (IP)

Como se mencionó en la sección 4.2 el Pmod AD1 proporciona sus 12 bits de información a

la FPGA a través de 16 ciclos de reloj activados por un flanco descendiente de la señal CS, en la

simulación de la figura 5.3 se muestran los 16 ciclos que genera la señal sclk para recibir los 12 bits

de información. Se demuestra que el tiempo para una conversión analógica digital completa (tADC

es aproximadamente de 3.88 µs.

Se diseñó el sistema para tener una adquisición a una frecuencia de muestreo de 125 Hz. Como

es mencionado en la sección 4.2.2 la señal W se activa cuando la conversión analógica digital está

76

Figura 5.3: Simulación del tiempo de conversión analogica digital.

lista y es almacenado el dato en la memoria RAM. En la simulación de la figura 5.4 se muestra la

señal W activada a una frecuencia de muestreo de 125 Hz.

Figura 5.4: Simulación de la frecuencia de muestreo para la adquisición.

En la sección 4.3.1 se menciona que los primeros datos digitales son almacenados en las memorias

RAM cuando la señal W se activa por primera vez y el proceso de adquisición termina cuando la

señal OK cambia de un estado bajo a un estado alto. En la simulación de la figura 5.5 se demuestra

que el tiempo de grabación es de aproximadamente 8.184 segundos. Y se confirma con las gráficas

de señales ECG y PPG mostradas en la figura 5.6 las cuales fueron capturadas por el sistema como

prueba de diseño.

Figura 5.5: Simulación del tiempo de grabación en memorias RAM.

77

Figura 5.6: Señales PPG y ECG capturadas a 8.184s.

5.3. Funcionamiento

La implementación del sistema biométrico en el sistema embebido se diseñó con la intensión

de interactuar en modo usuario. Como se muestra en la figura 5.7 el funcionamiento se organizó en

forma de menú, donde el usuario puede seleccionar las opciones programadas y cada opción cuenta

con instrucciones sintetizadas para guiarlo en las acciones que tenga que realizar. Como resultado

de esta programación el menú es transferido por comunicación serial, desplegado en la PC con una

hiperterminal y el control del menú se realiza mediante el teclado de la misma.

Figura 5.7: Menú principal del sistema biométrico bimodal.

Adquisición target. Es la encargada de obtener la base de datos, almacenando los modelos

biométricos de cada usuario. Cuando es seleccionada esta opción como se muestra en la figura

5.8 se despliega el mensaje “INTRODUZCA EL NÚMERO DE USUARIOS”, esto permite

78

seleccionar el número de personas que el sistema reconocerá, de igual manera se selecciona el

número de pruebas realizadas a cada usuario para obtener un modelo biométrico promedio.

Finalizando la configuración, el sistema manda el mensaje “GUARDANDO DATOS...” que

indica al usuario el arranque de las etapas de adquisición y extracción de características

mencionadas en la sección 4.4.1 y 4.4.2 respectivamente.

Figura 5.8: Configuración de la opción 1 del menú principal.

79

Como se muestra en la figura 5.9 el sistema indica el cambio de usuario haciendo una pausa

con el mensaje “USUARIO_# PULSE 1 PARA CONTINUAR:”, también se indica el número

de prueba en que se encuentra cada usuario. El proceso de adquisición de la base de datos

finaliza con el mensaje “. . . DATOS GUARDADOS” seguido del despliegue de la matriz que

contiene los modelos de cada sujeto.

Figura 5.9: Proceso de adquisición del target (modo usuario).

80

Reconocedor. Esta opción permite reconocer al usuario, ya que se activan las etapas de

adquisición de señales ECG y PPG, extracción de características y la clasificación por DTW

mencionado en la sección 4.4.4. Como se muestra en la figura 5.10, el sistema comienza el

proceso de adquisición con el mensaje “GUARDANDO DATOS”, este proceso finaliza con

el mensaje “DATOS GUARDADOS”, seguido de esto comienza el proceso de extracción de

características y clasificación dando como resultado la identificación del sujeto.

Figura 5.10: Proceso de reconocimiento (modo usuario).

Validación del sistema. Consiste en activar el proceso de reconocimiento n número de veces

para cada usuario en la base de datos (20 veces para 50 usuarios). El sistema despliega el

mensaje “INTRODUZCA EL NÚMERO DE USUARIOS”, esto permite seleccionar el número

de sujetos a reconocer, de igual manera se selecciona el número de pruebas realizadas a cada

sujeto. El resultado indica el número de veces que cada sujeto es reconocido.

Pruebas. Esta opción permite conocer el tiempo que invierte el sistema para desarrollar cada

proceso. Los tiempos son obtenidos al implementar el comando XTime_GetTime(tStart) al

inicio del proceso y XTime_GetTime(tSEnd) al finalizar. El tiempo que emplea el proceso

es igual a la diferencia de tStart menos tSEnd.

Salir. Finaliza el programa.

81

5.4. Tiempo de procesos

La opción 4 del menú permite conocer el tiempo que invierte el sistema para desarrollar cada

proceso. En la tabla 5.2 se muestran los tiempos y ciclos de reloj obtenidos, así como el tiempo

total en el proceso de reconocimiento. Se obtuvo un tiempo de procesamiento de 1.491 ms aplicando

(5.1).

TP = RB −ADQ (5.1)

Donde:

TP .- Tiempo de procesamiento.

RB.- Tiempo de reconocimiento bimodal.

ADQ.- Tiempo de adquisición.

Tabla 5.2: Tiempos y ciclos de reloj obtenidos por cada proceso del sistema biométrico bimodal.

Rutinas del programa Ciclos de reloj Tiempo

Rec

onoc

imie

nto

bim

odal

Adquisición 2,731,002,483 8,201,208.66 µs

Obt

enci

ónde

cara

cter

ístic

as Movilidad de la suma 77,947 234.08 µs

1,148.09 µs

Movilidad del ECG 81,786 245.6 µs

Curtosis del ECG 76,058 228.4 µs

Movilidad del PPG 72,190 216.79 µs

Curtosis de la suma 74,331 223.22 µs

Algoritmo de identificación

por DTW

114,369 343.45 µs

Total 2,731,499,164 8,202,700.2 µs

Total, en segundos 8.2027002 s

82

5.5. Pruebas estadísticas

En esta sección se muestran los resultados estadísticos obtenidos a partir de evaluar el sistema

biométrico bimodal, en el diagrama de la figura 5.11 se muestra de manera general los procesos de

evaluación que se hicieron. Los resultados son comparados con los obtenidos por el trabajo de [12]

en la etapa de análisis y optimización.

De igual manera fue obtenida una base de datos propia con 15 individuos, capturando sus señales

PPG y ECG durante un tiempo de grabación de 8 minutos a una frecuencia de muestreo de 125

Hz, con base en esto fue evaluado el sistema comparando resultados entre los obtenidos con la base

de datos [2] y la base de datos propia.

Figura 5.11: Pruebas estadísticas de manera general.

5.5.1. Matriz de confusión

Permite evaluar el grado de confusión entre la clase real y la clase predicha por el clasificador.

El rendimiento del sistema se evaluó con la base de datos [2] utilizando los valores que arroja dicha

matriz. Como se muestra en la figura 5.12, la diagonal principal indica las clasificaciones correctas,

los datos ubicados fuera de la diagonal indican el error cometido por cada clase. Cada columna

de la matriz representa las predicciones de cada clase, mientras que las filas representan las clases

reales.

Si el caso es positivo y es clasificado como positivo se cuenta como un verdadero positivo

(VP).

Si el caso es positivo y es clasificado como negativo se cuenta como un falso negativo (FN).

Si el caso es negativo y es clasificado como negativo se cuenta como verdadero negativo (VN).

Si el caso es negativo y es clasificado como positivo se cuenta como falso positivo (FP).

83

Figura 5.12: Matriz de confusión realizada en 20 pruebas con 50 sujetos.

84

En la tabla 5.3 se muestran las medidas obtenidas a partir de la matriz de confusión en la im-

plementación comparadas con los resultados obtenidos por [12] en el análisis, en la gráfica de la

figura 5.13 se ilustran estos resultados. La interpretación de exactitud, precisión, sensibilidad (tasa

de verdaderos positivos), especificidad (tasa de verdaderos negativos), tasa de falsos positivos y

tasa de falsos negativos, así como las ecuaciones para obtener dichas medidas se encuentra en el

apéndice G [12].

Tabla 5.3: Tabla comparativa de medidas basada en matriz de confusión (análisis e implementación).

Medida Análisis Implemenación Diferencia

Exactitud 99.55 % 99.50 % 0.05 %

Precisión 87.02 % 86.64 % 0.38 %

Sensibilidad 89.98 % 90.26 % 0.28 %

Especificidad 99.74 % 99.68 % 0.06 %

Tasa de falsos pocitivos 0.25 % 0.32 % 0.07 %

Tasa de falsos negativos 10.01 % 9.74 % 0.27 %

Figura 5.13: Gráfica comparativa de medidas (análisis e implementación).

85

Evaluación con base de datos propia

Se evaluó el grado de confusión entre las clases reales y las clases predichas por el clasificador

utilizando nuestra base de datos con 15 individuos. Como se muestra en la figura 5.14, la diagonal

principal indica las clasificaciones correctas, los datos ubicados fuera de la diagonal indican el error

cometido por cada clase. Cada columna de la matriz representa las predicciones de cada clase,

mientras que las filas representan las clases reales.

Figura 5.14: Matriz de confusión realizada en 20 pruebas con 15 sujetos.

86

En la tabla 5.4 se muestran las medidas obtenidas a partir de la matriz de confusión obtenida por

el sistema utilizando la base de datos propia comparadas con los resultados obtenidos utilizando la

base de datos [2], en la gráfica de la figura 5.15 se ilustran estos resultados. La interpretación de

exactitud, precisión, sensibilidad (tasa de verdaderos positivos), especificidad (tasa de verdaderos

negativos), tasa de falsos positivos y tasa de falsos negativos, así como las ecuaciones para obtener

dichas medidas se encuentra en el apéndice G [12].

Tabla 5.4: Tabla comparativa de medidas basada en matriz de confusión (base de datos [2] y base de datos

propia).

Medida Base de datos [2] Base de datos propia Diferencia

Exactitud 99.50 % 99.61 % 0.11 %

Precisión 86.64 % 97.44 % 10.80 %

Sensibilidad 90.26 % 97.33 % 7.07 %

Especificidad 99.68 % 99.78 % 0.10 %

Tasa de falsos pocitivos 0.32 % 0.22 % 0.10 %

Tasa de falsos negativos 9.74 % 2.66 % 7.08 %

Figura 5.15: Gráfica comparativa de medidas (base de datos [2] y base de datos propia).

87

5.5.2. Curva ROC

La curva ROC muestra las compensaciones relativas entre los beneficios (verdaderos positi-

vos) y los costes (falsos positivos) del sistema. En la figura 5.16 se ilustra el gráfico ROC obtenido

a partir de las pruebas realizadas al sistema (utilizando la base de datos [2]) comparadas con los

resultados obtenidos por [12] en el análisis, donde la tasa de verdaderos positivos es representada

en el eje Y y la tasa de falsos positivos es representada en el eje X, algunos puntos importantes en

el espacio ROC son [12]:.

Punto (0,0), representa la estrategia de “nunca emitir una clasificación positiva”, es decir no

comete errores de falsos positivos y no reconoce verdaderos positivos.

Punto (1,1), representa la estrategia opuesta “emite incondicionalmente clasificaciones posi-

tivas”

Punto (0,1), representa la clasificación perfecta.

Los puntos de la diagonal Y igual a X, representa la estrategia de “adivinar al azar una clase”

Cualquier punto del triangulo inferior derecho del espacio ROC, representa que el clasificador

tiene información útil pero aplicada de forma incorrecta.

La gráfica de la figura 5.17 muestra las tasas de falsos positivos y falsos negativos tanto de análisis

como implementación. Las intersecciones de estas curvas otorgan las tasas de igual error (EER)

evaluando al sistema.

88

Figura 5.16: Gráfico ROC (análisis e implementación).

Figura 5.17: Tasas de falsos positivos y falsos negativos (análisis e implementación).

En la tabla 5.5 se muestran las medidas obtenidas a partir del gráfico ROC en la implementación

comparadas con los resultados obtenidos por [12] en el análisis.

89

Tabla 5.5: Tabla comparativa de medidas basada en gráfico ROC (análisis e implementación).

Medida Análisis Implemenación Diferencia

Tasa de igual error (EER) 7.76 % 6.75 % 1.01 %

Índice de Youden (IY) 0.84479 0.86498 0.02019

Área bajo la curva (AUC) 0.9743 0.979 0.0047

La gráfica de la figura 5.18 muestra los puntos en que se intersecan las curvas ROC con las

diagonales que van del punto (0,1) a (1,0) indicando las tasas de igual error, en la gráfica de la

figura 5.19 se muestran las intersecciones de las tasas de falsos positivos y tasa de falsos negativos

tanto en análisis como en implementación, corroborando el resultado de la tasa de igual error. La

interpretación de la tasa de igual error (EER), índice de Youden (IY) y el área bajo la curva (AUC)

así como las ecuaciones para obtener dichas medidas se encuentra en el apéndice H [12].

Figura 5.18: Tasas de igual error (EER) en curvas ROC (análisis e implementación).

90

Figura 5.19: Tasas de igual error (análisis e implementación).

Evaluación con base de datos propia

En la figura 5.20 se ilustra el gráfico ROC obtenido a partir de las pruebas realizadas al

sistema utilizando la base de datos propia de 15 individuos, comparadas con los resultados obtenidos

utilizando la base de datos [2], donde la tasa de verdaderos positivos es representada en el eje Y

y la tasa de falsos positivos es representada en el eje X. La grafica de la figura 5.21 muestra las

tasas de falsos positivos y falsos negativos tanto de los resultados obtenidos con la base de datos [2]

como los datos obtenidos con la base de datos propia. Las intersecciones de estas curvas otorgan

las tasas de igual error (EER) evaluando al sistema.

91

Figura 5.20: Gráfico ROC (base de datos [2] y base de datos propia).

Figura 5.21: Tasas de falsos positivos y falsos negativos (base de datos [2] y base de datos propia).

En la tabla 5.6 se muestran las medidas obtenidas a partir del gráfico ROC utilizando la base de

datos de 15 individuos (propia), comparadas con los resultados obtenidos utilizando la base de

92

datos de 50 individuos [2].

Tabla 5.6: Tabla comparativa de medidas basada en gráfico ROC (base de datos [2] y base de datos propia).

Medida Base de datos [2] Base de datos propia Diferencia

Tasa de igual error (EER) 6.75 % 5.83 % 0.92 %

Índice de Youden (IY) 0.86498 0.88339 0.01841

Área bajo la curva (AUC) 0.979 0.9874 0.0084

La gráfica de la figura 5.22 muestra los puntos en que se intersecan las curvas ROC con las

diagonales que van del punto (0,1) a (1,0) indicando las tasas de igual error, en la gráfica de la

figura 5.23 se muestran las intersecciones de las tasas de falsos positivos y tasa de falsos negativos

tanto en los resultados obtenidos por la base de datos [2] y los resultados obtenidos por la base de

datos propia, corroborando el resultado de la tasa de igual error. La interpretación de la tasa de

igual error (EER), índice de Youden (IY) y el área bajo la curva (AUC) así como las ecuaciones

para obtener dichas medidas se encuentra en el apéndice H [12].

Figura 5.22: Tasas de igual error (EER) en curvas ROC (base de datos [2] y base de datos propia).

93

Figura 5.23: Tasas de igual error (base de datos [2] y base de datos propia).

94

Capítulo 6

Conclusiones y trabajo futuro

En esta sección se describen las conclusiones obtenidas a partir del proceso de implementa-

ción, los resultados dados por la evaluación realizada al sistema y las propuestas de investigaciones

futuras derivadas del presente trabajo.

Se logró una adquisición de señales PPG y ECG a una frecuencia de muestreo de 125 Hz con un

tiempo de grabación de 8.184 s de manera sincronizada al implementar esta etapa en la lógica

programable del SoC, esto por su capacidad de ejecución simultanea de múltiples tareas, conocido

como ejecución concurrente. La etapa de adquisición consume 8.201 s equivalente al 99.982% en el

proceso de reconocimiento.

En la descripción de la propiedad intelectual IP fue fundamental diseñar señales de monitoreo en

los procesos de adquisición y almacenamiento para poder controlar estas etapas desde el sistema

de procesamiento.

Es importante la correcta colocación de los sensores ya que puede generarse ruido por movimiento de

electrodos o mala calibración en el caso del sensor de señal fotopletismográfica de pulso (PPG), de

igual manera es fundamental mantener una postura fija durante el proceso de adquisición ya que los

electrodos del sensor para las señales ECG son sensibles a las contracciones musculares generando

señales parasitas de carácter mioeléctrico. Algunas señales presentes en la base de datos [2] tienen

estos problemas, obteniendo como resultado una precisión de 10.8% menos que el resultado obtenido

utilizando la base de datos propia, en la cual se procuró una correcta colocación de sensores.

Se redujo el tiempo de codificación y depuración en el proceso de diseño del programa principal,

implementando los algoritmos para las técnicas de extracción de características como funciones en

95

lenguaje C contrastado con el tiempo invertido si se hubiesen repetido los algoritmos varias veces en

el programa. El proceso de extracción de características consume 1,148.09 µs equivalente al 0.014%

en el proceso de reconocimiento. Como trabajo a futuro resulta interesante implementar los métodos

de extracción de características en la sección de lógica programable en forma de hardware y evaluar

el sistema comparando resultados con esta investigación.

Se logró la implementación del algoritmo de alineamiento temporal, configurado como un método

de clasificación en modo de identificación en el sistema biométrico bimodal, consumiendo 343.

45 µs equivalente al 0.0042% en el proceso de reconocimiento. Es recomendable para próximas

investigaciones evaluar el desempeño de algún otro método de clasificación y comparar resultados

con este trabajo.

El proceso de reconocimiento biométrico bimodal fue sintetizado en dos opciones programadas en

el menú principal (Adquisición del Target y Reconocedor), permitiendo una libre selección de fun-

ciones y manipulación de las mismas por usuarios que no necesariamente cuenten con conocimiento

de este proceso. Dado que los resultados obtenidos por el sistema, así como el menú principal son

desplegados en la pantalla de una PC esto limita la portabilidad del mismo, por esta razón se

recomienda implementar el sistema procurando una mayor portabilidad integrando una interfaz

visual al mismo.

Finalmente, comprando el estudio realizado por [12] en contraste con los resultados derivados en

este trabajo se obtuvo una exactitud, precisión, especificidad y tasa de igual error (EER) superiores

en el análisis con una diferencia de 0.05%, 0.38%, 0.06% y 1.01% respectivamente. De igual manera

comparando resultados se obtuvo un valor de sensibilidad, tasa de falsos positivos, tasa de falsos

negativos, índice de Youden (IY) y área bajo la curva (AUC) superior en la implementación con una

diferencia de 0.28%, 0.07%, 0.27%, 0.02019 y 0.0047 respectivamente. Estas diferencias pueden

ser generadas por varios factores, una de ellas puede atribuirse que la implementación trabaja con

señales periódicas variantes en el tiempo asíncronas al sistema y el análisis fue generado con señales

estáticas.

96

Apéndice A

Enlazar la descripción del hardware en

VHDL con el bus AXI

Los pasos necesarios para vincular las descripciones de hardware con el bus AXI son los

siguientes:

1. Iniciando el programa Vivado en el apartado Tasks se selecciona “Manage IP” y es elegida la

opción “New IP Location”.

2. En la sección “Manage IP Setting” se eligió como lenguaje de configuración VHDL, así como

la ubicación de proyecto.

3. En la ventana de gestión de IPs dentro de la opción “Tools” se selecciona la herramienta

“Create and Package IP”.

4. En la ventana emergente se marca la opción “Create a new AXI4 peripheral”. Se configuran

los detalles de personalización para el periférico.

5. Se configuran la interfaz en modo esclavo con cuatro registros de 32 bits cada uno y se

selecciona la opción “Edit IP” finalizando la configuración inicial.

6. Para agregar las descripciones como fuentes de diseño se selecciona “Add Sources” en la

sección de “Project Manager”. En la ventana emergente se marca la opción “Add or create

design sources” y se agregan las descripciones a ser vinculadas con el bus AXI.

97

7. Para vincular las descripciones con el bus AXI, se expande el archivo “NOMBRE_S00_AXI”,

localizando la línea “User to add ports here” se declaran las entradas y salidas que tiene el

hardware con el dispositivo ADC.

8. Antes de la línea “begin” es declarado el component del top level en la descripción del hard-

ware.

9. En la línea “Add user logic here” es declarado el “port map” donde se realizan los enlaces con

los registros “esclavos”.

10. Se guarda el archivo y se verifica que la descripción se integró en la jerarquía del proyecto.

11. En el archivo “NOMBRE_V1_0” (top level del proyecto), se localiza la línea “Users to add

ports here” y se agregan las entradas/salidas de la descripción. Se guardan los cambios y se

corre la síntesis para verificar que no existan errores.

98

Apéndice B

Empaquetar la propiedad intelectual

(IP) e integrarla a la lista de IPs

Los pasos necesarios para empaquetar la propiedad intelectual son los siguientes:

1. Para empaquetar la descripción en un bloque vinculado al bus AXI, se selecciona “Pakage

IP” en la pestaña de “Project manager” y se selecciona la opción “Identification”.

2. En la opción que corresponde a categorías fue seleccionada la opción de “Basics elements”.

3. En la sección que corresponde a compatibilidad fue seleccionado en “add family explicity” la

opción de “Zynq”.

4. Para la opción “File groups” se selecciona “Marge changes from file groups wizard”, con esto es

actulizada la IP, de igual manera en “Customization parameters” se selecciona ”Merge changes

from customization parameters”.

5. Se finaliza el empaquetamiento con la opción “Review and package” seleccionando “Re-package

ip”, el gestor de empaquetamiento se cierra finalizando este proceso.

Agregar la propiedad intelectual a la lista de IPs de Vivado

Para Agregar la propiedad intelectual a la lista de IPs se abre el proyecto, en el apartado

“Flow navigator” dentro de la sección “Project settings” se selecciona la opción “IP” seguido de

99

“Repository manager”, donde se agregan los archivos que pertenecen a la IP, finalizando este proceso

la IP se encuentra agregada para su implementación.

100

Apéndice C

Generar un nuevo proyecto en Vivado y

diagrama de bloques del hardware

Los pasos necesarios para generar un nuevo proyecto en Vivado son los siguientes:

1. Iniciando el programa Vivado en el apartado Quick Start se selecciona “Create New Project”

y es configurado el nombre del proyecto y su ubicación.

2. Se seleccionó el tipo de proyecto RTL con la intensión de poder agregar fuentes, crear diseños

de bloques, generar la IP, entre otras características.

3. Se estableció como lenguaje de diseño “VHDL” y se omitió el añadir alguna IP ya que las

utilizamos directamente de la lista de IPs. De igual manera se omitió añadir un constrain ya

que se añade dentro de la configuración en Vivado.

4. En la sección de selección de tarjetas, se seleccionó la opción “ZedBoard Zynq Evaluation and

Development Kit” ya que es la tarjeta FPGA que se utiliza.

5. Se finaliza la configuración del proyecto.

Los pasos necesarios para generar un nuevo proyecto en Vivado son los siguientes:

Diagrama de bloques del hardware

Los pasos necesarios para generar un diagrama de bloques en Vivado son los siguientes:

101

1. En la sección “IP Integrator” se selecciona la herramienta “Create Block Design” donde se

configura el nombre del diseño, así como el directorio donde se almacenará. Vivado configura

el entorno donde se agregan las IPs necesarias para el proyecto.

2. Con la herramienta “Add IP” se agregan los bloques IPs, comenzando con el bloque “ZYNQ7

Processing System”, configurándolo activando únicamente el periférico “UART 1” y “Quad

SPI Flash”.

3. Con la herramienta “Run Block Automation” se conecta el bloque de manera automática.

4. Se añade el bloque IP_ADC_RAM agregado previamente en la lista de IPs mencionada en

el apéndice B.

5. De igual manera se selecciona la opción “Run Block Automation” para conectar el bloque

IP_ADC_RAM al ZYNQ.

6. Los pines CS, sclk, ds0 y ds1 son configurados como pines externos con la opción “Make

External”.

7. Se valida el diseño con la herramienta “Validate Design”.

8. En la pestaña “Sources” se expande el archivo “Designe Sources”.

9. Sobre el archivo “design_1.bd” se abre el submenú con “click” derecho y se selecciona la

opción “Create HDL Wrapper”, permitiendo que Vivado configure de manera automática esta

opción.

10. Para finalizar se corre la síntesis del proyecto y la implementación del mismo.

102

Apéndice D

Generar un constrain

Los pasos necesarios para generar un constrain para el proyecto en Vivado son los siguientes:

1. Se sintetiza el proyecto.

2. En la sección “Flow navigator” dentro del apartado “Synthesis” se selecciona la herramienta

“Synthesis design”.

3. Vivado abre el entorno de la síntesis del diseño y en la herramienta “Windows” se selecciona

la opción “I/O ports”.

4. Se abre la ventana de configuración de puertos donde se asignan las direcciones físicas de la

FPGA y se selecciona la tecnología “LVCMOS33”.

5. Se guardan los cambios y se nombra el nuevo constrain.

6. Automáticamente se agrega el archivo a fuentes.

103

Apéndice E

Generar un proyecto en SDK

Los pasos necesarios para generar un proyecto en SDK son los siguientes:

1. Dentro del proyecto de Vivado, en la sección “File” se selecciona la opción “Launch SDK”

donde se elige la ubicación que contiene el hardware diseñado.

2. SDK se abre automáticamente configurando el entorno de trabajo.

3. Para crear un nuevo proyecto, en el menú “File” sección “New” se selecciona la opción “Ap-

plication Project”.

4. En la personalización se colocó el nombre del proyecto y el lenguaje de programación.

5. Para este trabajo se eligió una plantilla tipo “Hello World”, con una configuración preestable-

cida del proyecto.

6. Se abre el entorno de trabajo con la configuración establecida.

104

Apéndice F

Programar hardware y software en

FPGA con SDK

Finalizado el diseño del hardware se carga el archivo del proyecto ejecutando los pasos

siguientes: Dentro de SDK en la opción “Xilinx Tools”.

1. Dentro de SDK en la opción “Xilinx Tools”.

2. Se selecciona la herramienta “Program FPGA”.

3. En la ventana emergente se especifica la plataforma de harware a programar y el archivo *.bit

4. Se selecciona la opción “Program”.

5. Al finalizar la barra de estado la FPGA queda con el hardware cargado.

Finalizado el diseño del software se carga el archivo del proyecto ejecutando la combinación de

teclas ctrl + F11 ó en la opción “Run” se selecciona la herramienta “Run”.

105

Apéndice G

Interpretación de medidas obtenidas

por matriz de confusión en la evaluación

del sistema y ecuaciones para su

obtención

Exactitud: Representa la proporción del número total de predicciones que son correctas, es

decir, se refiere a lo cerca que está del valor verdadero. Se calcula con (G.1).

Exactitud =V P + V N

V P + FN + FP + V N(G.1)

Precisión: Es la proporción de casos positivos predichos que fueron clasificados correctamen-

te, es decir, se refiere a la dispersión del conjunto de casos positivos predichos. Se calcula con

(G.2).

Precisión =V P

V P + FP(G.2)

Sensibilidad o Tasa de Verdaderos Positivos: Es la proporción de verdaderos positivos

que fueron identificados correctamente. Se calcula con (G.3).

Sensibilidad =V P

V P + FN(G.3)

106

Tasa de Falsos Positivos o TFP: Es la proporción de casos negativos que fueron clasificados

positivamente. Se calcula con (G.4).

TFP =FP

FP + V N(G.4)

Especificidad o Tasa de Verdaderos Negativos: Es la proporción de casos negativos que

fueron correctamente clasificados. Se calcula con (G.5).

Especificidad =V N

FP + V N= 1− TFP (G.5)

Tasa de Falsos Negativos o TFN: Es la proporción de casos positivos que fueron clasifi-

cados negativamente. Se calcula con (G.6).

TFN =FN

FN + V P(G.6)

107

Apéndice H

Interpretación de medidas obtenidas

por gráfico ROC en la evaluación del

sistema y ecuaciones para su obtención

Las tasas de falsos negativos y falsos positivos varían para cada sistema biométrico en función

del umbral que se establezca para determinar si una puntuación obtenida por el sistema

corresponde a un sujeto identificado o a un impostor.

Por este motivo, una medida para comparar sistemas de verificación es la tasa de error

equivalente o tasa de igual error (EER: Equal Error Rate), es el punto en que se intersecan

las curvas de TFP y TFN en función del umbral. Entre más cercano al 0% mejor es el

comportamiento del sistema. En la curva ROC la tasa de igual error se ve en el punto que

interseca la curva ROC con la diagonal que va del punto (0,1) a (1,0).

El punto de corte de una escala continua que determina la sensibilidad y especificidad más

alta es aquel que presenta el mayor índice de Youden, calculado con (H.1). Gráficamente,

corresponde al punto de la curva ROC más cercano al ángulo superior izquierdo del gráfico

(punto(0,1)), donde la sensibilidad (TVP) y especificidad (TVN) son 100%.

Índice de Youden = sensibilidad+especificidad-1 (H.1)

El índice de Youden identifica el punto de corte que determina la sensibilidad y especificidad

más alta conjuntamente, es decir para un mismo punto, sin embargo, dicho punto de corte

108

no necesariamente determina la sensibilidad ni la especificidad más alta que podría alcanzar

el clasificador.

El área bajo la curva (AUC, por sus siglas en ingles, Area Under the Curve) indica la capacidad

discriminativa en un clasificador. El AUC refleja que tan bueno es el clasificador a lo largo

de todo el intervalo de puntos de umbral posibles.

Ya que los límites del espacio ROC se encuentran en valores entre 0 y 1, se delimita un

cuadrado cuya área es de 1, por lo que si el clasificador otorga una AUC igual a 0.50 indica

que coincide con la estrategia de adivinar al azar una clase, por lo que a medida que el AUC

se acerca al valor de 1 (clasificador perfecto) mayor es su capacidad discriminativa.

109

Bibliografía

[1] Xilinx. Introduction to embedded system design using zynq. Technical report, Xilinx Inc.,

2015.

[2] Marco AF Pimentel, Alistair EW Johnson, Peter H Charlton, Drew Birrenkott, Peter J Wat-

kinson, Lionel Tarassenko, and David A Clifton. Toward a robust estimation of respiratory

rate from pulse oximeters. IEEE Transactions on Biomedical Engineering, 64(8):1914–1923,

2016.

[3] Vasu Jindal, Javad Birjandtalab, M Baran Pouyan, and Mehrdad Nourani. An adaptive deep

learning approach for ppg-based identification. In 2016 38th Annual international conference

of the IEEE engineering in medicine and biology society (EMBC), pages 6401–6404. IEEE,

2016.

[4] Nur Azua Liyana Jaafar, Khairul Azami Sidek, and Siti Nurfarah Ain Mohd Azam. Acce-

leration plethysmogram based biometric identification. In 2015 International Conference on

BioSignal Analysis, Processing and Systems (ICBAPS), pages 16–21. IEEE, 2015.

[5] Nazneen Akhter, Sumegh Tharewal, Hanumant Gite, and KV Kale. Microcontroller based rr-

interval measurement using ppg signals for heart rate variability based biometric application. In

2015 International Conference on Advances in Computing, Communications and Informatics

(ICACCI), pages 588–593. IEEE, 2015.

[6] Luke Everson, Dwaipayan Biswas, Madhuri Panwar, Dimitrios Rodopoulos, Amit Acharyya,

Chris H Kim, Chris Van Hoof, Mario Konijnenburg, and Nick Van Helleputte. Biometricnet:

Deep learning based biometric identification using wrist-worn ppg. In 2018 IEEE International

Symposium on Circuits and Systems (ISCAS), pages 1–5. IEEE, 2018.

110

[7] Qingxue Zhang, Dian Zhou, and Xuan Zeng. Heartid: A multiresolution convolutional neural

network for ecg-based biometric human identification in smart health applications. Ieee Access,

5:11805–11816, 2017.

[8] Emna Kalai Zaghouani, Adel Benzina, and Rabah Attia. Ecg based authentication for e-

healthcare systems: Towards a secured ecg features transmission. In 2017 13th International

Wireless Communications and Mobile Computing Conference (IWCMC), pages 1777–1783.

IEEE, 2017.

[9] João Pinto, Jaime Cardoso, André Lourenço, and Carlos Carreiras. Towards a continuous

biometric system based on ecg signals acquired on the steering wheel. Sensors, 17(10):2228,

2017.

[10] Dhouha Rezgui and Zied Lachiri. Ecg biometric recognition using svm-based approach. IEEJ

Transactions on Electrical and Electronic Engineering, 11:S94–S100, 2016.

[11] André Cigarro Matos, André Lourenço, and José Nascimento. Embedded system for individual

recognition based on ecg biometrics. Procedia Technology, 17:265–272, 2014.

[12] Ing. Denisse Escarlette Mancilla Palestina. Análisis de características estadisticamente signi-

ficativas, en el dominio temporal de señales ecg y ppg, para identificación biométrica bimodal.

Master’s thesis, Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE), 2019.

[13] Pascual Ejarque Monserrate. Normalización estadística para fusión biométrica multimodal.

Universitat Politècnica de Catalunya, 2011.

[14] Jucheng Yang and Shan Juan Xie. New Trends and Developments in Biometrics. 2012.

[15] César Tolosa Borja and Álvaro Giz Bueno. Sistemas biometricos. Obtenido de http://es.

slideshare. net/matutexmat/trabajo-biometria, 2009.

[16] César Medina Salgado. Los sistemas de identificación biométrica. una herramienta de control

organizacional. 2006.

[17] Yanelly Karol Quispe Vergaray. Identificación de personas a partir de un sistema biométrico

bimodal audio-visual. 2017.

[18] JC Zapata, CM Duque, Y Rojas-Idarraga, ME Gonzalez, JA Guzmán, and MA Becerra Bo-

tero. Data fusion applied to biometric identification–a review. In Colombian Conference on

Computing, pages 721–733. Springer, 2017.

111

[19] Alfonso Villarán. Biometría, fenología y razón de sexos del ruiseñor bastardo (cettia cetti) en

carrizales del valle del tajo (españa central). Butlletí del Grup Català dÁnellament, 17:1–9,

2000.

[20] Waleed Dahea and HS Fadewar. Multimodal biometric system: A review.

[21] Gerardo Pozas Garza. El electrocardiograma y su tecnología. Revista de Divulgación Médico

Científica AVANCES, 8(24):27–31, 2011.

[22] Cristian Vidal-Silva and Valeska Gatica-Rojas. Diseño e implementación de un sistema elec-

trocardiográfico digital. Revista Facultad de Ingeniería, (55):99–107, 2010.

[23] Luis Azcona. El electrocardiograma. López Farré A, Macaya Miguel C, directores. Libro de

la salud cardiovascular del Hospital Clínico San Carlos y la fundación BBVA. 1a ed. Bilbao:

Fundación BBVA, pages 49–56, 2009.

[24] Umang Natubhai Yadav. On Establishing PPG Biometrics for Human Recognition: Feasibility

and Variability. PhD thesis, 2018.

[25] David Martín Sánchez and María de Mar Elena Pérez. Diseño de un dispositivo para la detec-

ción del estrés a partir de la señal de fotopletismografía. Trabajo Fin de G, Escuela Técnica

Superior De Ingeniería Grado En Ingeniería De Las Tecnologías De Telecomunicación, Sevilla,

2014.

[26] Ing. Denisse Escarlette Mancilla Palestina: Ing. José Alfredo Jiménez Duarte. Prueba anova

como discriminador en la extracción de características de señales en una dimensión. En este

trabajo se describe la metodología utilizada para la implementación del análisis de la varianza,

como discriminador estadístico en la selección de técnicas, para la extracción de características

en señales electrocardiográficas.

[27] Jay L Devore. Probabilidad y estadística para ingenierías y ciencias. Cengage Learning Edi-

tores, 2008.

[28] Robert GD Steel and James H Torrie. Bioestadística: principios y procedimientos. McGraw-

Hill, 1985.

[29] Marcos Raphael Benítez Aldás et al. Estudio y análisis de métodos para la extracción de

características y clasificación de emociones basados en eeg. Master’s thesis, 2018.

[30] Armando Navarro Rodríguez. Clasificación de actividad motora real versus imaginaria a partir

de señales electroencefalográficas. Tesis (Maestría en Ciencias de la Computación). Ciudad

112

de México, Instituto Politécnico Nacional, Sección de Estudios de Posgrado e Investigación,

Centro de Investigación en Computación., 2016.

[31] JUAN PABLO ARIAS APARICIO. EVALUACIÓN DE PRONUNCIACIÓN POR TONO

PARA ENSEÑANZA DE SEGUNDO IDIOMA. UNIVERSIDAD DE CHILE FACULTAD

DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE INGENIERÍA ELÉC-

TRICA, 2008.

[32] Xiaoyue Wang, Abdullah Mueen, Hui Ding, Goce Trajcevski, Peter Scheuermann, and Eamonn

Keogh. Experimental comparison of representation methods and distance measures for time

series data. Data Mining and Knowledge Discovery, 26(2):275–309, Mar 2013.

[33] Manuel Ignacio Paredes Vera. Diseño de simulación de un sistema de reconocimien-

to del habla, aplicando el algoritmo de alineamiento temporal dinámico en Matlab.

http://www.dspace.espol.edu.ec/handle/123456789/10172, 2010.

[34] PAC-Performance centered Adaptive Curriculum for Employment Needs Programa ERAS-

MUS: Acción Multilateral 517742-LLP-1-2011-1-BG-ERASMUS-ECUE. Controladores indus-

triales de diseño de alto nivel. Sistemas Embebidos (ES) , INGENIERÍA DE LOS SISTEMAS

EMBEBIDOS (HARDWARE -HW).

[35] Laura García Santamaría. Desarrollo de un motor de reconfiguración hw para plataformas

zynq. 2017.

[36] g.tec medical engineering GmbH, 4521 Schiedlberg, Sierningstrasse 14, Austria. Sensors and

Utilities Instructions for use V1.14.00, v1.14.00 edition.

[37] Data Sheet AD8232. Single-lead, heart rate monitor front end.

[38] Digilent Inc. Pmod ad1 reference manual.

[39] Harry Nyquist. Certain topics in telegraph transmission theory. Transactions of the American

Institute of Electrical Engineers, 47(2):617–644, 1928.

113