从数据中删除趋势
测得的信号可以显示数据并非固有的总体模式。这些趋势有时可能会阻碍数据分析,必须删除。
考虑两个具有不同趋势的心电图(ECG)信号。ECG信号对诸如电源干扰等干扰敏感。加载信号并绘制它们。
加载('ecgsignals.mat')t =(1:长度(ecgl))';子图(2,1,1)图(T,ECGL),网格标题“具有趋势的心电图信号”,ylabel“电压(MV)”子图(2,1,2)图(t,ecgnl),网格xlabel样本,ylabel“电压(MV)”
第一个图上的信号显示线性趋势。第二个信号的趋势是非线性的。为了消除线性趋势,请使用MATLAB®函数逐渐消退
。
dt_ecgl = detrend(ecgl);
为了消除非线性趋势,请将低阶多项式拟合到信号并减去信号。在这种情况下,多项式为6。绘制两个新信号。
opol = 6;[p,s,mu] = polyFit(t,ecgnl,opol);f_y = polyVal(p,t,[],mu);dt_ecgnl = ecgnl -f_y;子图(2,1,1)图(t,dt_ecgl),网格标题“破坏心电图信号”,ylabel“电压(MV)”子图(2,1,2)图(t,dt_ecgnl),网格xlabel样本,ylabel“电压(MV)”
这些趋势已有效地消除。观察信号如何不再显示基线偏移。他们准备进一步处理。