Is there a similar function in Python that can do that?
据我所知,在Numpy/Scipy/Python中没有这样的函数。然而,创建一个并不难。总体思路如下:
给定值向量:找出(s)峰的位置。我们叫他们(u)
找到s的槽的位置,我们称之为l。
将模型拟合到(u)值对。我们称之为
将模型拟合到(l)值对。我们称之为(løp)
在(s)的域上求值(u_p),以获得上包络的插值。(我们叫他们(q_))
在(s)域上求值(l_p),以获得下包络的插值。(我们叫他们(qu l))。
如您所见,它是三个步骤(查找位置、拟合模型、评估模型)的序列,但应用了两次,一次用于信封的上部,一次用于信封的下部。
要收集(s)的“峰值”,您需要找到(s)的斜率从正变为负的点;要收集(s)的“槽”,您需要找到(s)的斜率从负变为正的点。
峰值示例:s=[4,5,4]5-4为正4-5为负
槽示例:s=[5,4,5]4-5为负5-4为正
下面是一个示例脚本,让您从大量内联注释开始:from numpy import array, sign, zeros
from scipy.interpolate import interp1d
from matplotlib.pyplot import plot,show,hold,grid
s = array([1,4,3,5,3,2,4,3,4,5,4,3,2,5,6,7,8,7,8]) #This is your noisy vector of values.
q_u =