scipy 信号 find_peaks_cwt 没有准确找到峰值?
·
回答问题
我有一个一维信号,我试图在其中找到峰值。我正在寻找完美的找到它们。
我目前正在做:
import scipy.signal as signal
peaks = signal.find_peaks_cwt(data, np.arange(100,200))
下面是带有红点的图表,显示了find_peaks_cwt()发现的峰的位置。

如您所见,计算的峰值不够准确。真正重要的是右手边的三个。
我的问题:如何使这个更准确?
更新:数据在这里:http://pastebin.com/KSBTRUmW
对于某些背景,我想做的是在图像中找到手指之间的空间。绘制的是手周围轮廓的 x 坐标。青色斑点 u003d 峰。如果有更可靠/更强大的方法,请发表评论。

Answers
解决了,解决方法:
先过滤数据:
window = signal.general_gaussian(51, p=0.5, sig=20)
filtered = signal.fftconvolve(window, data)
filtered = (np.average(data) / np.average(filtered)) * filtered
filtered = np.roll(filtered, -25)
然后按照rapelpy的回答使用angrelextrema。
结果:

更多推荐

所有评论(0)