Videre
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import numpy as np
|
||||
from scipy.signal._signaltools import convolve
|
||||
|
||||
|
||||
def _ricker(points, a):
|
||||
A = 2 / (np.sqrt(3 * a) * (np.pi**0.25))
|
||||
wsq = a**2
|
||||
vec = np.arange(0, points) - (points - 1.0) / 2
|
||||
xsq = vec**2
|
||||
mod = (1 - xsq / wsq)
|
||||
gauss = np.exp(-xsq / (2 * wsq))
|
||||
total = A * mod * gauss
|
||||
return total
|
||||
|
||||
|
||||
def _cwt(data, wavelet, widths, dtype=None, **kwargs):
|
||||
# Determine output type
|
||||
if dtype is None:
|
||||
if np.asarray(wavelet(1, widths[0], **kwargs)).dtype.char in 'FDG':
|
||||
dtype = np.complex128
|
||||
else:
|
||||
dtype = np.float64
|
||||
|
||||
output = np.empty((len(widths), len(data)), dtype=dtype)
|
||||
for ind, width in enumerate(widths):
|
||||
N = np.min([10 * width, len(data)])
|
||||
wavelet_data = np.conj(wavelet(N, width, **kwargs)[::-1])
|
||||
output[ind] = convolve(data, wavelet_data, mode='same')
|
||||
return output
|
||||
Reference in New Issue
Block a user