How do I perform multiplicative scatter correction on a set of NIR data?

8 views (last 30 days)
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)

Md Syduzzaman
Md Syduzzaman on 7 Sep 2016
Edited: Md Syduzzaman on 7 Sep 2016
I am new here and not an expert, but try this, it might help. someone posted it.

amengmeng
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.

M.L
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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!