光谱去趋势的目的:消除传感器在获取数据时产生的偏移对后期计算产生的影响,将分析集中在数据趋势本身的波动上。
去趋势:数据去趋势,就是对数据减去一条最优(最小二乘)的拟合直线、平面或曲面,使去趋势后的数据均值为零。
操作步骤:
1.长度为N的时间序列,计算其累积离差值并转换为新序列:
2.将y(t)以等长度划分为不重叠的m个区间,n为区间长度,即时间尺度,m为区间数量,为N/n的整数部分;
3.对每一段序列采用最小二乘法线拟合出局部趋势y_n (t)
4.对y(t)剔除每个区间的局部趋势,并计算新序列的均方根:
Matlab实现去趋势的代码:
data = xlsread('C:\练习数据.xlsx')
data_c=data(2:end,:)
subplot(2,1,1)
hold on
plot(data(1:1,:),data_c(1:1,:),'Linewidth',2)
%去趋势数据生成,从原始数据中移除
detrend_data = detrend(data_c(1:1,:))
trend = data_c(1:1,:) - detrend_data
m2=mean(detrend_data)
plot(data(1:1,:),trend(1:1,:),':r','Linewidth',1.5)
title("单线去趋势前")
subplot(2,1,2)
hold on
plot(data(1:1,:),detrend_data(1:1,:),'Linewidth',2)
plot(data(1:1,:),zeros(size(data(1:1,:))))
title("单线去趋势后")