Argumento de unidades de "anchuras" para la función scipy.signal.cwt ()
Estoy confundido sobre elwidths
parámetro que se pasa ascipy.signal.cwt()
y por extensión ascipy.signal.find_peaks_cwt()
. UNApregunta anterior y muy útil sobre desbordamiento de pila (y sugerencias) explicaron la mayor parte de mi confusión. loswidths
es una matriz de escalas para estirar la wavelet antes de la convolución con sus datos.
El punto que todavía me confundió es,¿Cuáles son las unidades de los elementos dewidths
? ¿Un ancho de 1 significa que la wavelet se estira para tener un "índice" de ancho, donde el índice es la distancia entre elementos dedata
? Al principio supuse que este era el caso, pero (a) los anchos pueden tomar valores no enteros, y (b) los resultados de cwt () pueden variar según los anchos.
Aquí hay un código que ilustra mi confusión. ¿Por qué las dos últimas líneas dan resultados diferentes?
#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
Los resultados son cercanos, pero la segunda llamada encuentra un pico espurio en el elemento 63 de los datos de entrada. Por lo tanto, no estoy convencido de que las unidades de ancho sean índices del vector de datos. ¿Pero qué más podrían ser? Si no, ¿cuáles son las unidades dewidths
? cwt()
yfind_peaks_cwt()
nunca conozca ni vea ninguna unidad del eje x (p. ej.support
vector que defino en mi código), entonces, ¿qué me estoy perdiendo? ¿Cuándo, prácticamente hablando, tiene sentido usar anchos no enteros?