clc;
clear;
close all;
%[WaveLength,Orig_Spectrum]=textread('Neodymium_Oxide.txt','%f%f','headerlines',3);
[WaveLength,Orig_Spectrum]=textread('Alunite_GDS84_Na03.txt','%f%f','headerlines',3);
Spectrum=Orig_Spectrum;
M=ones(11,6);
M(:,2)=-5:1:5;
M(:,3)=M(:,2).^2;
M(:,4)=M(:,2).^3;
M(:,5)=M(:,2).^4;
M(:,6)=M(:,2).^5;
%Coff=regress(SpectrumValue,M);
for i=1:length(Spectrum)
if i<=5||i>=length(Spectrum)-4
FiltedSpectrum(i)=Spectrum(i);
continue;
end
Coff=regress(Spectrum(i-5:i+5),M);
TempSpectrum=M*Coff;
FiltedSpectrum(i)=TempSpectrum(6);
end
TempSpectrum=FiltedSpectrum';
FiltedSpectrum=TempSpectrum;
subplot(2,1,1)
plot(WaveLength,Orig_Spectrum)
%--legend('OriginalSpectrum of 氧化钕')
%text(1.8,0.93,'OriginalSpectrum of 氧化钕')
text(1.8,0.93,'OriginalSpectrum of Al')
subplot(2,1,2)
plot(WaveLength,FiltedSpectrum)
%--legend('FiltedSpectrum of 氧化钕')
%text(1.8,0.93,'FiltedSpectrum of 氧化钕')
text(1.8,0.93,'FiltedSpectrum of Al')
Deri_Spectrum=diff(FiltedSpectrum);
DeriSpectrum=zeros(1,length(Deri_Spectrum)+1);
DeriSpectrum(2:end)=Deri_Spectrum;
DeriSpectrum(1)=Deri_Spectrum(1);
figure
plot(WaveLength,FiltedSpectrum)
hold on
plot(WaveLength,DeriSpectrum*4,'--r')
plot(WaveLength,zeros(1,length(WaveLength)),':k')
legend('FiltedSpectrum',['1','^{','st','}',' order Derivative FiltedSpectrum(\times4) '],1)
hold off