How do I perform multiplicative scatter correction on a set of NIR data?
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!
1 Comment
Nellikin
on 26 Mar 2013
I need to do this too? Sadly, no answers...
Answers (3)
Md Syduzzaman
on 7 Sep 2016
Edited: Md Syduzzaman
on 7 Sep 2016
1 vote
amengmeng
on 30 May 2017
0 votes
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
on 20 Feb 2019
0 votes
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
1 Comment
Merkebu Getachew
on 13 Aug 2021
are these scripts on R or MATLAB?
Categories
Find more on Image Filtering and Enhancement 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!