Você está na página 1de 40

INGENIERA BIOMDICA

DESARROLLO DE UNA INTERFACE GRFICA PARA UN ELECTROCARDIGRAFO PORTTIL

ALUMNA: MARA EUGENIA CALVA ROJAS


ASESOR: DONACIANO JIMNEZ VZQUEZ

_________________________ Asesor Donaciano Jimnez Vzquez

________________________ Alumna Mara Eugenia Calva Rojas

Julio de 2008

NDICE

Introduccin. 1 Antecedentes 2 Creando una GUI en Matlab 3 Propiedades de los controles 3 Tipos de Objetos.. 4 Editor de Mens... 5 Objetivo 6 Descripcin de la inteface.... 6 Interface Grfica (ECG Porttil).......... 8 Resultados... 21 Comentarios.... 27 Conclusiones... 28 Anexo A...... 29 Bibliografa. 38

INTRODUCCIN La herramienta Matlab nos proporciona la posibilidad de aprovechar todo su potencial operativo pero con grficos orientados al usuario. Sin duda esto presenta una ventaja para usuarios que no tienen experiencia en trabajar con Matlab debido a la sencillez de la interface grfica. Por parte del programador, todas las funciones se pueden implementar en dichos entornos. Las variables o valores se pueden asignar a funciones a travs de botones, barras de desplazamiento, checkbox, etc. Y los resultados se pueden mostrar en un cuadro de textos, en una lista de valores o incluso en una grfica enmarcada de la propia interface. El propsito de este proyecto consiste en desarrollar una interface grfica para un electrocardigrafo porttil*. El cual cuenta con las siguientes caractersticas: 1. Adquisicin de la seal. Mediante una terminal de 3 electrodos conectados al paciente y a la placa mediante un cable trenzado. 2. Etapa de amplificacin analgica. Una de las partes ms destacadas, puesto que la seal que recibe es muy dbil y debe ser amplificada, evitando el ruido. 3. Funcionamiento del microcontrolador PIC18F452. Se ha elaborado un programa escrito en ensamblador para hacer la conversin analgica-digital de la seal del ECG y configurado la USART del PIC para enviar los datos a la PC. 4. Interfaz de comunicacin entre el PC y la placa. Se utilizo el protocolo de comunicacin RS-232. Dentro de las caractersticas indispensables de la interface se encuentran las siguientes: Fcil manejo. Contar con las instrucciones adecuadas en tiempo de ejecucin. Amigable para el usuario final. Con esto aseguraremos un manejo ptimo y adecuado del software.

ANTECEDENTES MATLAB es un lenguaje de alto desempeo diseado para realizar clculos tcnicos. MATLAB integra el clculo, la visualizacin y la programacin en un ambiente fcil de utilizar donde los problemas y las soluciones se expresan en una notacin matemtica. MATLAB es un sistema interactivo cuyo elemento bsico de datos es el arreglo que no requiere de dimensionamiento previo. Esto permite resolver muchos problemas computacionales, especficamente aquellos que involucren vectores y matrices, en un tiempo mucho menor al requerido para escribir un programa en un lenguaje escalar no interactivo tal como C o Fortran. MATLAB se utiliza ampliamente en: Clculos numricos Desarrollo de algoritmos Modelado, simulacin y prueba de prototipos Anlisis de datos, exploracin y visualizacin Graficacin de datos con fines cientficos o de ingeniera. Desarrollo de aplicaciones que requieran de una interfaz grfica de usuario (GUI, Graphical User Interface). En el mbito acadmico y de investigacin, es la herramienta estndar para los cursos introductorios y avanzados de matemticas, ingeniera e investigacin. En la industria MATLAB es la herramienta usada para el anlisis, investigacin y desarrollo de nuevos productos tecnolgicos. La ventaja principal de MATLAB es el uso de familias de comandos de reas especficas llamadas toolboxes. Lo ms importante para los usuarios de MATLAB es que los toolboxes le permiten aprender y aplicar la teora. Los toolboxes son grupos de comandos de MATLAB (archivos M) que extienden el ambiente de MATLAB para resolver problemas de reas especficas de la ciencia e ingeniera. Por ejemplo, existen toolboxes para las reas de Procesamiento Digital de Seales, Sistemas de Control, Redes Neuronales, Lgica Difusa, Wavelets, etc. Acerca de GUIDE Las interfaces grficas de usuario (GUI-Graphical User Interface en Ingls), es la forma en que el usuario interacta con el programa o el sistema operativo de una computadora. Una GUI contiene diferentes elementos grficos tales como botones, campos de texto, mens, grficos, etc. Existen diferentes lenguajes de programacin que permiten crear una GUI tales como: C, Visual Basic, TK, etc., solo por mencionar algunos. Todos ellos permiten usar diferentes controles y maneras de programarlos, Matlab nos permite realizar GUIs de una manera sencilla usando GUIDE (Graphical User Interface Development Enviroment).

Creando una GUI en Matlab Una de las tantas herramientas con las que cuenta Matlab, es la creacin de GUIs. La forma de implementar las GUI con Matlab es crear los objetos y definir las acciones que cada uno va a realizar. Al usar GUIDE obtendremos dos archivos: Un archivo *.FIG: Contiene la descripcin de los componentes que contiene la interfase. Un archivo *.M: Contiene las funciones y los controles del GUI as como el callback. Un callback se define como la accin que llevar a cabo un objeto de la GUI cuando el usuario lo active. Para ejemplificarlo, suponga que en una ventana existe un botn el cual al presionarlo ejecutar una serie de acciones, a eso se le conoce como la funcin del callback. Iniciando GUIDE Para crear una GUI en Matlab tecleemos guide en la ventana de comandos de Matlab. Seleccionaremos la opcin Default GUI. Figura 1

