问题描述
我有大约 100 个严格正元素的一维数据数组。有些人会多一些,有些人会少一些。大多数元素都很小,但这个信号可能有尖峰,通常在 4 到 5 的范围内。
示例:
data = [0.44217042317282634,0.5371139455855275,0.44094305007577467,0.5703620638886562,0.5442900940823339,0.650659771810529,...,0.7121380290819317,0.6901401693275381]
如果我绘制信号,我会得到类似的信息:
在上图中,有 111 个不均匀分布的点。采样率根本不是恒定的。 如何计算上面蓝色阴影的面积?
一个非常重要的方面是,如果我有更多样本的类似信号,产生相同的图,我希望该区域保持不变(很明显,但仍然如此)。
我完全不熟悉采样率不均匀信号的积分技术。一些指导将不胜感激。谢谢!
解决方法
假设您知道采样时间,您可以使用 scipy:
import numpy as np
from scipy import interpolate
data = np.array([0.44217042317282634,0.5371139455855275,0.44094305007577467,0.5703620638886562,0.5442900940823339,0.650659771810529])
discrete_time = np.array([0.11,0.34,0.55,0.61,0.8,0.967])
area = interpolate.InterpolatedUnivariateSpline(discrete_time,data,k=1).integral(0,1)
print(area)