scipy.signal.morlet2

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)
参数
M集成

小波的长度。

s浮动

小波的宽度参数。

w浮动,可选

欧米茄0。默认值为5

退货
morlet(M,)ndarray

参见

morlet

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

注意事项

1.4.0 新版功能.

此函数旨在与 cwt 。因为 morlet2 返回复数数组,则 dtype 论证 cwt 应设置为 complex128 为了获得最好的结果。

注意实施中的不同之处 morlet 。此小波的基频(以Hz为单位)由以下公式给出:

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

哪里 fs 是采样率,并且 s 是小波宽度参数。类似地,我们可以在以下位置获得小波宽度参数 f ::

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

示例

>>> 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

此示例显示了的基本用法 morlet2 使用 cwt 在时频分析中:

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