Extended Multiplicative Scatter Correction (EMSC)

Description

This function implements an EMSC similar to the approach described in Martens2003 (see below). In contrast to the notation there, all reference spectra are given in one matrix. Arguments bg.comps and norm.comps specify which spectra belong to background components or should be considered for normalization.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  emsc(X, Reference = NULL, bg.comps = NULL,
    norm.comps = NULL, ...)

  ## S4 method for signature 'hyperSpec,numeric'
emsc(X, Reference,
    bg.comps, norm.comps, ...)

  ## S4 method for signature 'hyperSpec,matrix'
emsc(X, Reference, bg.comps,
    norm.comps, ...)

  ## S4 method for signature 'hyperSpec,missing'
emsc(X, Reference,
    bg.comps, norm.comps, ...)

  ## S4 method for signature 'hyperSpec,hyperSpec'
emsc(X, Reference,
    bg.comps, norm.comps, ...)

Arguments

X

spectra matrix in rows

Reference

constituents matrix in rows

matrix with reference spectra rows

bg.comps

background components indices

norm.comps

normalization components indices

...

hyperSpec method: further arguments to decomposition

Details

Polynomials can be generated with vanderMonde.

Value

new spectra matrix

hyperSpec method: hyperSpec object containing emsc corrected spectrum of input hyperSpec object X, given matrix: Reference, vectors: bg.comps, norm.comps, indices.

hyperSpec method: hyperSpec object containing emsc corrected spectrum of input hyperSpec objects: X and Reference, vectors: bg.comps and norm.comps, indices.

Author(s)

C.Beleites & S. Fuller

References

Martens, H.; Nielsen, J. P. and Engelsen, S. B.: Light Scattering and Light Absorbance Separated by Extended Multiplicative Signal Correction. Application to Near-Infrared Transmission Analysis of Powder Mixtures, Analytical Chemistry (2003) 75, 394-404.

See Also

msc was used as starting point for this function.

vanderMonde

Examples

1
2
3
4
vmflu <- vanderMonde (flu, 2, normalize.wl = normalize01)
Refs <- collapse (normalize01 (flu[6,]), vmflu)
plot (Refs)
plot (emsc (flu, Refs, bg.comps = 2 : 4, norm.comps = 1))