scipy.signal.cwt получает ошибку значения в correlate()
Я получаю странную ошибку при попытке использовать scipy.signal.cwt:
У меня есть список c
и я хочу взять непрерывное вейвлет-преобразование следующим образом:
scipy.signal.cwt(np.array(c), scipy.signal.morlet, np.arange(.01,.1,.01))
и я получаю странную ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-55-5af5e14b96cd> in <module>()
----> 1 sig.cwt(a, sig.morlet, np.arange(.01,.1,.01))
/usr/local/lib/python2.7/site-packages/scipy/signal/wavelets.pyc in cwt(data, wavelet, widths)
359 wavelet_data = wavelet(min(10 * width, len(data)), width)
360 output[ind, :] = convolve(data, wavelet_data,
--> 361 mode='same')
362 return output
/usr/local/lib/python2.7/site-packages/scipy/signal/signaltools.pyc in convolve(in1, in2, mode)
270
271 if np.iscomplexobj(kernel):
--> 272 return correlate(volume, kernel[slice_obj].conj(), mode)
273 else:
274 return correlate(volume, kernel[slice_obj], mode)
/usr/local/lib/python2.7/site-packages/scipy/signal/signaltools.pyc in correlate(in1, in2, mode)
129 in1zpadded = np.zeros(ps, in1.dtype)
130 sc = [slice(0, i) for i in in1.shape]
--> 131 in1zpadded[sc] = in1.copy()
132
133 if mode == 'full':
ValueError: could not broadcast input array from shape (66467) into shape (66466)
Что вызывает эту ошибку?
1 ответ
Решение
Третий аргумент scipy.signal.cwt
это ширина, которая должна быть больше 1, поэтому измените код на:
scipy.signal.cwt(np.array(c), scipy.signal.morlet, np.arange(.01,.1,.01) * len(c))