Está en la página 1de 3

PROCESAMIENTO DE BIOSEÑALES - DR.

NORMA RAMIREZ HERNANDEZ 27-02-2023 1

Avance de análisis de señal de


electrocardiografía
Centro Universitario de Ciencias exactas e ingeniería (Ingeniería biomédica)

Ángel Manuel Velasco Reyes


angel.velaso5491@alumnos.udg.mx
Universidad de Guadalajara, Jalisco, México

El día 13-02-2023 iniciamos con el análisis viendo La siguiente etapa fue el graficar todos los
el electrocardiógrafo, vimos cual era la forma de complejos segmentados como una visualización
seleccionar únicamente los picos: tenemos como básica para ver un poco como se relacionan todos
muestra primeramente el ECG: en un conjunto visualmente atractivo.

Posteriormente distinguimos los picos:

Algo que le agregué fue que la gráfica de los picos


del ECG es normalmente azul, pero mientras va
avanzando en los complejos se va coloreando de
amarillo la porción seleccionada:

El día 15-02-2023 hicimos la segmentación


empírica de los complejos QRS y pusimos una
etiqueta al punto máximo del complejo R y del S:
cadenamax=sprintf("maximo: %2.f",picmax);
cadenamin=sprintf("minimo: %2.f",picmin);

//complejo R máximo y S mínimo


hold on
text(tiempo(posmax),picmax,cadenamax,'Color
','red','FontSize',10);
text(tiempo(posmin),picmin,cadenamin,'Color
','green','FontSize',10);
plot(tiempo,ecg,'b')
//grafica del ECG y el mínimo con máximo
hold on
vect_pos=zeros(1,length(picos));
for (i=1:length(posicion))
vect_pos(i)=tiempo(posicion(i));
end
stem(vect_pos,picos,'black')
//gráfica de los picos sobre el ecg
for j=2:length(picos)-1

//inicio de bucle para avanzar en los


complejos
pic_rand=picos(j);
pos_rand=posicion(j);
senal_mos=ecg(pos_rand-140:pos_rand+300);
tiempo_rand=tiempo((pos_rand-
140):pos_rand+300);

//selección de complejo actual


figure(1)
plot(tiempo_rand,senal_mos,'y');
pause(.001)
figure(2)
plot(tiempo_rand,senal_mos,'b');
//gráficas del complejo actual
hold on
estruct(j-1).complejos=senal_mos;
estruct(j-1).tiempos=tiempo_rand;
%%actividad
//registro en la estructura de todos los
CÓDIGO complejos
archivo=importdata('AMVR.txt'); [r,pos_r]=max(senal_mos);
ecg=archivo.data; [s,pos_s]=min(senal_mos(pos_r:end));
pos_s=pos_s+pos_r;
//selección de archivo ecg cad_r=sprintf("R: %2.f,%2.f",r,pos_r);
cad_s=sprintf("S: %2.f,%2.f",s,pos_s);
fs=length(ecg)/60; text(tiempo_rand(pos_s),s,cad_s);
tiempo=1/fs:1/fs:60; text(tiempo_rand(pos_r),r,cad_r);
//mostrar posición del complejo R y el S
//producción de relación de tiempo pause(1)
figure(1) hold off
ecg_env=envelope(ecg,3); figure(3)
//suavizado de la señal plot(senal_mos);
[picos,posicion]=findpeaks(ecg_env,'MinPeak hold on
Height',100,'MinPeakDistance',300); end
//obtención de los picos y su posición [maxPicPic,pospicmax]=max(picopico(2:end));
[picmax,posmax]=max(picos); [minPicPic,pospicmin]=min(picopico(2:end));
[picmin,posmin]=min(picos); estructura_fin(1).complejos=estruct(:).comp
lejos;
PROCESAMIENTO DE BIOSEÑALES - DR. NORMA RAMIREZ HERNANDEZ 27-02-2023 3

estructura_fin(1).tiempos=estruct(:).tiempo
s;
estructura_fin(1).frecuencia=ceil(length(pi
cos)*.8);
estructura_fin(1).maximo=picmax;
estructura_fin(1).minimo=picmin;
estructura_fin(1).pico_pico_max=maxPicPic;
estructura_fin(1).pico_pico_min=minPicPic;

filename="ecg_tarea_4.xls";

%%excel
exce=importdata("ECG_PDS_DATA_2023A.xlsx");
info1=exce.textdata;
info1(2,1)={'angel manuel velasco reyes'};
info1(2,2)={'Masculino'};
info1(2,3)={'12/08/2001'};

info1(2,4)=num2cell(estructura_fin(1).frecu
encia);
info1(2,5)=num2cell(estructura_fin(1).maxim
o);
info1(2,6)=num2cell(estructura_fin(1).minim
o);
info1(2,7)=num2cell(estructura_fin(1).pico_
pico_max);
info1(2,8)=num2cell(estructura_fin(1).pico_
pico_min);

writecell(info1,filename);

writecell(info1,filename);

También podría gustarte