0

我想删除基线并最终使用 python 找到一些噪声数据的峰值(如果有人以前有过拉曼散射测量的经验)。

按照 PeakUtils 库 ( https://pythonhosted.org/PeakUtils/tutorial_a.html ) 上的指南,作者将数据拟合到一个带有 polyval 的多项式,然后在此基础上找到一个基线并减去它。

我的问题是 a) 为什么要费心为数据拟合多项式,为什么不直接从数据中删除基线?b) 参数 [0.002,-0.08,5] 传递给 polyval 有什么意义?我需要为自己的数据微调这些吗?有人可以解释这对我有用吗?

y2 = y + numpy.polyval([0.002,-0.08,5], x)
pyplot.figure(figsize=(10,6))
pyplot.plot(x, y2)
pyplot.title("Data with baseline")

base = peakutils.baseline(y2, 2)
pyplot.figure(figsize=(10,6))
pyplot.plot(x, y2-base)
pyplot.title("Data with baseline removed")

我的数据与此处(下图)的形状相同,但显然已经删除了背景。拉曼样本数据

4

1 回答 1

2

在 PeakUtils 指南中,[0.002, -0.08, 5]它们传递到polyval代表 y = 0.002*x^2 - 0.08*x + 5,这是为了创建看起来像抛物线的示例数据(“U 形基线的右侧部分”)。通过传递更短或更长的多项式系数列表,它可以是平坦的、直线的或任何其他的。示例数据称为y2,它是前面示例数据y和人为添加的基线与的总和polyval

然后他们应用peakutils.baseline结果y2,指定一个2可能是拟合程度的参数(再次,抛物线,因为它看起来是抛物线,但您可能必须尝试其他人进行比较)。peakutils.baseline将拟合抛物线(即计算其系数),然后返回抛物线上与您的每个点相对应的y2点。最后,y2-base是针对基线校正的数据。

您的数据看起来很平坦,因此不需要校正基线(可能除了垂直偏移)。

于 2016-11-19T10:28:01.760 回答