What is a baseline correction?
A baseline correction is a correction applied to spectral data to remove broad spectral features that distort a region-of-interest. These broad spectral features may be related to analytical conditions or chemical factors, such as the composition of the analytical matrix. For quantitative analyses, it is often necessary to apply baseline corrections such that peak heights, widths, and areas become accessible. Quantitative methods may also require peak deconvolutions or alternative signal processing methods, for a more thorough review, please see this thorough review by Tom O'Haver.
What is the problem with baseline corrections?
Within the geologic sciences (and other fields, e.g., food science), baseline corrections are strongly influenced by user choice. For OH in nominally anhydrous minerals, common baseline correction methods include hand-fitting polynomials (1st - 3rd order), rubber-banding (imagine stretching a rubber band beneath the spectra), and hand-drawing spectra. This user choice therefore induces some amount of scatter and uncertainty in IR spectroscopic data, however this contribution is frequently assumed to be negligible relative to the uncertainties in other parameters, such as absorption coefficients, and is therefore ignored. The assumption of user-defined baselines imparting a negligible contribution is likely invalid under many conditions, as spectral parameters (e.g., signal-to-noise ratio) and user choice commonly induce uncertainties of 10-30%, but may be as high as ~50% (Jirasek et al. 2004). Therefore, it is necessary to have a uniform, reproducible method to baseline correct spectroscopic data such that the uncertainty due to user-choice is minimized.
What is Sigfind?
Sigfind is a code package developed using MATLAB that generates a baseline correction for spectroscopic data requiring minimal user input. Currently the code is set-up to determine a baseline for the OH-stretching region of nominally anhydrous minerals (NAMs; e.g., olivine, pyroxene, feldspar) with data quantified as absorbance, not transmittance. Realistically the code could be adapted to address other species, spectral regions, or data formats by modifying the inputs and some of the underlying parameters of the code. For OH in NAMS, the only user inputs required are an upper bound and lower bound on your region-of-interest, the raw data, and the thickness of your sample in microns. The thickness is only used to normalize the spectra to a sample thickness of 1 cm, thereby simplifying calculation of the OH concentration using the Beer-Lambert Law.
Where can I find out more, download, or contribute to Sigfind?
The Sigfind package is freely available for use on GitHub. Please see the ReadMe for more information.
Link: https://github.com/ldpete/sigfind
Link: https://github.com/ldpete/sigfind