两个波谷之间的曲线下面积,而不是两点之间的积分



我有一个X(x(和Y(信号(数据的列表,我用它来计算波谷:

from scipy.signal import find_peaks
troughs, _= find_peaks(-signal)

现在我想计算第一个波谷和最后一个波谷之间的积分

from scipy.interpolate import InterpolatedUnivariateSpline   
x = range(1,len(signal)+1)
f = InterpolatedUnivariateSpline(x, y)
f.integral(peaks[1], peaks[-1])
which gives me: -1.477

鉴于此值为负值与它正在计算积分的事实一致。但是曲线下的面积呢?我们知道它们彼此不相等,因为积分可能是负数,但AUC不能。 有没有简单的方法来计算两个不同点之间的AUC?我能想到的一种方法是将Y分为负组和非负组,并分别对每个组进行积分。

您可以使用函数的abs值。 与

Y 分为负组和非负组,并对 每个组分别

但更快。

从数学上讲,它应该可以工作...但我不知道这是否是你想要的。

希望对您有所帮助。 :)

最新更新