如何实施半自动峰值拣选

时间:2013-03-16 09:37:47

标签: r physics spectrum

我正在研究光致发光温度系列。因此,我在不同的温度下获得了几个强度Vs能量(eV)光谱。

我的问题是到目前为止我发现的信号处理/峰值发现包(Peaks,hyperSpec,msProcess,Timp和其他质谱/化学计量学包装)并不适合我的需要:

  • 峰值找不到“肩膀”(峰值位置太近,形成混合峰值(见3.75 eV))
  • hyperSpec和msProcess对我的使用过于自动化:光致发光峰的位置取决于温度,因此峰值识别在温度系列中不可重复。

我认为我应该实施的是:能够检测峰值的东西。肩膀(自动或使用locate()进行原始估计),要求手动识别找到的峰值,并输出每个峰值的标签,位置,强度和FWHM。这样我就可以准确地跟踪给定峰值(由其标签识别)在温度系列上的位置,强度和FWHM。

以下是温度序列图的示例:

Example temperature series

所以我的问题是:

  1. 您是否知道已经实现类似功能的软件包?
  2. 你认为我建议的做法是明智/可行吗?
  3. 非常感谢!

    Thibaud Ruelle

    PS:我希望我很清楚,不要犹豫要求我澄清。 PS2:我希望问题不是太笼统,如果需要,我可以提供一个典型的频谱。

1 个答案:

答案 0 :(得分:1)

免责声明:我从未亲自做过任何严重的峰值拟合。

话虽如此,我在这里看到两种方式,最终可能没有那么不同:

  • 功能数据分析,如@baptiste所说。
  • 拟合预定数量的已知形状的峰(例如,高斯或洛伦兹或Voigt) 然后使用这些的拟合参数作为新功能集进行进一步分析 FWHM将在拟合参数中编码。

哪种方法更适合您,可能取决于您计划的进一步分析。

更多点点滴滴:

  • 当您正在寻找肩膀时,一阶导数将不允许您检测所有峰值。您可以从第二衍生物的最小值获得足够有用的峰值拟合起点。然而,对于仅在某个较大峰值处显示为肩峰的峰值,这些位置将非常偏离(在较大峰值的低强度侧太远)。 封装信号实现了Savitzky-Golay滤波器,可以帮助实现这种方法。
  • 反卷积可能是检测峰位置的更好选择。
  • 您应该知道,这些方法会迅速“消耗”您的信噪比,如果您的基线低于峰值,解决方案可能会大大减少。我不知道fda在这方面是否更好,但我怀疑它是你试图解决的问题所固有的 您需要检查您获得的解决方案的稳定性。 SNR和可能的基线。

(不,hyperSpec不提供这样的东西。但是,如果你最终使用普遍适用的功能,欢迎你通过hyperSpec分发它,它仍然可以是你自己的包如果这是一个实质性的编程工作,你可以考虑申请谷歌夏季代码项目 - 今年的申请期即将开始。)