EMSC: Extended multiplicative signal correction (EMSC)

Description Usage Arguments Details Value References See Also Examples

View source: R/EMSC.R

Description

Performs model-based background correction and normalisation of spectra. EMSC handles variations in scaling, polynomial baselines and interferents. Parameters for corrections are stored for further analysis, and spectra are corrected accordingly.

Usage

1
EMSC(X, model = NULL, ...)

Arguments

X

matrix containing spectra as rows.

model

an EMSC model to use instead of the other parameters.

...

named model parameters for EMSC_model.

Details

This is the main EMSC function performing all calculations. It can be run with no parameters (defaults are used), with a predefined EMSC model object or with parameters that are passed on to the EMSC model building function EMSC_model.

Value

An object of class EMSC is returned. This contains:

References

H. Martens, E. Stark, Extended multiplicative signal correction and spectral interference subtraction: new preprocessing methods for near infrared spectroscopy. J Pharm Biomed Anal. 1991; 9(8):625-35.

Joakim Skogholt, Kristian Hovde Liland, Ulf Geir Indahl, Pre-processing of spectral data in the extended multiplicative signal correction framework using multiple reference spectra Journal of Raman Spectroscopy 50(3), (2019), pp. 407-417.

See Also

EMSC_model predict.EMSC plot.EMSC

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
data(fishoil)
Raman      <- fishoil$Raman[, 850:3300]
EMSC.basic <- EMSC(Raman)
EMSC.poly6 <- EMSC(Raman, degree = 6)
EMSC.rep   <- EMSC(Raman, degree = 6, reference = Raman[30, ],
                   replicates = fishoil$replicates)

old.par  <- par(mfrow = c(2,2), mar = c(4,4,1,1))
xlim     <- rev(as.numeric(range(colnames(Raman))))
matplot(colnames(Raman), t(Raman), type = 'l', xlim = xlim,
        ylab = 'Relative intensity', xlab = 'Raw spectra')
matplot(colnames(Raman), t(EMSC.basic$corrected), type = 'l', xlim = xlim,
        ylab = 'Relative intensity', xlab = 'Corrected (basic)')
matplot(colnames(Raman), t(EMSC.poly6$corrected), type = 'l', xlim = xlim,
        ylab = 'Relative intensity', xlab = 'Corrected (6th degree polynomial)')
matplot(colnames(Raman), t(EMSC.rep$corrected),   type = 'l', xlim = xlim,
        ylab = 'Relative intensity', 
        xlab = 'Corrected (reference = spec. #30, replicate correction (90%))')
par(old.par)

EMSC documentation built on Sept. 21, 2021, 1:06 a.m.

Related to EMSC in EMSC...