cupyx.scipy.signal.morlet2#
- cupyx.scipy.signal.morlet2(M, s, w=5)[源码]#
复 Morlet 小波,设计用于 cwt。返回 Morlet 小波的完整版本,并根据 s 进行归一化。
exp(1j*w*x/s) * exp(-0.5*(x/s)**2) * pi**(-0.25) * sqrt(1/s)
- 参数:
- 返回:
morlet
- 返回类型:
(M,) ndarray
另请参阅
morlet
Morlet 小波的实现,与 cwt 不兼容
注意
此函数设计用于 cwt。由于 morlet2 返回复数数组,因此为获得最佳结果,cwt 的 dtype 参数应设置为 complex128。
请注意其与 morlet 实现的差异。此小波的基频(以 Hz 为单位)由下式给出
f = w*fs / (2*s*np.pi)
其中
fs
是采样率,s 是小波宽度参数。类似地,我们可以获得频率为f
时的小波宽度参数s = w*fs / (2*f*np.pi)
示例
>>> from cupyx.scipy import signal >>> import matplotlib.pyplot as plt >>> M = 100 >>> s = 4.0 >>> w = 2.0 >>> wavelet = signal.morlet2(M, s, w) >>> plt.plot(abs(wavelet)) >>> plt.show()
此示例展示了在时频分析中将 morlet2 与 cwt 结合使用的基本方法
>>> from cupyx.scipy import signal >>> import matplotlib.pyplot as plt >>> t, dt = np.linspace(0, 1, 200, retstep=True) >>> fs = 1/dt >>> w = 6. >>> sig = np.cos(2*np.pi*(50 + 10*t)*t) + np.sin(40*np.pi*t) >>> freq = np.linspace(1, fs/2, 100) >>> widths = w*fs / (2*freq*np.pi) >>> cwtm = signal.cwt(sig, signal.morlet2, widths, w=w) >>> plt.pcolormesh(t, freq, np.abs(cwtm), cmap='viridis', shading='gouraud') >>> plt.show()