在'scipy.find_peaks'中threshold和prominence有什么区别?

11dmarpk  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(231)

我试图使用scipy.find_peaks找到噪声信号的峰值,我意识到我不完全理解阈值和突出参数之间的区别。
我理解,突出相当于地形突出,即。山峰相对于周围地形的高度。然而,我不太明白阈值论证在哪些方面与此不同。从上面的链接来看,这两个论点对我来说似乎是等价的。在这种情况下,阈值和突出度之间的区别到底是什么?

ohfgkhjo

ohfgkhjo1#

阈值大约是前后样本的垂直距离。日珥与最深谷的垂直距离差不多。
以下是对差异的直观解释:


的数据
在cos(x)的图中,峰值的阈值为0.191,突出度为2。
这有什么含义?

  • 阈值在区分单个样本上升然后下降的峰方面很好。
  • 突出度很好地区分了在几个样本的过程中上升和下降的峰。
  • 随着采样率的上升,单个阈值变得更具选择性。然而,显著性与采样率无关。(例如,在下面的示例中尝试将样本数从21更改为41,并查看阈值如何更改。)
  • 参数wlen控制搜索谷值以确定突出度的样本数量。如果设置wlen=3,那么突出度和阈值 * 是相同的。默认情况下,它将搜索到下一个较大的峰值。请参阅documentation

生成图形的代码

import matplotlib.pyplot as plt
import numpy as np
import scipy.signal
x = np.linspace(0, 4*np.pi, 21)
y = np.cos(x)
plt.plot(x, y)
# Show threshold and prominence for peak
print(scipy.signal.find_peaks(y, threshold=0, prominence=0))

字符串

相关问题