pp_emsc — Extended multiplicative scatter correction (EMSC)

Group: Preprocessing · C ABI: n4m_transform_emsc_*

Description

Extended Multiplicative Scatter Correction (polynomial).

Parameters

Name

Type

Default

degree

int

2

API and bindings

C ABI (ABI 2): n4m_transform_emsc_create · n4m_transform_emsc_destroy · n4m_transform_emsc_fit · n4m_transform_emsc_get_reference · n4m_transform_emsc_is_fitted · n4m_transform_emsc_reference_size · n4m_transform_emsc_set_reference · n4m_transform_emsc_transform. Use the linked public header for the exact signature, configuration, and result handles.

Python (verified public re-export):

from n4m.transform.scatter import EMSC

Source signature: EMSC(degree: int = 2).

R (source-verified): emsc_fit(X, degree = 2L).

library(n4m)
result <- emsc_fit(X)

MATLAB / Octave: no current source-verified entry point was found for this catalog method.

Explanations

Bibliographic source

Martens & Stark (1991), Extended multiplicative signal correction and spectral interference subtraction, Journal of Pharmaceutical and Biomedical Analysis 9, 625–635, https://doi.org/10.1016/0731-7085(91)80188-F.

Mathematical principle

Each spectrum is regressed on the fitted mean reference plus polynomial channel terms through the requested degree. Subtracting polynomial contributions and dividing by the reference coefficient extends MSC to smooth additive backgrounds.

Appropriate uses

Correcting multiplicative scatter together with smooth baseline curvature while preserving the reference-shaped chemical contribution.

Limits and validation

The polynomial basis can absorb broad analyte variation, and this implementation does not accept arbitrary constituent/interferent spectra. Fit the reference on training data only.

Implementation

n4m.transform.scatter.EMSC uses n4m_transform_emsc_*; the training reference and per-row least-squares correction are in preprocessing/scatter/emsc.c.

The ABI-2 implementation is the n4m_transform_emsc_* lifecycle in libn4m.

Sources and provenance

https://doi.org/10.1016/0731-7085(91)80188-F; https://github.com/GBeurier/nirs4all-methods/blob/main/cpp/src/core/preprocessing/scatter/emsc.c


See also: methods index · interactive dashboard