Единицы аргумента «ширина» в функции scipy.signal.cwt ()

Я смущенwidths параметр, который передаетсяscipy.signal.cwt() и расширениемscipy.signal.find_peaks_cwt(),предыдущий и очень полезный вопрос переполнения стека (и указатели в нем) объяснили большую часть моего замешательства.widths массив весов, с помощью которого можно растянуть вейвлет до свертки с вашими данными.

Дело, которое смутило меня до сих пор,каковы единицы элементовwidths? Означает ли ширина 1, что вейвлет растянут до ширины в один «индекс», где индекс - это расстояние между элементамиdata? Сначала я предположил, что это так, но (a) ширина может принимать нецелые значения, и (b) результаты cwt () могут варьироваться в зависимости от ширины.

Вот код, который иллюстрирует мою путаницу. Почему последние две строки дают разные результаты?

#generating an arbitrary signal with overlapping gaussian peaks with various 
npeaks = 6
support = np.arange(0,1.01,0.01)
pkx = np.array([0.2, 0.3, 0.38, 0.55, 0.65]) #peak locations
pkfun = sum(stats.norm.pdf(support, loc=pkx[i], scale=0.03) for i in range(0,npeaks-1))

#finding peaks for two different setting of widths
pkindsOne = sig.find_peaks_cwt(pkfun, widths = np.arange(4,6), wavelet = sig.ricker)
pkindsTwo = sig.find_peaks_cwt(pkfun, widths = np.arange(4,6.4), wavelet = sig.ricker)

#printing to show difference between calls
for ind, el in enumerate(pkindsTwo):
    print el, pkindsOne[ind]
20 20
36 36
38 38
55 55
63 66
66 91
91

Результаты близки, но при втором вызове обнаруживается один ложный пик в элементе 63 входных данных. Таким образом, я не уверен, что единицы ширины являются индексами вектора данных. Но что еще они могут быть? Если нет, каковы единицыwidths? cwt() а такжеfind_peaks_cwt() никогда не узнавать и не видеть какие-либо единицы измерения по оси X (например,support вектор, который я определяю в своем коде), так чего мне не хватает? Когда, практически говоря, имеет ли смысл использовать нецелую ширину?

Ответы на вопрос(1)

Ваш ответ на вопрос