6
ALGORITMO DE PAN AND TOMPKINS PARA DETECCION DE COMPLEJO QRS Presenta la implementación de un algoritmo que permite identificar los intervalos qrs por medio de filtros, integradores y derivadores, que básica-mente tratan de encontrar los cambios bruscos de pendiente que caracterizan el inicio de las ondas r. Pan y Tompkins (1985) proponen un algoritmo de detección de complejos qrs(figura 2) basado en el análisis de la pendiente, la amplitud, y el ancho de los complejos qrs. El algoritmo involucra una serie de filtros y operadores de tipo paso bajo, paso alto, derivador, cuadratura, integrador, umbralización adaptativa y procedimientos de búsqueda (Rangayyan, 2001), los cuales se analizan en los siguientes apartados. En este caso, la detección del QRS se basa en el análisis de amplitud, pendiente y anchura de los complejos QRS. Las etapas del mismo son: • Filtrado pasa-banda: compuesto por un pasa-alto y pasa-bajo en cascada, que atenúa las bajas frecuencias características de las ondas P y T, así como de las oscilaciones basales, y también atenúa las frecuencias altas del EMG y la interferencia de red. • Derivación: destaca las pendientes rápidas de la señal, que coinciden en el caso del ECG con el QRS.

Algoritmo de Pan and Tompkins

Embed Size (px)

Citation preview

Page 1: Algoritmo de Pan and Tompkins

ALGORITMO DE PAN AND TOMPKINS

PARA DETECCION DE COMPLEJO QRS

Presenta la implementación de un algoritmo que permite identificar los intervalos qrs por medio de filtros, integradores y derivadores, que básica-mente tratan de encontrar los cambios bruscos de pendiente que caracterizan el inicio de las ondas r.

Pan y Tompkins (1985) proponen un algoritmo de detección de complejos qrs(figura 2) basado en el análisis de la pendiente, la amplitud, y el ancho de los complejos qrs. El algoritmo involucra una serie de filtros y operadores de tipo paso bajo, paso alto, derivador, cuadratura, integrador, umbralización adaptativa y procedimientos de búsqueda (Rangayyan, 2001), los cuales se analizan en los siguientes apartados.

En este caso, la detección del QRS se basa en el análisis de amplitud, pendiente y anchura de los complejos QRS.

Las etapas del mismo son:

• Filtrado pasa-banda: compuesto por un pasa-alto y pasa-bajo en cascada, que atenúa las bajas frecuencias características de las ondas P y T, así como de las oscilaciones basales, y también atenúa las frecuencias altas del EMG y la interferencia de red.

• Derivación: destaca las pendientes rápidas de la señal, que coinciden en el caso del ECG con el QRS.

• Transformación no lineal: eleva al cuadrado la señal, convirtiéndola en positiva antes de la integración, y acentuando también las frecuencias altas, que corresponden al QRS.

• Promediación: puesto que complejos anormales con amplitudes y pendientes iguales o mayores que los QRS, como es el caso de los PVC, pueden ser detectados como QRS normales, se utiliza un promediador de ventana móvil para obtener la duración del complejo detectado, ya que los PVC suelen presentar duraciones mayores que los QRS normales. La ecuación del promediador viene dada por: y(n) = [x(n -(N-1)) + x(n -(N-2)) +...+ x(n)] / N

Filtro pasa bajo

Page 2: Algoritmo de Pan and Tompkins

El filtro pasa bajo recursivo, utilizado en el algoritmo de Pan-Tompkins, posee coeficientes enteros con el fin de reducir la complejidad y el consumo computacional.

La función de transferencia discreta de este filtro está dada por la siguiente ecuación

En términos de una ecuación en diferencias, con el objeto de implementar el filtro pasa bajos discreto en forma computacional, la salida y(n) está relacionada con la entrada de x(n)a través de la siguiente ecuación.

Con velocidad de muestreo de 200 Hz, el filtro tiene una frecuencia de corte de fHz=z1, e introduce un retraso de 5 muestras o 25 ms. El filtro suministra una atenuación superior de 35 dB a 60 Hz, y suprime de manera efectiva interferencias en la línea eléctrica, si es que esta se encuentra presente.

Filtro pasa alto

El filtro pasa alto utilizado en el algoritmo es implementado como un filtro pasa todo menos un filtro paso bajo. El componente paso bajo tiene la función de transferencia dada por la siguiente ecuación.

En ecuación en diferencia, la relación entrada-salida se encuentra especificada por la siguiente ecuación.

Así, la función de transferencia H(z) del filtro de paso alto se especifica en la expresión

Page 3: Algoritmo de Pan and Tompkins

De manera equivalente, la salida p(n) del filtro de paso alto está dada por la ecuación de diferencias descrita en la siguiente ecuación.

Con x(n) y y(n) relacionados en la ecuación de la función de transferencia. El filtro paso alto tiene un límite de frecuencia de 5 Hz e introduce un retraso de 80 ms.

Derivador

El operador derivativo usado por Pan y Tompkins está dado por la ecuación

Esta expresión se aproxima el operador ideal hasta 30 Hz. El procedimiento derivativo elimina las componentes de baja frecuencia de las ondas p y t, y proporciona una gran ganancia para las componentes de alta frecuencia.

Integrador

Como se observa en el apartado anterior, la salida de una operación derivativa exhibe múltiples picos dentro de la duración de un complejo qrs simple. El algoritmo de Pan-Tompkins suaviza la salida de las operaciones realizadas anteriormente a través de un movimiento de ventana del filtro integrador dado por la siguiente ecuación.

Page 4: Algoritmo de Pan and Tompkins

GRAFICACION DE LAS SEÑALES

A continuación se muestra un extracto del código empleado para implementar los distintos filtros del algoritmo. Se observa que la instrucción de ejecución de un filtro está dada por la función FILTER, cuyo parámetro de entrada no es otro que la función transferencia, interpretada por MATLAB en el momento de aplicar el filtro.

Las imágenes después del codigo corresponden a la visualización gráfica de MATLAB, en la que se ilustran las señales obtenidas luego de la aplicación de cada uno de los filtros implementados.

f=figure(1);set(f,'color',[1 1 1])subplot(3,2,1), plot(s,'k','linewidth',1.5)

% lowpassB=[1 0 0 0 0 0 2 0 0 0 0 0 1];A=[1 2 1];s1=filter(B,A,s);figure(1),subplot(3,2,2),plot(s1,'k','linewidth',1.5)

% high passB=zeros(1,33);B(1)=1; B(33)=1; A=[1 1];C=zeros(1,17); C(17)=1;s2=filter(C,1,s1)filter(B,A,s1)/32;subplot(3,2,3),plot(s2,'k','linewidth',1.5)

% derivativeB=[0.2 0.1 0 0.1 0.2];s3=filter(B,A,s2);subplot(3,2,4),plot(s3,'k','linewidth',1.5)

% moving integralN=30;delay=30;B=ones(1,N)/N; s4=s3.^2;s4=filter(B,1,s4);subplot(3,2,5),plot(s4,'k','linewidth',1.5)

%Title('ECG Filtrado adaptivo)det=s4>(0.125*(max(s4)/2));det(1:delay)=[];subplot(3,2,6), plot(s,'k','linewidth',1.5)subplot(3,2,6), hold on,plot(max(s)*det,'k:')plot(s,'k','linewidth',1.5)

Page 5: Algoritmo de Pan and Tompkins