Figura 1.

En la pantalla se aparecer la un rea de diseo similar a la de la Figura 2.

Figura 2.

En la parte superior se encuentran los mens y opciones de GUIDE, en la parte izquierda se aprecian los diferentes controles y en la parte central el rea de diseo donde pondremos los controles a usar. Propiedades de los controles: Las propiedades varan dependiendo del control a usar, a continuacin se explican las ms comunes (Figura 3): Background Color: Cambia el color del fondo del control. Callback: La propiedad ms importante del control, ya que le dice al control que hacer cuando este se active. Enable: Activa o desactiva un control String: En el caso de botones, cajas de texto, texto esttico; es el texto que muestra el control. Tag: Otra de las propiedades ms importantes ya que con este es posible regresar datos o identificar al control.

Figura 3.

Tipos de Objetos:

Activar Adquisicin Procesar ECG Identificar complejos QRS Desplegar FFT Para seleccionar que ventana de grfico quiero limpiar; la de ECG o FFT. Para desplegar el valor calculado de VFC Para visualizar todas las muestras del registro en la ventana. Para enmarcar los objetos con funciones relacionadas. Para colocar el nombre de la ventana de adquisicin. Editor de Mens
Nuevo Submen Nombre que aparece en la interface

Nuevo men

Nombre que se maneja en el cdigo de programacin

Objetivo: Este proyecto es la continuacin de la tesis Electrocardigrafo Porttil*. El objetivo es el desarrollo de una interface grfica en Matlab para este electrocardigrafo porttil, la cual debe ser confiable, clara y amigable para el usuario: Descripcin de la Interface Invocacin de la portada de presentacin del ECG

Inicia la inteface del ECG porttil

Nueva adquisicin

(Cargar/Guardar) Adquisicin

Procesar adquisicin

Inicializacin del objeto (puerto) para la adquisicin

Definicin del men de opciones (Cargar/Guardar)

Definicin de los objetos para el procesamiento

Definicin de caractersticas: -Tipo de puerto -Nombre del puerto -Modo de adquisicin -Tamao del buffer de entrada

Definicin de los tipos de archivos que se pueden cargar (Load) y Guardar (Save). Tipo de extensiones y direcciones donde se leern los archivos en el Load y donde se almacenarn en el Save.

Se emplearn botones para activar las funciones, ejes para desplegar grficos y cuadros de texto esttico para desplegar valores obtenidos del procesamiento.

Jimnez Santiago Gonzalo, Meja Gonzlez Jaime. Electrocardigrafo Porttil. Tesis Lic. Ing. Biomdica UAM-I 2007

Adquirir un nuevo registro o El usuario elegir el tiempo de adquisicin con un tiempo lmite de 10 minutos. o Procesar el nuevo registro Cargar un archivo de datos (Registro de ECG) con extensin *.dat. o Desplegar la grfica en pantalla o Procesar la seal como si hubiera sido recin adquirida Guardar archivos o Se guardar en un archivo el registro de la seal como una tabla de nmeros. o Se podr guardar la pantalla desplegada en un archivo de imagen con extensin *.bmp. Procesamiento de la seal o Filtrado de la seal (para eliminar la mayor cantidad de interferencia posible) o Reconocer los complejos QRS a travs de un filtro tipo ventana o Graficar la Transformada Rpida de Fourier (FFT) o Calcular la Variabilidad de la Frecuencia Cardiaca (VFC) Con el editor de Mens construimos el que ser necesario para llevar a cabo las siguientes funciones: o Load: Carga un archivo que contenga datos que puedan graficarse o procesarse. o Save: Pantalla: Guarda un archivo con *.BMP con la imagen actual en la interface. Datos: Guarda un archivo *.DAT con los datos adquiridos del ECG Porttil. o Salir: Cierra la interfase y regresa a la pantalla principal de Matlab.

INTERFACE GRFICA (ECG PORTATL) % -------------------------------------------------------------------Men principal Options

