cupyx.scipy.signal.cwt#
- cupyx.scipy.signal.cwt(data, wavelet, widths)[source]#
连续小波变换。
使用 wavelet 函数对 data 执行连续小波变换。CWT 使用 wavelet 函数对 data 进行卷积,该函数由宽度参数和长度参数表征。
- 参数:
data ((N,) ndarray) – 要执行变换的数据。
wavelet (function) – 小波函数,应接受 2 个参数。第一个参数是返回向量将包含的点数 (len(wavelet(length,width)) == length)。第二个参数是宽度参数,定义小波的大小(例如,高斯函数的标准差)。参见 ricker 函数,它满足这些要求。
widths ((M,) sequence) – 用于变换的宽度列表。
- 返回:
cwt – 形状为 (len(widths), len(data))。
- 返回类型:
(M, N) ndarray
注意
length = min(10 * width[ii], len(data)) cwt[ii,:] = cupyx.scipy.signal.convolve(data, wavelet(length, width[ii]), mode='same')
示例
>>> import cupyx.scipy.signal >>> import cupy as cp >>> import matplotlib.pyplot as plt >>> t = cupy.linspace(-1, 1, 200, endpoint=False) >>> sig = cupy.cos(2 * cupy.pi * 7 * t) + cupyx.scipy.signal.gausspulse(t - 0.4, fc=2) >>> widths = cupy.arange(1, 31) >>> cwtmatr = cupyx.scipy.signal.cwt(sig, cupyx.scipy.signal.ricker, widths) >>> plt.imshow(abs(cupy.asnumpy(cwtmatr)), extent=[-1, 1, 31, 1], cmap='PRGn', aspect='auto', vmax=abs(cwtmatr).max(), vmin=-abs(cwtmatr).max()) >>> plt.show()