i need a algorithm for peak detection in raman spectroscopy. I tried this one, but it did not give me satisfying results.

Spectrums may look like this:

Spectrum of Toluene

In professional software, i think they use the fact that the peaks can be fitted as lorentz-Peaks.

However i don't really know how to start with it. I think i would still need some way to detect the peaks itself, so i can fit to it? What i need then is a function where i give the spectrum as input (so a list of ($x$|$y$) tuples) and get the center and half-width of each peak. It should be robust against noise, but still detect shoulder-peaks, so small peaks which are overlapping into a stronger peak.

Ideally, i don't want to dig too deep into signal processing theories, but i suspect i might have to.

If possible, it should detect lorentz-shaped or gaussian-shaped peaks even when the $y$-axis is nonlinear "distorted". Meaning there is a correlation between the measured $y$-values in pixels, and the true values in $cm^{-1}$, which is not linear, but some quadratic or even cubic relation, which will not always be known.

  • $\begingroup$ I see that your question is being closed. This is sad, because I can't help but feel the problem is still open on many directions: sampling, peak model, robust fit, noise priors, baseline, sparsity and nonlinear distorsion. I still do work on parts of these. $\endgroup$ – Laurent Duval Jun 13 at 21:09
  • $\begingroup$ I even believe that, outside spectroscopy, even Fourier analysis would benefit from a streamline processing as sketched, and I don't know of a proxy yet $\endgroup$ – Laurent Duval Jun 13 at 21:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.