Einheiten des Arguments "widths" für die Funktion scipy.signal.cwt ()

Ich bin verwirrt über diewidths Parameter, der an @ übergeben wiscipy.signal.cwt() und als Erweiterung zuscipy.signal.find_peaks_cwt(). EINvorhergehende und sehr hilfreiche Stack Overflow-Frage (und die darin enthaltenen Hinweise) haben den größten Teil meiner Verwirrung beseitigt. Daswidths ist ein Array von Skalen, um die das Wavelet vor der Faltung mit Ihren Daten gedehnt werden soll.

Der Punkt, der mich immer noch verwirrt hat, ist,was sind die Einheiten der Elemente vonwidths? Bedeutet eine Breite von 1, dass das Wavelet auf eine "Index" -Breite gestreckt ist, wobei Index der Abstand zwischen den Elementen von @ isdata? Zuerst habe ich angenommen, dass dies der Fall ist, aber (a) die Breiten können nicht ganzzahlige Werte annehmen, und (b) cwt () -Ergebnisse können je nach Breite variieren.

Hier ist ein Code, der meine Verwirrung veranschaulicht. Warum ergeben die letzten beiden Zeilen unterschiedliche Ergebnisse?

#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

Die Ergebnisse sind nahe beieinander, aber der zweite Aufruf findet eine Störspitze am Element 63 der Eingabedaten. Daher bin ich nicht davon überzeugt, dass die Breiteneinheiten Indizes des Datenvektors sind. Aber was könnten sie noch sein? Wenn nicht, wie lauten die Einheiten deswidths? cwt() undfind_peaks_cwt() Nie etwas über x-Achsen-Einheiten wissen oder sie sehen (z. B. dassupport vector Ich definiere in meinem Code), also was fehle ich? Wann ist es praktisch überhaupt sinnvoll, nicht ganzzahlige Breiten zu verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage