Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Eliminar tendencias de datos

Las señales medidas pueden mostrar patrones generales que no son intrínsecos a los datos. Estas tendencias a veces pueden dificultar el análisis de datos y deben eliminarse.

Considere dos señales de Electrocardiograma (ECG) con diferentes tendencias. Las señales de ECG son sensibles a perturbaciones como la interferencia de la fuente de alimentación. Cargue las señales y trace las.

load(fullfile(matlabroot,'examples','signal','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 trama muestra una tendencia lineal. La tendencia en la segunda señal es no lineal. Para eliminar la tendencia lineal, utilice la función MATLAB®.detrend

dt_ecgl = detrend(ecgl);

Para eliminar la tendencia no lineal, ajuste un polinomio de bajo orden a la señal y restarlo. En este caso, el polinomio es de orden 6. Trace 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 eficazmente. Observe cómo las señales no muestran un cambio de línea de base más. Están listos para su posterior procesamiento.

Consulte también

| |

Temas relacionados