Main Content

Eliminar tendencias de datos

Las señales medidas pueden mostrar patrones generales que no son intrínsecos a los datos. En ocasiones, estas tendencias pueden dificultar el análisis de los datos, por lo que deben eliminarse.

Considere dos señales de electrocardiograma (ECG) con tendencias distintas. Las señales de ECG son sensibles a alteraciones como interferencias de la fuente de alimentación. Cargue las señales y represéntelas.

load('ecgSignals.mat') 

t = (1:length(ecgl))';

subplot(2,1,1)
plot(t,ecgl), grid
title 'ECG Signals with Trends', ylabel 'Voltage (mV)'

subplot(2,1,2)
plot(t,ecgnl), grid
xlabel Sample, ylabel 'Voltage (mV)'

Figure contains 2 axes objects. Axes object 1 with title ECG Signals with Trends contains an object of type line. Axes object 2 contains an object of type line.

La señal en la primera gráfica muestra una tendencia lineal. La tendencia en la segunda señal es no lineal. Para eliminar la tendencia lineal, utilice la función de MATLAB® detrend.

dt_ecgl = detrend(ecgl);

Para eliminar la tendencia no lineal, ajuste a la señal un polinomio de orden bajo y réstelo. En este caso, el polinomio es de orden 6. Represente las dos nuevas señales.

opol = 6;
[p,s,mu] = polyfit(t,ecgnl,opol);
f_y = polyval(p,t,[],mu);

dt_ecgnl = ecgnl - f_y;

subplot(2,1,1)
plot(t,dt_ecgl), grid
title 'Detrended ECG Signals', ylabel 'Voltage (mV)'

subplot(2,1,2)
plot(t,dt_ecgnl), grid
xlabel Sample, ylabel 'Voltage (mV)'

Figure contains 2 axes objects. Axes object 1 with title Detrended ECG Signals contains an object of type line. Axes object 2 contains an object of type line.

Las tendencias se han eliminado de forma efectiva. Observe cómo las señales ya no muestran un cambio de partida. Se pueden seguir procesando.

Consulte también

| |

Temas relacionados