当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy signal.morlet2用法及代码示例


本文简要介绍 python 语言中 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 int

小波的长度。

s 浮点数

小波的宽度参数。

w 浮点数,可选

欧米茄0。默认值为 5

返回

morlet (M,) ndarray

注意

此函数旨在与scipy.signal.cwt.因为morlet2返回一个复数数组,即类型的论点scipy.signal.cwt应该设置为复杂128以获得最佳效果。

请注意与 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()
scipy-signal-morlet2-1_00_00.png

此示例展示了 morlet2 cwt 在 time-frequency 分析中的基本用法:

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

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.morlet2。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。