scipy.signal.

morlet2#

scipy.signal.morlet2(M, s, w=5)[源代码]#

一个设计成与 cwt 配合工作的复数 Morlet 小波。

已弃用,自 1.12.0 版本开始: scipy.signal.morlet2 已于 SciPy 1.12 中弃用,且将在 SciPy 1.15 中删除。我们建议使用 PyWavelets 来代替。

返回 Morlet 小波的完整版本,根据 s 归一化。

exp(1j*w*x/s) * exp(-0.5*(x/s)**2) * pi**(-0.25) * sqrt(1/s)
参数:
Mint

小波的长度。

sfloat

小波的宽度参数。

wfloat,可选

Omega0。默认为 5

返回:
morlet(M,) ndarray

参见

morlet

小波 Morlet 实现,与 cwt 不兼容。

备注

已添加至 1.4.0 版本。

此函数被设计为与 cwt 协同工作。由于 morlet2 返回一个复数数组,cwtdtype 参数应设置为 complex128,以达到最佳结果。

注意此实现与 morlet 的不同之处。此小波的基频(以 Hz 为单位)由下式指定:

f = w*fs / (2*s*np.pi)

其中 fs 是采样率,s 是小波宽度参数。类似地,我们可以得到 f 处的小波宽度参数

s = w*fs / (2*f*np.pi)

范例

>>> import numpy as np
>>> from 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()
../../_images/scipy-signal-morlet2-1_00_00.png

此示例展示了 morlet2cwt 在时频分析中的基本用法

>>> 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()
../../_images/scipy-signal-morlet2-1_01_00.png