gpt4 book ai didi

python - 设置 scipy.signal.peak_widths 的绝对值

转载 作者:行者123 更新时间:2023-12-05 07:17:09 25 4
gpt4 key购买 nike

我刚刚开始使用 scipy 的信号函数。

在附图中,我试图找到曲线与任意阈值(检测到的峰值的左右)相交的坐标 A[n] 的位置。使用 peak_widths 给出点 B[n],其中 B 位于某个相对峰值位置。我正在寻找处于固定阈值的 A[n]。

我该如何解决这个问题?我还不能添加内嵌图片,因为我是 Stack exchange 的新手。附上图片。 提前致谢。

Annotated Plot from Code below

x = np.linspace(0, 6 * np.pi, 1000)
x = np.sin(x) #+ 0.6 * np.sin(2.6 * x)
peaks, _ = find_peaks(x,height=0.5)
threshold = 0.3
results_half = peak_widths(x, peaks, rel_height=0.5)
results_half[0] # widths
plt.plot(x)
plt.plot(peaks, x[peaks], "x",color='r')
plt.hlines(*results_half[1:], color="C2")
plt.axhline(threshold,color='green')

最佳答案

peak_width 用于计算全宽半最大“fwhm”(使用 rel_height=0.5)并且它很好(使用不同的 rel_heights)。所以它总是寻找峰曲线的“开始”和“结束”来计算那个峰的宽度。 (参见 scipy 示例:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.peak_widths.html?highlight=peak_width)

这就是 B1 和 B2 与 B3-B6 位于不同高度的原因。您可以看到 B1 和 B2 位于起点(该峰值信号的最低点)和第一个峰值(该峰值信号的最高点)的中间,而 B3-B6 位于它们的最低点和第一个峰值的中间最高分。

我想您正在寻找的是曲线与任意阈值定义的线之间的交点。尝试这样的事情:Intersection of two graphs in Python, find the x value或者您可以使用 prominence_data 参数,如下所示:python scipy.signal.peak_widths --> absolute heigth? (fft -3dB damping)

关于python - 设置 scipy.signal.peak_widths 的绝对值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58886564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com