正如标题所示,我想用Python定义我自己的连续小波。然而,我不知道如何准确地实现这一点。
我的小波母函数的公式如下

它看起来有点像墨西哥帽子小波,但它们是不同的。
那么,我如何通过Python定义这样一个自定义小波,然后使用这个小波来执行CWT呢?
发布于 2020-11-28 16:14:56
对于每个this,您需要一个接受多个点和一个刻度的函数来作为wavelet参数提供
所以我们这样定义它:
import math
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
mother_wavelet = lambda z : np.exp(-z*z/4)*(2-z*z)/(4*math.sqrt(math.pi))
def mexican_hat_like(n,scale):
    x = np.linspace(-n/2,n/2,n)
    return mother_wavelet(x/scale)让我们来测试一下。我们注意到,实际上与您的非常相似的东西是available。不同之处在于缩放a,而且常数是正面看起来略有不同。注意Ricker小波的math.sqrt(2)缩放
points = 100
a = 4.0
vec_ours = mexican_hat_like(points, a)
vec_theirs = signal.ricker(points, a*math.sqrt(2))
plt.plot(vec_ours, label = 'ours')
plt.plot(vec_theirs, label = 'ricker')
plt.legend(loc = 'best')
plt.show()图表如下:

https://stackoverflow.com/questions/65046484
复制相似问题