scipy.signal.find_peaks_cwt¶
- scipy.signal.find_peaks_cwt(vector, widths, wavelet=None, max_distances=None, gap_thresh=None, min_length=None, min_snr=1, noise_perc=10, window_size=None)[源代码]¶
用小波变换在一维阵列中寻找峰值。
一般的方法是平滑 vector 通过将其与 wavelet(width) 对于中的每个宽度 widths 。相对最大值出现在足够长的尺度上,并且具有足够高的信噪比,可以接受。
- 参数
- vectorndarray
要在其中查找峰值的一维阵列。
- widths浮点或序列
用于计算CWT矩阵的单一宽度或类似一维数组的宽度。通常,此范围应覆盖感兴趣的峰值的预期宽度。
- wavelet可调用,可选
应该接受两个参数并返回要卷积的一维数组 vector 。第一个参数确定返回的小波数组的点数,第二个参数是尺度 (width )。应该是规格化的和对称的。默认值为Ricker小波。
- max_distancesndarray,可选
在每一行,仅当行中的相对最大值 [n] 都在里面
max_distances[n]
从以下位置的相对最大值开始row[n+1]
。默认值为widths/4
。- gap_thresh浮动,可选
如果在以下范围内未找到相对最大值 max_distances ,将会有一个缺口。如果山脊线超过 gap_thresh 点,而不连接新的相对最大值。默认值为宽度数组的第一个值,即宽度 [0] 。
- min_length整型,可选
脊线的最小长度必须是可接受的。默认值为
cwt.shape[0] / 4
即宽度的1/4。- min_snr浮动,可选
最小信噪比。默认值1。该信号是最短长度刻度下的CWT矩阵的值 (
cwt[0, loc]
),噪音是 noise_perc 窗口中包含的数据点的第 window_size 周围cwt[0, loc]
。- noise_perc浮动,可选
计算噪声下限时,要考虑噪声的数据点的百分位数。使用以下方式计算 stats.scoreatpercentile 。默认值为10。
- window_size整型,可选
用于计算噪声底的窗口大小。默认值为
cwt.shape[1] / 20
。
- 退货
- peaks_indicesndarray
中位置的索引 vector 在那里发现了山峰。列表已排序。
参见
cwt
连续小波变换。
find_peaks
根据峰值属性查找信号内部的峰值。
注意事项
该方法是为在噪声数据中寻找尖峰而设计的,但是如果参数选择得当,它应该能够很好地处理不同的峰形。
- 算法如下:
对其执行连续小波变换 vector ,对于提供的 widths 。这是卷积的 vector 使用 wavelet(width) 对于中的每个宽度 widths 。看见
cwt
。识别cwt矩阵中的“脊线”。这些是每行的相对最大值,跨相邻行连接。请参阅IDENTIFY_RONG_LINES
过滤使用过滤脊线连接脊线。
0.11.0 新版功能.
参考文献
- 1
生物信息学(2006)22(17):2059-2065。 DOI:10.1093/bioinformatics/btl355
示例
>>> from scipy import signal >>> xs = np.arange(0, np.pi, 0.05) >>> data = np.sin(xs) >>> peakind = signal.find_peaks_cwt(data, np.arange(1,10)) >>> peakind, xs[peakind], data[peakind] ([32], array([ 1.6]), array([ 0.9995736]))