Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELECTRÓNICA MÉDICA
TEMA:
INFORME PRÁCTICA DE LABORATORIO N°1
DOCENTE:
DR. ANDRÉS ARCENTALES
ESTUDIANTES:
AYALA PICO JAIME
LÓPEZ BRIAN
ORTEGA DIEGO
NRC:
9822
SANGOLQUÍ-ECUADOR
17/01/2022
1. Tema de la Práctica
2. Objetivo
Implementar un circuito para la adquisición de un ECG una derivación, basado en el circuito
integrado AD620.
3. Materiales Empleados
Integrado AD620 para la etapa de preamplificación.
Amplificador operacional TL084 para las etapas de filtrado y amplificación.
Resistencias y Capacitores.
Arduino Uno para conversión A-D de la señal.
4. Circuito Implementado
Para realizar el muestreo, se ha tomado como referencia una frecuencia máxima de 150 Hz, ya
que se trata de un ECG. Por ende:
𝐹 = 150 𝐻𝑧 (1)
𝐹 >= 2𝐹 (2)
𝐹 = 330 𝐻𝑧 (4)
𝑇 = 3 𝑚𝑠 (6)
Sin embargo, las Figuras 5 y 6 no logran mostrar con claridad la señal ECG obtenida debido a que se
están registrando 60 segundos, por lo que, en las Figuras 7 y 8 se muestra un registro de ambos
estados en un lapso más corto de tiempo, con la finalidad de tener una mejor apreciación de las
señales.
5.2. Marcar los complejos QRS de los 2 registros y estimar la frecuencia cardíaca en BPM de cada
uno de los registros. Para esto, implementar alguno de los algoritmos de detección de
complejos QRS discutidos en clase. Presentar la gráfica del ECG marcado los puntos R.
Lo que indica que el valor de BPM estimado es de 95 latidos por minuto, lo cual concuerda
con lo esperado ya que el valor de BPM normal de una persona está entre 60 y 100 BPM.
Lo que indica que el valor de BPM estimado es de 164 latidos por minuto, lo cual concuerda
con lo esperado, ya que se realizó actividad física y el corazón bombea más sangre, por lo
tanto, se contrae y relaja más seguido.
5.3. Presentar el código usado para la digitalización de las señales, el código de Matlab usado
para graficar las señales, y el código para la detección automática de los complejos QRS.
Todos los códigos deben estar comentados.
%************************************************************************
%En este código se realiza el llamado a una funcón de lectura de arduino
%donde se envía como dato el # de muestras a ser tomado, que en este caso
%son 20000 debido a que se desea tomar la señal en un lapso de 60[s] y
%según la frecuencia de muestreo colocada en el arduino de tiene 300 [Hz]
%que equivaldria a 3.33 [ms], donde al multiplicar
%T=muestras*t=20000*3.33x10^(-3)se obteiene T=20000*3.33x10^(-3)[ms]=60 [s]
%que es el tiempo que buscamos realizar la medida de la señal.
%Además se realiza su graficación en voltaje vs tiempo para comprobar
%que se está obteniendo datos adecuados los cuales se guardan para ser
%procesados posteriormente.
%************************************************************************
ECG_Signal=EADC_Serial(20000); %Esta función retorna los valores de voltaje
%y grafica la señal encontrada con el
%voltaje en el eje x, muestras eje y.
%************************************************************************
%Esta función retorna los valores de voltaje y grafica la señal
%encontrada con el voltaje en el eje x, muestras eje y.
function voltaje=EADC_Serial(muestras)
close all;clc;
voltaje=0; %Declaraciòn e variable en la cual se van a guardar los valores.
%Comunicación arduino
%Borra datos que se encuentren previos y vuelve a declarar el puerto
delete(instrfind({'port'},{'COM6'})); %Borrar cualquier puerto serial
%abierto en el puerto a utilizar.
Por último, para la detección de los complejos QRS se ha implementado el algoritmo de Pan-
Tompkins en Matlab, con sus distintas etapas. Este código se detalla a continuación.
Etapa de derivación
derivada=zeros(1,length(x)); % Se crea un vector con ceros de iguales dimensiones que
la señal original.
derivada(2:end)=diff(y); % Se procede a derivar la señal, ingresando un valor de
0 al inicio del vector para evitar errores de dimensión.
figure
plot(t,derivada)
title 'Señal ECG Derivada'
xlabel 'Tiempo [s]'
Etapa de decisión
[PKS,LOCS] = findpeaks(x_int,'MINPEAKDISTANCE',round(0.2*Fs)); % Se emplea la
función findpeaks de Matlab para obtener los valores pico de la señal procesada.
% Se ha utilizado la especifiación 'MINPEAKDISTANCE' con la intención de
% obviar falsos picos. Adicionalmente, se le ha especificado el valor de la
% frecuencia de muestreo escalada para una mayor precisión.
SPKI=max(x_int(1000:20000)); %Se establece el valor de la variable SPKI
tomando los primeros 2 segundos de señal.
NPKI=SPKI*1/3; %Se calcula la variable NPKI según la
bibliografía revisada.
Umbral_snl=NPKI+1/4*(SPKI-NPKI); %Se calcula el valor umbral inicial según la
bibliografía revisada.
picosR=0; %Se inicializa una variable que contará el número
de picos R.
valorPICOSR=zeros(length(PKS));
tiempoPICOSR=zeros(length(LOCS));
for i=1:length(PKS)
if(PKS(i)>Umbral_snl)
picosR=picosR+1; %Si el valor del pico actual supera el umbral
de señal, se lo toma como pico R.
SPKI=1/8*PKS(i)+7/8*SPKI; %Se actualiza el valor de SPKI según la
bibliografía revisada.
valorPICOSR(picosR)=PKS(i);
tiempoPICOSR(picosR)=LOCS(i);
end
if(PKS(i)<=Umbral_snl)
NPKI=1/8*PKS(i)+7/8*NPKI; %Si el valor del pico no supera el valor
umbral de señal, se lo descarta y se actualiza el valor de NPKI según la
bibliografía.
end
Umbral_snl=NPKI+1/4*(SPKI-NPKI); %Se calcula el nuevo valor umbral.
end
valorPICOSR=valorPICOSR(1:picosR); %Se recorta el vector para eliminar valores
nulos.
tiempoPICOSR=tiempoPICOSR(1:picosR);
picosR
plot(x_int)
title 'Picos encontrados'
xlabel 'Tiempo [s]'
hold on
plot(tiempoPICOSR,valorPICOSR,'or') %Se grafican los puntos de los picos R
hallados.
tiempoPICOSR=tiempoPICOSR.*0.003; %Se realiza el escalamiento del tiempo.
6. Conclusiones
Se ha logrado implementar con efectividad un circuito de adquisición de un ECG basado en el
circuito integrado AD620 (ver Figuras 1, 2, 3 y 4), donde se tiene las etapas de circuito de
protección, circuito de pre amplificación, circuito de filtrado, circuito de amplificación, circuito de
control de nivel DC y finalmente la etapa de conversión análogo-digital.
Se ha logrado estimar la frecuencia cardíaca en BPM utilizando un algoritmo de detección de
complejo QRS creado basado en el algoritmo de Pan-Tompkins, la estimación fue realizada tanto
en el registro tomado en estado basal, como en el registro tomado tras la actividad física, teniendo
como resultado un valor de 95 BPM en estado basal, y un valor de 164 BPM después de la
actividad física, lo cual concuerda con los valores esperados a ser obtenidos ya que durante el
estado basal la persona se encuentra relativamente relajada y el corazón no tiene la necesidad de
bombear sangre de una manera rápida, en cambio durante la actividad física el corazón bombea
sangre más rápido y por ende , es de esperarse obtener más latidos por minuto y una mayor
concentración de picos dentro de la gráfica el ECG.
Matlab fue una herramienta fundamental para poder realizar una comunicación con arduino con
la finalidad del registro y procesamiento de señales.
Se concluye que el circuito integrado AD620 presenta características óptimas para su aplicación
en el campo de la electrónica médica como un amplio rango de amplificación, bajo nivel de
alimentación, bajo nivel de ruido, buenas características de CMR, entre otras.
7. Recomendaciones
Se recomienda tener a disposición algunos electrodos adicionales debido a que, por el uso, estos
se desgastan, perdiendo efectividad y afectando a la señal obtenida.
Se recomienda esperar un lapso de tiempo una vez se hayan conectado los electrodos para
realizar el registro, con el fin de estabilizar la señal y evitar errores innecesarios.
Se recomienda evitar realizar movimientos bruscos mientras se adquiere la señal, ya que esto
podría ingresar ruido que afectará la validez de los datos adquiridos.
Se recomienda implementar el circuito de protección entre el circuito de adquisición y el paciente.
Utilizar potenciómetros y resistencias de precisión en lo posible para el circuito, de igual manera,
utilizar capacitores cerámicos.
8. Referencias
ANALOG DEVICES (2011). Low Cost Low Power Instrumentation Amplifier AD620 Datasheet.
Recuperado de: https://www.analog.com/media/en/technical-documentation/data-
sheets/ad620.pdf