How do I perform multiplicative scatter correction on a set of NIR data?
8 views (last 30 days)
Show older comments
I have 60 near infrared (NIR) spectra that I would like to pre-treat using multiplicative scatter correction (MSC). I think I may need a specific toolbox (Statistics I think). I believe I have that already but not sure where to go from there!
Answers (3)
amengmeng
on 30 May 2017
Multiplicative Scatter Correction Algorithm As an estimate of the ideal sample, we can use for instance the average of the calibration set. Multiplicative scatter correction performs best if an offset correction is carried out first. For each sample:
where
xi: the ith spectrum of the collection used for calculation.
a, b: For each sample, a and b are estimated by ordinary least-squares regression of spectrum xi versus yAverage over the available wavelengths j.
Each value xij of the corrected spectrum xij (MSC) is calculated as:
where
xij: the intensity of the ith spectrum and jth wavelength of the collection used for calculation.
0 Comments
M.L
on 20 Feb 2019
it's a POLYNOMIAL CALCULATION;
you have to correct your 60 spectra(data_spectra) compared to de reference spectra
%% calculation
coeff=zeros(size(data_spectra,2),2);
for i=1:size(data_spectra,1) % MSC (y=ax+b)
coeff(i,:) = polyfit(data_ref,data_spectra (i,:),1);
end
N.B data_ref could be one of your 60 spectra
Then you correct you spectra based on the calculated coeff
data_corrected(x) will be: for each spectrom x=data_sepctra(i,:)-coeff(i,2)/coeff(i,1) % x=y-b/a
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!