python - 如何从一维数组中获得正确的波峰和波谷

标签 python arrays numpy

我们正在尝试从一维数组中找到波峰和波谷。

我们正在使用 numpy.r_()它从数组中找到每个波峰和波谷,但我们只需要与膈肌运动的松弛和收缩点相对应的波峰和波谷。

是否有拒绝错误的最小和最大点的函数?

看下面一个不好的例子:

enter image description here

最佳答案

您有高频、小振幅的振荡,这对于峰值查找而言是不可取的。在搜索峰之前过滤掉它们。一个简单的过滤器是 1-dimensional Gaussian来自 scipy.ndimage。在你的图表上,似乎

smooth_signal = ndimage.gaussian_filter1d(signal, 5)

应该是正确的(窗口大小应该足够大以抑制不需要的振荡,但也应该足够小以不扭曲实际峰值)。然后将您的峰值查找算法应用于 smooth_signal

signal processing module有更复杂的过滤器,但需要一些时间才能学会使用。

关于python - 如何从一维数组中获得正确的波峰和波谷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47962044/

相关文章:

python - 将 x 浮点舍入为 y,并减少尾数(有效) float

python - Tornado reverse_url()

C++一旦到达行尾就停止将文本输入到二维数组中

python - 在matplotlib python中找到对应于y轴的x轴值

python - 高效的概率树分支

python - 使用 apply 将从一列(具有 json 类型)提取的值插入到另一列

python - 有没有一种有效的方法可以将一个字符串拆分为两个字符串?

java - 在java中为数组分配随机数(不重复)

Java – 使用二维数组和构造函数(初学者)

python - Cython 将 double 复合体返回到 float 复合体会导致表达式不在纯 C 中