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

area under the curve between two troughs rather than integrating between the two points

我有一个 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 值。 与

相同

divide Y into negative and non negative groups and do the integral for each group separately

但速度更快。

从数学上讲它应该可行...但我不知道这是否是您想要的。

希望对您有所帮助。 :)