matlab之光谱预处理

1.归一化处理,分为均值归一化(mapminmax)和标准化(mapstd)

1.1mapminmax处理,按行逐行将数据归一化到-1-1,若6次采集的549波段的高光谱数据,如矩阵A为549*6,直接mapminmax(A),表示对于每一个波段,将不同批次采集的数据归一化,消除掉采集时外界因素对单波段的影响;

1.2mapstd处理,同mapminmax,按行逐行将数据标准化到0-1;

PS:对于mapstd处理,如果后续要对数据再微分,因为包含0值,所以可以加减极小值eps,若已经存在eps,则加减eps*0.5;

2.微分diff

按照列对光谱微分,单列表示一个完整的光谱曲线,行表示波段个数;同样,以A为例,diff(A)表示对A按行一阶微分,diff(A,1,2)表示对A按列进行一阶微分,“1”表示几阶微分,“2”表示列,当该位置为“1”时表示行。

3.平滑smooth

smooth表示按列对光谱进行曲线平滑,每列为一个完整光谱,行表示波段个数;

调用方式:smooth(A, method),method指平滑的方法,默认为5*5窗口的‘moving’移动平滑,所有形式如下:

\'moving \'移动平均法(默认情况)。一个低通滤波器,滤波系数为窗宽的倒数
\' lowess\'局部回归(加权线性最小二乘和一个一阶多项式模型)
\'loess\'局部回归(加权线性最小二乘和一个二阶多项式模型)
\'sgolay\'Savitzky -Golay滤波。一种广义移动平均法.滤波系数由不加权线性最小二乘回归和一个多项式模型确定,多项式模型的阶数n可以指定(默认为2)
\'rlowess\'\'lowess\'方法的稳健形式。异常值被赋予较小的权重,6倍的平均绝对偏差以外的数据的权重为0
\'rloess\'\'loess\'方法的稳健形式。舁常值被赋予较小的权承.6倍的平均绝对偏差以外的数据的权重为0

smooth(A),表示默认为5*5窗口使用滑动平均法\'moving\'平滑曲线;

smooth(A, span, \'sgolay\', degree),表示Savitzky- Golay平滑曲线;

span为Savitzky- Golay滤波器的窗宽,一个正奇数,degree是一个整数,取值介于0和span-1之间

注意 :对于多个样本的光谱,如果使用smooth函数,需要写个循环,逐个进行平滑处理。