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)'
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)'
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.