2015-06-24 44 views
4

我正在尋找某些光譜儀數據中的某些峯,並試圖使用scipy.signal.find_peaks_cwt()函數來完成此操作。Python中的峯值檢測:scipy.signal.find_peaks_cwt函數如何工作?

但是,我發現的official documentation不是太具描述性,並且傾向於拾取噪音中的虛假峯,而有時不拾取數據中的實際峯值。

任何人都可以給我一個更好的解釋,我可以玩這個功能,包括「寬度」的參數,或者你可以告訴我一些替代品?

+0

您是否嘗試查看該函數的源代碼? – wwii

+1

甚至在您鏈接的描述底部的註釋中? – jojek

+1

可能重複的http://stackoverflow.com/questions/28822327/units-of-widths-argument-to-scipy-signal-cwt-function –

回答

4

如果你的信號比較乾淨,我建議先使用更簡單的alternatives,比如PeakUtils indexes function。該代碼的方式比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)) 

enter image description here

的SciPy的find_peaks_cwt將真正證明有用的噪聲數據的存在,因爲它使用continuous wavelet transform