當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。