高光谱预处理之SG平滑(Matlab实现)

     SG平滑是我们在预处理高光谱数据常用的方法,SavizkgGolag提出的,基于最小二乘原理的多项式平滑算法,也称卷积平滑。

    sgolayfilt是matlab已经封装好的SG平滑函数。直接调用sgolayfilt(dataset,N,F)即可,dataset是导入的数据集,N为所用SG平滑中多项式拟合的阶数,F为滑动卷积时的框架大小,F为奇数且满足F-1>N

%整体进行SG平滑
clc
clear

data = xlsread('C:\Users\HASEE\Desktop\练习数据.xlsx') %数据读取
data1 = data(2:end,1:end) 
y = sgolayfilt(data1,3,5)
subplot(2,1,1)
plot(data(1:1,:),data1)
title("原始光谱数据")
axis([935 1650 ,0,60])
subplot(2,1,2)
plot(data(1:1,:),y)
title("经过SG平滑后的光谱数据")
axis([935 1650 ,0,60])

高光谱预处理之SG平滑(Matlab实现)_第1张图片高光谱预处理之SG平滑(Matlab实现)_第2张图片

 

 

你可能感兴趣的:(高光谱预处理方法—matlab,matlab,数据分析)