【问题标题】:Removing the baseline from data从数据中删除基线
【发布时间】:2017-04-01 11:13:28
【问题描述】:

我想删除基线并最终使用 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")

我的数据与here(下图)的形状相同,但显然已经删除了背景。

【问题讨论】:

标签: python numpy scipy data-fitting peakutils


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2021-06-20
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多