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 los 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 ECG son sensibles a perturbaciones tales como interferencia de la fuente de alimentación. Cargue las señales y comisqué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 de 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 MATLAB® .detrend

dt_ecgl = detrend(ecgl);

Para eliminar la tendencia no lineal, ajuste un polinomio de orden bajo a la señal y reste. En este caso, el polinomio es de la orden 6. Traza 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 ya no muestran un desplazamiento de línea base. Están listos para su posterior procesamiento.

Consulte también

| |

Temas relacionados