Python中的峰值检测:scipy.signal.find_peaks_cwt函数是如何工作的?

utugiqy6  于 2023-01-26  发布在  Python
关注(0)|答案(1)|浏览(226)

我想在一些光谱仪数据中识别一些峰值,并尝试使用scipy.signal.find_peaks_cwt()函数来完成。
但是,我发现official documentation的描述性不强,往往会拾取噪声中的假峰值,而有时却不能拾取数据中的实际峰值。
有没有人能给予我一个更好的解释这个函数中我可以玩的参数,包括“宽度”,或者你能给我看一些替代方案吗?

bxfogqkk

bxfogqkk1#

如果你的信号相对干净,我建议先使用简单的alternatives,比如PeakUtils索引函数,它的代码比scipy.signal.find_peaks_cwt更直接:

import numpy as np
from peakutils.peak import indexes
vector = [ 0, 6, 25, 20, 15, 8, 15, 6, 0, 6, 0, -5, -15, -3, 4, 10, 8, 13, 8, 10, 3, 1, 20, 7, 3, 0 ]
print('Detect peaks with minimum height and distance filters.')
indexes = indexes(np.array(vector), thres=7.0/max(vector), min_dist=2)
print('Peaks are: %s' % (indexes))

Scipy find_peaks_cwt将真正证明在存在噪声数据的情况下是有用的,因为它使用continuous wavelet transform

相关问题