我们正试图从1d阵列中找到峰值和谷值。
我们使用numpy.r_()
并且它从阵列中找到每个峰和谷,但我们只想要与膈肌运动的松弛和收缩点相对应的峰和谷。
是否有任何功能拒绝错误的最小和最大点?
请参阅下面的错误示例:
答案 0 :(得分:2)
您有高频,小振幅振荡,这对于峰值发现而言是不合需要的。在搜索峰值之前将其过滤掉。一个简单的过滤器是来自scipy.ndimage的1-dimensional Gaussian。在图表的比例上,似乎
smooth_signal = ndimage.gaussian_filter1d(signal, 5)
应该是正确的(窗口尺寸应该足够大以抑制不必要的振荡,但小到足以不扭曲实际的峰值)。然后将您的峰值查找算法应用于smooth_signal
。
signal processing module有更复杂的过滤器,但这需要一些时间来学习使用。