我们正在尝试从一维数组中找到波峰和波谷。
我们正在使用 numpy.r_()
它从数组中找到每个波峰和波谷,但我们只需要与膈肌运动的松弛和收缩点相对应的波峰和波谷。
是否有拒绝错误的最小和最大点的函数?
看下面一个不好的例子:
最佳答案
您有高频、小振幅的振荡,这对于峰值查找而言是不可取的。在搜索峰之前过滤掉它们。一个简单的过滤器是 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/