编程语言
首页 > 编程语言> > Python基线校正库

Python基线校正库

作者:互联网

我目前正在使用一些拉曼光谱数据,我正在尝试纠正由于花期偏斜引起的数据.看看下面的图表:

我非常接近实现我的目标.正如你所看到的,我试图在我的所有数据中拟合多项式,而我应该只是在局部最小值处拟合多项式.

理想情况下,我希望有一个多项式拟合,当从我的原始数据中减去时会得到类似这样的结果:

是否有任何内置的库已经这样做了吗?

如果没有,可以为我推荐任何简单的算法吗?

解决方法:

我找到了一个问题的答案,只是为每个偶然发现的人分享.

P. Eilers和H. Boelens在2005年有一种叫做“Asymmetric Least Squares Smoothing”的算法.这篇论文是免费的,你可以在google上找到它.

def baseline_als(y, lam, p, niter=10):
  L = len(y)
  D = sparse.csc_matrix(np.diff(np.eye(L), 2))
  w = np.ones(L)
  for i in xrange(niter):
    W = sparse.spdiags(w, 0, L, L)
    Z = W + lam * D.dot(D.transpose())
    z = spsolve(Z, w*y)
    w = p * (y > z) + (1-p) * (y < z)
  return z

标签:python,numpy,scipy,signal-processing
来源: https://codeday.me/bug/20190930/1835612.html