Asymmetric least‐squares baseline algorithm with peak screening for automatic processing of the Raman spectra. (4th August 2020) - Korepanov, Vitaly I.
Abstract: The signal in Raman spectroscopy has three components: vibrational bands, noise, and luminescence. Although the noise can be easily separated from the Raman bands either by a variety of algorithms or by adjusting the measurement conditions, to distinguish between the luminescence and the Raman peaks is a challenging task. Even though a number of algorithms have been proposed for this purpose, most of them show poor performance when applied to broad overlapping Raman bands with extended tails. A practical example of such a case can be found in many carbon‐based nanoscale materials with some degree of disorder, where the two close‐lying D and G bands dominate the spectrum. Conventional asymmetric least‐squares algorithms generate a baseline with penalizing the second derivative of the baseline itself. Instead, the approach suggested in the present work is based on an assumption that the vibrational bands can be "detected" and "masked" by their first and second derivatives of the raw spectrum. This makes it possible to handle the broad tails and superimposed bands very efficiently. The proposed algorithm was compared to several state‐of‐the‐art approaches including original and recently proposed ALS implementations, wavelet‐transform, and morphological algorithms. The "quality" of different algorithms was quantitatively estimated by adding random smooth curves to the spectrum. It was found that among the tested approaches, the peak‐screened ALS algorithm shows the best separation of the broad superimposed Raman peaks from the smooth random baselines. The Python code of the algorithm is provided. Abstract : Most baseline subtraction algorithms show inconsistent results when applied to a superposition of broad peaks with extended tails. The algorithm proposed in this work can handle efficiently such situations. It is compared with several state‐of‐the‐art approaches; the Python code is provided.