% -------------------------------------------------------------------% --- Codigo del menu principal Options function Options_Callback(hObject, eventdata, handles) % hObject handle to Opciones (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------Submen Save

% -------------------------------------------------------------------function Save_Callback(hObject, eventdata, handles) % hObject handle to Save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------Submen Pantalla

% -------------------------------------------------------------------% --- Guarda una impresion de la pantalla actual function Screen_Callback(hObject, eventdata, handles) % hObject handle to Screen (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) print -dbitmap; msgbox(' Imagen en el portapapeles')

10

% -------------------------------------------------------------------Submen Load

% -------------------------------------------------------------------function Load_Callback(hObject, eventdata, handles) % hObject handle to Load (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.axes1) newplot; %prepara el axes1 para una nueva grfica colordef black; %Permite al usuario elegir el archivo de los datos que desea desplegar en pantalla. [filename, pathname] = uigetfile({'*.dat'},'File Selector'); if(filename~=0) archivo=[pathname filename]; ECG1=load(archivo);%Carga el archivo de datos a la variable ECG1 plot(ECG1,'b'); grid on; % Se etiquetan los ejes y se define el tamao de la letra ylabel('\bf Amplitud','Fontsize',8); xlabel('\bf Muestras','Fontsize',8); axis([0 3000 (min(ECG1)-1) (max(ECG1)+200)]); set(handles.Procesa,'enable','on'); % Se habilita el botn para procesar la seal handles.original=ECG1; guidata(hObject,handles); end;

11

% -------------------------------------------------------------------Submen Datos

% -------------------------------------------------------------------function Datos_Callback(hObject, eventdata, handles) % hObject handle to Datos (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) ecg=handles.original; % --- Pide al usuario el nombre para el archivo de datos y el path para guardarlo [file,path] = uiputfile({'*.dat'},'Save as'); if(file~=0) nom=[path file]; end if(file~=0) save(nom,'ecg','-ascii'); msgbox(' Archivo Listo!!','Aviso') end

12

% --------------------------------------------------------------------

Submen Salir

% -------------------------------------------------------------------function Salir_Callback(hObject, eventdata, handles) % hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -- Solicita la confirmacin de salida ans=questdlg('Desea salir del programa?','SALIR','Si','No','No'); if strcmp(ans,'No') return; end clear,clc,close all % --------------------------------------------------------------------

Botn para iniciar adquisicin

% -------------------------------------------------------------------% --- Executes on button press in Play. % --- Solicita al usuario el tiempo de adquisicin en minutos % --- la respuesta se almacena en la variable resp %
answer = inputdlg({'Tiempo de Adquisicin'}); resp = str2num(answer{1}); % % --- El tiempo en minutos se transforma en numero de muestras

13

% --- y este valor se almacena en la variable tam % numc=resp/0.05; tam=numc*3000; % % --- Configuracin del puerto % s=serial('COM1'); set(s,'ReadAsyncMode', 'continuous'); set(s,'InputBufferSize',3000); %tamao del buffer de entrada tiempo=[0:2999]; %vector del mismo tamao que le buffer fopen(s); %se abre el puerto fprintf(s,'*IND?'); set(hObject,'BackgroundColor',[0.99 0 0]); %Cambiando el color del botn PLAY % %Cambiando la etiqueta PLAY por ADQUIRIENDO % set(hObject,'String','ADQUIRIENDO'); set(hObject,'enable','off'); %Deshabilitar el botn PLAY para no interrumpir la adquisicin if ~isempty(answer) i=0; while i<numc datos=fread(s); plot(datos,'b'); grid on; set(gcf,'doublebuffer','on') drawnow; i=i+1; if i==1 data=datos; end if i>1 data=cat(2,data,datos); end end senial=reshape(data,1,tam); fclose(s); % Cierra el puerto delete(s); %Limpiamos la variable s despus de cerrar el puerto handles.tam=tam; handles.original=senial; % % Regresamos el botn PLAY a su color original % set(hObject,'BackgroundColor',[0 0.502 0.753]); % % Regresamos la etiqueta original PLAY % set(hObject,'String','PLAY'); set(hObject,'enable','on'); % Habilitamos el botn set(handles.Procesa,'enable','on'); %Habilitamos el botn para procesar la seal guidata(hObject,handles); end

14

% --------------------------------------------------------------------

Botn para procesar la seal

% -------------------------------------------------------------------% --- Executes on button press in Procesa. function Procesa_Callback(hObject, eventdata, handles) % hObject handle to Procesa (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.axes1) newplot; colordef black; ECG1=handles.original; N=size(ECG1); ECG=(ECG1-mean(ECG1))/(500); B=[1 0 0 0 0 0 -2 0 0 0 0 0 1]; A=[1 -2 1]; %s1 es la seal resultante del primer filtrado s1=filter(B,A,ECG); hold on; plot(s1/max(s1),'g'); grid on; %Se grafica s1 set(handles.FC,'enable','on'); % Habilita el botn para calcular la frecuencia cardiaca % Habilita el botn para graficar las ventanas que identican los complejos QRS set(handles.QRS,'enable','on'); % Habilita el botn para graficar el FFT set(handles.FFT,'enable','on'); handles.senial=s1; handles.ecg=ECG; guidata(hObject,handles);

15

% --------------------------------------------------------------------

Botn para identificar los complejos QRS

% -------------------------------------------------------------------% --- Executes on button press in QRS. function QRS_Callback(hObject, eventdata, handles) % hObject handle to QRS (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.axes1) newplot; colordef black; %Filtro Pasa-altas %Definimos las caractersticas del filtro pasa-bajas %Sabemos que un filtro puede ser definido con un par de %polinomios que caracterizaran %los polos y ceros de este y as definimos A, B y C. ECG=handles.ecg; s1=handles.senial; B=zeros(1,33); %Comando para generar una matriz de tamao 1* 33 B(1)=1; B(33)=-1; %Se definen el primer y ultimo elemento como 1 y -1 A=[1 -1]; C=zeros(1,17); C(17)=1; s2=filter(C,1,s1)-filter(B,A,s1)/32; %s2 es la seal resultante del segundo filtrado %Filtro Derivador %Definimos las caractersticas del filtro derivador. B=[0.2 0.1 0 -0.1 -0.2]; s3=filter(B,A,s2); %s3 es la seal resultante del tercer filtrado %Area bajo la curva QRS %Grfica para mostrar el rea bajo la curva QRS N=30;delay=30; B=ones(1,N)/N; s4=s3.^2; s4=filter(B,1,s4);%s4 es la seal resultante del segundo filtrado %Filtro Ventana (Duracion del QRS) %En este grafico podemos visualizar a travs de ventanas de tiempo la curva QRS. det=s4>(0.125*(max(s4)/2));%Operacin para definir el tiempo de duracin de la ventana det(1:delay)=[]; %Se define el retardo para que ocurra una nueva ventana plot(max(ECG)*det,'m:'); %Se grafica la ventana de tiempo hold off;

16

% --------------------------------------------------------------------

Botn para calcular la VFC y desplegarla en el cuadro de texto esttico en Lat/min

% -------------------------------------------------------------------% --- Executes on button press in VFC. %%%Calcula la variabilidad de la frecuencia cardiaca % Utilizando un algoritmo de deteccin de ondas R function VFC_Callback(hObject, eventdata, handles) % hObject handle to VFC (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
s=handles.ventana; s4=handles.segunda; cuenta=0; for n=1:5000 dif=s(n+1)-s(n); if dif==max(s) cuenta=cuenta+1; end end NumInt=cuenta; aint=int16(5000/NumInt); may=s4(1); t0=0; t1=0; ini=1; fin=aint; j=1; for i=1:NumInt for n=ini:fin if may<s4(n+1) may=s4(n+1); t0=n+1; R(j)=t0; end end may=s4(1); ini=fin; fin=fin+aint;

17

j=j+1; end l=1; sup=int16(NumInt/2); for i=1:sup-1 FC(l)=60/(double(R(2*i)-R(2*i-1))/500); l=l+1; end VFC=median(FC); set(handles.text2,'string',VFC);

% --------------------------------------------------------------------

% -------------------------------------------------------------------% Ventana de Despedida % --- Executes during object deletion, before destroying properties. function Pantalla_DeleteFcn(hObject, eventdata, handles) % hObject handle to Pantalla (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) msgbox('Buena Suerte..','Despedida','help') % -------------------------------------------------------------------% --- Executes on button press in CLEAR. function CLEAR_Callback(hObject, eventdata, handles) % hObject handle to CLEAR (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------Botn para desplegar grfico FFT

% -------------------------------------------------------------------% --- Executes on button press in FFT. function FFT_Callback(hObject, eventdata, handles) % hObject handle to FFT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
axes(handles.axes2) newplot; colordef black;

18

s=handles.senial; s1=s(1:250); n=length(s1); power=abs(s1(1:floor(n/2))).^2; nyquist=250; freq=(1:n/2)/(n/2)*nyquist; stem(freq,power,'c'); ylabel('\bf Amplitud','Fontsize',8);xlabel('\bf Frecuencia','Fontsize',8); title('\bf FFT');

% -------------------------------------------------------------------% --- Executes during object creation, after setting all properties. function Rango_CreateFcn(hObject, eventdata, handles) % hObject handle to Rango (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % -------------------------------------------------------------------% --- Executes on slider movement. function Rango_Callback(hObject, eventdata, handles) % hObject handle to Rango (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider value=get(hObject,'value'); set(handles.text5,'string',value);

19

%--------------------------------------------------------------------------

Limpiar ejes del ECG

%-------------------------------------------------------------------------% Limpia axes de ECG % --- Executes on radiobutton press in ECG. function ECG_Callback(hObject, eventdata, handles) % hObject handle to ECG (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of ECG axes(handles.axes1) %con esto selecciona el eje a utilizar. hold off; newplot; set(handles.ECG,'value',1) set(handles.RFFT,'value',0) %-------------------------------------------------------------------------Limpiar ejes del FFT

%-------------------------------------------------------------------------% --- Executes on radiobutton press in RFFT. function RFFT_Callback(hObject, eventdata, handles) % hObject handle to RFFT (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2) %con esto selecciona el eje a utilizar. hold off; newplot; set(handles.RFFT,'value',1) set(handles.ECG,'value',0)

20

%--------------------------------------------------------------------------

Barra de desplazamiento del ECG

% Hint: get(hObject,'Value') returns toggle state of RFFT %-------------------------------------------------------------------------% --- Executes during object creation, after setting all properties. function slider1_CreateFcn(hObject, eventdata, handles) % hObject handle to slider1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[0, 0.502, 0.753]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end %-------------------------------------------------------------------------% --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles) % hObject handle to slider1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider %value=get(handles.slider1,'value'); tam=length(handles.original); handles.slider1=get(hObject,'Value'); handles.slider1= handles.slider1*tam; if handles.slider1==0 handles.slider1=handles.slider1+0.1; % Valor mnimo que puede adquirir el slider (0.1) end set(handles.axes1,'Xlim',[handles.slider1 handles.slider1+2000]); guidata(hObject,handles);

21

Ntese que se hizo una breve descripcin del funcionamiento y del cdigo de cada elemento en la interface, considerando los elementos ms relevantes de la interface.

Para obtener finalmente una pantalla como la siguiente:

Ejes del ECG

Ejes del FFT

Interface completa del ECG Porttil

22

RESULTADOS Para invocar a la interfase tecleemos ECG en la ventana de comandos de Matlab. o Tecleamos el nombre del archivo de bienvenida en este caso fue presentacin. o En seguida aparecer la pantalla de la siguiente ventana.

Entrar al ECG Porttil

Ventana de introduccin a la interface del ECG Porttil.

Con el botn CONTINUAR ingresaremos a la interfase que se muestra el la siguiente ventana:

Muestra todos los botones de la interface activados

23

CASO No.1 Cargando un archivo *.dat que contiene los datos de un individuo corriendo en una bicicleta fija durante un perodo de 5 minutos.

Botones Desactivados

Como podemos observar al cargar o realizar una nueva adquisicin el archivo se grafican los datos y se activa el botn PROCESA para aplicarle los filtros correspondientes a la seal.

24

Despus de procesar la seal se activan los botones restantes para detectar el complejo QRS de la seal, calcular la Variabilidad de la Frecuencia Cardiaca (VFC) del individuo y determinar la FFT. El anlisis tiempo frecuencia de un ECG refleja segundo a segundo las variaciones en la frecuencia fundamental, pudindose detectar rpidamente cambios en la frecuencia, regularidades, amplitud, forma de onda y estructura de la seal.

Ventana despus de procesar la seal

La figura muestra cuales son los resultados obtenidos despus de filtrar la seal, calcular su transformada rpida de Fourier (FFT) y la variabilidad de la frecuencia cardiaca (VFC).

25

CASO No.2 En este caso el individuo se encuentra en reposo.

26

Ruido

ECG Original

ECG Filtrado

Podemos observar claramente como se elimin de las componentes de ruido en la seal sin alterar la forma de la seal.

27

Tanto el anlisis temporal como frecuencial de la variabilidad de la frecuencia cardiaca (VFC) estn basados en la medida directa de la duracin del intervalo RR (tiempo entre dos ondas R consecutivas en el electrocardiograma, ECG). t1 t2

VFC = 136.364 lat/min t1 t2

VFC = 64.4933 lat/min

28

Comentarios: Los datos de muestra para presentar los resultados fueron facilitados por el departamento de FISIOLOGA CARDIOVASCULAR- RESPIRATORIA de la UAM Iztapalapa. El sistema y lenguaje MATLAB simplifica los clculos del lgebra lineal. El enfoque matricial de su estructura permite diversas maneras de procesamiento de los arreglos de datos. Se dispone tambin de las herramientas necesarias para resolver algunos problemas en los que resulta difcil integrar, diferenciar o determinar valores especficos de funciones que requieran aproximaciones numricas de la solucin deseada. Los filtros digitales representan alternativas tiles para el anlisis digital del ECG. Estos algoritmos permiten el estudio de las bioseales en el dominio de la frecuencia y constituyen una herramienta adicional para el diagnstico mdico.

29

Conclusiones: El objetivo de este proyecto fue desarrollar una interface con caractersticas especficas como es la precisin en la medicin de la Variabilidad de la Frecuencia Cardiaca ya que este valor representa una variable fisiolgica de gran importancia para el diagnostico que el mdico est realizando. Tambin es importante que el usuario final encuentre un ambiente amigable en el equipo que est manejando lo cual conlleva a que tenga una mayor confianza en lo que est realizando y reducir as el error en el manejo del equipo y por consiguiente tambin reducir el error en el diagnstico. En cuanto a la confiabilidad en la medicin de la Variabilidad de la Frecuencia Cardiaca (VFC) tenemos que se encuentra en un 99% lo cual es aceptable para el usuario pero los requerimientos en cuanto a la memoria de la PC son considerables utilizando la identificacin de las ondas R. El sistema que se ha desarrollado destaca por su bajo costo, y portabilidad. La capacidad de poder visualizar las imgenes desde cualquier PC que opere con el sistema operativo Windows.

30

Apndice A Electrocardigrafo.
Latido cardiaco y la actividad elctrica del corazn. Las partes del corazn normalmente laten en sucesin ordenada: la contraccin auricular (sstole auricular) va seguida de la contraccin de los ventrculos (sstole ventricular) y durante la distole las cuatro cmaras estn relajadas. El latido cardiaco se origina en un sistema cardiaco de conduccin especializado y se propaga a travs de este sistema a todas las partes del miocardio. Las estructuras que constituyen el sistema de conduccin son el nodo sinoauricular (nodo SA), las vas auriculares internodales, el nodo auriculoventricular (nodo AV), el haz de His y sus ramas, y el sistema de Purkinje. Las diversas partes del sistema de conduccin y, en condiciones anormales, partes del miocardio, son capaces de descarga espontnea. Sin embargo, el nodo SA normalmente descarga de manera ms frecuente propagndose la despolarizacin desde l a las cuatro regiones, antes de que stas descarguen espontneamente. El nodo SA es, por tanto, el marcapasos cardiaco y su frecuencia de descarga determina la frecuencia a la que late el corazn. Los impulsos generados en el nodo SA pasan a travs del msculo auricular al nodo AV; de este nodo al haz de His; y a travs de las ramas del haz de His, por el sistema de Purkinje, al msculo ventricular.

Figura 2. Estructura fsica del corazn.

Electrocardigrafo. El electrocardigrafo es el equipo que permite registrar la actividad elctrica del corazn a partir de una serie de terminales o electrodos metlicos de Ag/AgCl (Plata / Cloruro de Plata) conectados en la superficie de cuerpo del paciente. La seal es amplificada y posteriormente registrada en un tira de papel que se mueve a velocidad constante.

31

Electrocardiograma. A causa de que los lquidos corporales son buenos conductores (es decir, por que el cuerpo es un conductor de volumen), las fluctuaciones en el potencial, que representan la suma algebraica de los potenciales de accin de las fibras del miocardio, pueden ser registradas extracelularmente. El registro de estas fluctuaciones de los potenciales durante el ciclo cardiaco es el electrocardiograma (ECG). El ECG puede ser registrado usando un electrodo activo o explorador conectado a un electrodo indiferente de potencial cero (registro unipolar) o entre dos electrodos activos (registro bipolar). En un conductor de volumen, la suma de los potenciales en los vrtices en un tringulo equiltero con una fuente de corriente en el centro es cero en todo tiempo. Puede construirse aproximadamente un triangulo (tringulo de Einthoven) con el corazn en su centro colocando electrodos en ambos brazos y en la pierna izquierda. Estas son tres derivaciones estndar de los miembros que se usan en electrocardiografa. Los nombres de las diversas ondas del ECG y su cronologa en los seres humanos se muestran a continuacin: Onda P: En condiciones normales, es la primera marca reconocible en el ECG. Producida por la despolarizacin de ambas aurculas, su duracin es menor de 100 ms y su voltaje no excede los 5.5 mV. Intervalo PR: Es el perodo de inactividad elctrica, corresponde al retraso fisiolgico que sufre el estmulo en el nodo arterioventricular. Su duracin debe estar comprendida entre 120 y 200 ms. Complejo QRS: Representa la despolarizacin de ambos ventrculos. Su duracin debe estar comprendida entre los 80 y 100 ms. Segmento ST: Desde el final del QRS hasta el inicio de la onda T. Onda T: Corresponde a la repolarizacin ventricular, apareciendo al final del segmento ST. Intervalo QT: Comprende desde el inicio del QRS hasta el final de la onda T y representa la despolarizacin ventricular. Su duracin estar comprendida entre los 320 y 400 ms.

Figura 3: Sistema de conduccin del corazn y su correlacin con el ECG

32

Derivaciones bipolares. Las derivaciones estndar de los miembros I, II y III son registros de la diferencias de potencial entre dos miembros. Debido a que la corriente slo fluye en los lquidos corporales, los registros obtenidos son aqullos que se obtendran si los electrodos estuvieran en los puntos de fijacin de las extremidades, no importa donde se coloquen los electrodos de las extremidades. En la derivacin I, se conectan de manera que una desviacin hacia arriba sea inscrita cuando el brazo izquierdo se vuelva positivo con respecto al derecho (brazo izquierdo positivo). En la derivacin II, los electrodos estn en el brazo derecho y en la pierna izquierda, siendo la pierna positiva; y en la derivacin III, los electrodos estn en el brazo izquierdo y en la pierna izquierda con est positiva. Derivacin I: entre brazo izquierdo (+) y brazo derecho (-). Derivacin II: entre pierna izquierda (+) y brazo derecho (-). Esta derivacin es la ms adecuada para el anlisis de la onda P, tendr una amplitud menor a 0.2 milivolts equivalentes a 2mmm y una duracin menor de 0.12 segundos. Derivacin III: entre pierna izquierda (+) y brazo derecho (-).

Figura 4. Tringulo de Einthoven, para los tres tipos de derivaciones.

Algunas arritmias cardiacas. Arritmias del Nodo SA. Bradicardia: Se caracteriza por el descenso del ritmo cardiaco por debajo 60 lpm. No cambia la morfologa de ECG. La sintomatologa puede ser falta de oxigenacin, dolor de pecho, pulso dbil. Taquicardia: Se caracteriza por un aumento del ritmo cardiaco por arriba de los 90 lpm. No cambia la morfologa del ECG. La sintomatologa es parecida a la bradicardia.

33

Bloqueo del Nodo SA. Interrupcin del paso del estmulo generado en el ndulo sinusal hacia el tejido especfico auricular de conduccin. Los hay de tres grados: Primer grado; no se identificable en el ECG convencional. Segundo grado; espordicamente un estmulo queda bloqueado, reconocindose en el ECG por un paro sinusal de duracin generalmente doble del ciclo RR precedente. Tercer grado; Bloqueo permanente de la actividad generada en el nodo sinusal. La ausencia de ondas P y un ritmo de escape funcional ventricular sustituirn al marcapasos principal. Paro o Pausa Sinusal. Falta de formacin de un impulso en el ndulo sinusal. Existe depresin intensa de la actividad del ndulo sinusal. No es muy importante desde el punto de vista clnico, ya que existen latidos de escape de la unin durante las pausas excesivas de la actividad SA. El paciente debe ser examinado minuciosamente para descartar la presencia de hipotensin arterial, lipotimias y aumento del nmero de extrasstoles ventriculares, ya que estas son las nicas razones para tratar este tipo de arritmia. Las causas pueden ser: infarto del miocardio que afecta el tejido SA, fibrosis degenerativa, tono vagal excesivo, etc.

Figura 5. Pausa sinusal.

Paro o pausa sinusal. El cuarto complejo corresponde a un latido de escape de la unin. Sndrome del Seno Enfermo. Es un sndrome clnico que se caracteriza por una funcin anormal del ndulo sinusal por alteraciones orgnicas y funcionales de las clulas que la componen, dando como resultado final una alteracin en la formacin del impulso nodal senoatrial, su transmisin y conduccin. El SSE se produce con mayor frecuencia en el infarto agudo del miocardio inferior (por isquemia del nodo atrioventricular), la estimulacin de los reflejos de Bezold-Jarisch (cuando la isquemia estimula los nervios aferentes adyacentes al ndulo AV, el incremento del tono vagal resultante produce bradicardia sinusal, hipotensin arterial sistmica y algunas veces bloqueo cardiaco) o la liberacin del potasio y adenosina por las clulas miocrdicas isqumicas. Bloqueo del Nodo AV. Bloqueo AV de Primer Grado. Se trata de una prolongacin de la conduccin AV en la que se transmiten todas las ondas P y todos los intervalos PR tienen la misma longitud. Causas: cardiopata isqumica, infarto al miocardio de la cara inferior, hiperpotasemia, fiebre reumtica aguda, cambios degenerativos del nodo AV, miocarditis, frmacos depresores del nodo AV.

34

Figura 6. Bloqueo AV de primer grado.

Bloqueo AV de Segundo Grado. En este tipo de bloqueo no todos los impulsos auriculares son conducidos a los ventrculos. Existen dos tipos diferentes: tipo I (Mobitz I o Wenckebach) y tipo II (Mobitz II). En el Mobitz I existe un retraso creciente de la conduccin AV hasta que una onda P no es conducida (alargamiento progresivo de los intervalos PR) y sus causas pueden ser: digital, cardiopata isqumica (frecuente en la evolucin del infarto al miocardio de la cara inferior por isquemia del nodo AV), miocarditis, aumento del tono vagal (deportistas), enfermedad degenerativa del nodo AV.

Figura 7. Bloqueo AV de 2, tipo Mobitz II.

El bloqueo tipo Mobitz II es un retraso de la conduccin a nivel de la rama del haz de His (infranodal y dentro del sistema His-Purkinje), en forma transitoria o definitiva, y sus causas pueden ser: enfermedad grave degenerativa del sistema de conduccin, infarto del miocardio de la pared anterior, miocarditis y posterior a ciruga cardiaca.

Figura 8. Bloqueo AV de 2, tipo Mobitz II.

Bloqueo AV de Tercer Grado. Se produce cuando el impulso auricular es incapaz de pasar a los ventrculos. Existe patologa a nivel del ndulo AV, haz de His o las ramas del haz, de tal modo que el impulso auricular no puede pasar. Tanto aurculas como ventrculos laten con ritmos independientes.

Figura 9. Bloqueo AV de tercer grado.

35

Fltter (aleteo) Auricular. Ritmo auricular rpido y regular, habitualmente de 300 por minuto. Se debe a un circuito de reentrada nico dentro de la aurcula derecha. Causas: cualquier forma de cardiopata (ms comn en la fiebre reumtica, menos frecuente en la insuficiencia cardiaca congestiva, en la tromboembolia pulmonar y miocarditis.

Figura 10. Fltter Auricular.

Bloqueos troncales. Ya no se trasmiten de forma adecuada el impulso elctrico a travs de las ramas del has de his. Bloqueo de la rama derecha del has de his: No hay transmisin del impulso elctrico a travs de la rama derecha pero si en la rama izquierda y debido a una contraccin reflejo vuelve a haber transmisin en la rama derecha despus de un intervalo de tiempo (ms) Bloqueo de la rama izquierda del has de his: La rama izquierda esta sin conducir el impulso elctrico, como tiene dos fascculos se cae en un hemibloqueo sea anterior o posterior, pero no las dos al mismo tiempo. La despolarizacin es tarda. El bloqueo puede estar antes de la bifurcacin en cualquiera de los dos fascculos. Bloqueo bifacicular: Consiste en el bloqueo de la rama derecha y cualquiera de los fascculos de la rama izquierda. Bloqueo trifacicular: Consiste en el bloqueo de la rama derecha y ambos fascculos. Escape. Se refiere al complejo electrocardiogrfico (auricular, nodal ventricular) que "salta" ante la ausencia de estmulos provenientes del marcapasos natural (ndulo sinusal). Para qu se hace un ECG? Muchas condiciones de salud pueden causar cambios en el ECG. Dado que el ECG es un examen rpido, sencillo, no doloroso y relativamente barato, se puede utilizar como parte inicial de un examen para ayudar al mdico a reducir las posibilidades en el proceso de diagnstico. Los ECG tambin se hacen como exploraciones fsicas de rutina para poder compararlos con ECG anteriores y determinar si una enfermedad oculta o no detectada puede causar los cambios en el ECG. Las condiciones que pueden causar cambios en el patrn del ECG pueden incluir, pero no se limitan a las siguientes: Isquemia: Disminucin del flujo de sangre oxigenada a un rgano debido a la obstruccin de una arteria. Ataque al corazn (tambin llamado infarto de miocardio): Lesin del msculo cardiaco debida a un suministro insuficiente de sangre. Trastornos de conduccin: Disfuncin del sistema de conduccin elctrica del corazn, que puede hacer que los latidos sean demasiado rpidos o demasiado lentos o que tengan una velocidad irregular. 36

Trastornos electrolticos: Desequilibrio en los niveles de electrolitos, o sustancias qumicas de la sangre, tales como el potasio, el magnesio o el calcio. Pericarditis: Inflamacin de la bolsa (revestimiento fino) que rodea al corazn. Enfermedad valvular cardiaca: Una o ms de las cuatro vlvulas del corazn est defectuosa o tiene una malformacin congnita. Dilatacin cardiaca: Condicin en la que el corazn es mucho ms grande de lo normal; puede ser debida a diversos factores, como los trastornos de las vlvulas, la presin alta de la sangre, la insuficiencia cardiaca congestiva, los trastornos de conduccin, etc. Traumatismos en el pecho: Traumatismo directo en el pecho, como cuando el conductor se golpea contra el volante en un accidente automovilstico. Tipos de Electrocardigrafos. Electrocardiograma de esfuerzo Utiliza los parmetros hermodinmicos, duracin del ejercicio y capacidad aerodinmica (mximo consumo de oxgeno). Bicicleta ergomtrica y la cinta sin fin: subir y bajar escalones. Holter La historia comenz en 1961. El fsico Norma Holter invent un electrocardigrafo que permita un registro contino del ECG aunque era una cinta magntica. En la actualidad, ha pasado a un soporte slido. Electrocardiografa transtelfonica. Los parmetros biomdicos pueden ser transferidos en seales capaces de ser transmitidas por un canal de comunicacin. Adquisicin seales bioelctricas. El principal objetivo, es conseguir un sistema con muy poco ruido, para la adquisicin de la seal electrocardiogrfica. La presencia de ruido en el registro de este tipo de seales, es prcticamente inevitable. Ya sea por causas ajenas, o propias del sistema. El conocimiento acerca del ruido, y las causas que lo propician, ayudarn al procesado y eliminacin de ste. En primer lugar, citamos el concepto de ruido, que se define como una seal ajena a la seal de estudio, provocando errores en el sistema de medicin. El termino interferencia, tambin es utilizado en este documento, para referirse a las seales externas a nuestro sistema, que pueden seguir una evolucin temporal en el tiempo y espacio. Podemos destacar: la red elctrica; y aparatos como luces, fluorescentes, motores. Destacamos, el problema que conlleva la amplitud tan pequea de las seales bioelctricas. Los potenciales bioelctricos del ser humano son magnitudes que varan con el tiempo. Los valores de dichos potenciales pueden variar entre distintos individuos por diversos factores. Seal ECG EEG EMG Amplitud Rango (mV) 0.02 - 5.0 0.0002 - 0.3 0.1 - 5. Frecuencia (Hz) 0.05 - 100 DC - 150 DC - 10000

Tabla Seales Bioelctricas

37

Ruido en la etapa de amplificacin. Debido al bajo nivel de la seal, es preciso amplificarla, pero para conseguirlo de manera correcta para futuros tratamientos de dicha seal es preciso tener en cuenta distintos factores que pueden dar lugar a seales de ruido que interfieren con la seal deseada. Citaremos los siguientes: Ruido provocado por el exterior. La principal a destacar es producida por el contacto entre el electrodo y la piel del paciente. Aadiremos las inductivas; incluyendo, las capacitivas como son el acoplamiento con el paciente, y entre los conductores y el equipo. Tambin podemos citar otros motivos como la red o cargas electrostticas entre otros. La red, puede llegar a generar hasta 50Hz, siendo responsable de las alteraciones del equipo. Tambin se pueden descartar, otros aspectos bioelctricos o fisiolgicos, como puede ser la respiracin, movimiento del paciente, etc. Ruido provocado por el interior. La transmisin de la parte digital aade ruido a la parte analgica, e incluso el ruido generado por los propios componentes electrnicos. Interferencias (Ruido). 1. Potenciales de contacto El hecho de colocar un electrodo en contacto con la piel a travs de un electrolito conlleva a una distribucin de cargas entre el interfaz electrodo-electrolito dando lugar a la aparicin de un potencial. En el momento en que la posicin del electrodo se mueve respecto al electrolito producir una alteracin en la distribucin de la carga alterando la seal del ECG. La solucin sera fijar bien los electrodos, limpiar la superficie con alcohol, y que el paciente se encuentre en un perfecto estado de reposo. 2. Potenciales bioelctricos. Este problema surge por el movimiento del sujeto en estudio, de la masa muscular, etc. Para ello debemos respetar los siguientes puntos: Reposo y relajacin del paciente en ambiente adecuado para estas dos condiciones. 3. Respiracin. Provoca cambios de amplitud que alteran el registro del ECG. 4. Cargas electrostticas. Causadas por la circulacin sangunea, provocan alteraciones en la lnea e incluso saturaciones en los amplificadores.

5. Fuentes internas de ruido. Causadas por la fuente de alimentacin y los propios componentes elctricos. a) Fuente de alimentacin. Para solventar este problema se deberan utilizar componentes de calidad debido al limitado ancho de banda del sistema, las bateras reducen el ruido adems de aumentar la seguridad del paciente.

38

Caractersticas elctricas del paciente. La corriente que circula por el cuerpo humano depende de los siguientes factores: Magnitud de la corriente que circula. Frecuencia. Duracin del paso de la corriente. Variabilidad de la superficie a zonas interiores. Los valores de dichas corrientes deben estar entre los estndares (entre 0.5-10mA), pues a superiores a estos podran provocar contracciones involuntarias de los msculos, asfixia, etc.

39

Bibliografa: -Jimnez Santiago M. Gonzalo, Meja Gonzlez Jaime. Electrocardigrafo Porttil. Tesis Lic. Ing. Biomdica UAM-I 2007. -Matlab e Interfaces Grficas CONATEC 2002 M. C. Jos Jaime Esqueda Elizondo Universidad Autnoma de Baja California, Unidad Tijuana -Anlisis Espectral del Electrocardiograma Agretti, Hernn G. - Monzn, Jorge E. Depto. de Ingeniera Elctrica - Facultad de Cs. Exactas y Naturales y Agrimensura UNNE. -Estudio de la Transformada de Fourier y La Transformada Wavelet como Herramienta de Anlisis y Clasificacin De Seales EEG Jos L. Martn, Sira Palazuelos, Luciano Boquete, Manuel Mazo, David Provencio Dpto. de Electrnica. Escuela Politcnica. Universidad de Alcala. http://www.uvmnet.edu/investigacion/episteme/numero1-05/reportes/a_diseno.asp

40

Você também pode gostar