Вы должны указать ширину ожидаемой ширины пика.Из документации Scipy :
1-D массив ширины для использования при расчете матрицы CWT.В общем, этот диапазон должен охватывать ожидаемую ширину интересующих пиков.
Вот пример, иллюстрирующий влияние ширины.
from scipy import signal
xs = np.arange(0, 20*np.pi, 0.05)
xs2 = np.arange(0, 20*np.pi, 0.025)
data = np.sin(xs)
data2 = np.sin(xs2)
data= data + data2[:1257]
peakind = signal.find_peaks_cwt(data, np.arange(1,200))
peakind, xs[peakind], data[peakind]
fig, ax = plt.subplots()
ax.set_title('Detect R peak')
ax.plot(data)
for peak in peakind:
ax.axvline(x=peak, color='r')
Это приводит только к глобальным пикам.
Но если вы измените ширину на np.arange (1100), вы также увидите другой локальный пик.
peakind = signal.find_peaks_cwt(data, np.arange(1,100))
Здесь методы обнаруживают больше пиков из-за разницы в ширине.