What is the equivalent of Matlab#39;s cwt() in Python? (continuous 1-D wavelet transform)(在Python中,什么等同于MatLab的cwt()?(连续一维小波变换))
本文介绍了在Python中,什么等同于MatLab的cwt()?(连续一维小波变换)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要计算具有不同尺度和时移的信号的小波。
在Matlab中,使用Wavelet Toolbox中提供的cwt()
函数(连续一维小波变换),我可以将我想要的尺度指定为cwt()的参数,它将返回所有可能的时移:
x = [1, 2, 3, 4];
scales = [1, 2, 3];
wavelet_name = 'db1';
coefs = cwt(x,scales, wavelet_name);
>> coefs =
-0.0000 -0.0000 -0.0000 0.0000
-0.7071 -0.7071 -0.7071 -0.7071
-1.1553 -1.1553 -1.1553 1.7371
如何在Python中实现这一点?
以下是我到目前为止的两次尝试:
- 在PyWavelets(Python中的离散小波变换)中,我不知道如何指定小波的Scale参数。
- 在
scipy.signal.cwt
中找不到the list of the built-in wavelet functions that I can pass to scipy.signal.cwt:我希望至少有sym2和db1等最常见的小波函数。(例如,参见Matlab's built-in wavelet list)。
推荐答案
除了scipy
:
小波
这里有一个指向documentation、github的链接和一个基本的用法片段。它使用起来非常直观,并且有一个非常扩展的implemented wavelets库。import pywt
import numpy as np
import matplotlib.pyplot as plt
num_steps = 512
x = np.arange(num_steps)
y = np.sin(2*np.pi*x/32)
delta_t = x[1] - x[0]
scales = np.arange(1,num_steps+1)
wavelet_type = 'morl'
coefs, freqs = pywt.cwt(y, scales, wavelet_type, delta_t)
plt.matshow(coefs)
plt.show()
PyCWT
这里有一个指向documentation、github的链接和一个基本的用法片段。此库的学习曲线比较陡峭,API不是很好,但支持cone of influence
或significance testing
等功能。
import pycwt as wavelet
import numpy as np
import matplotlib.pyplot as plt
num_steps = 512
x = np.arange(num_steps)
y = np.sin(2*np.pi*x/32)
delta_t = x[1] - x[0]
scales = np.arange(1,num_steps+1)
freqs = 1/(wavelet.Morlet().flambda() * scales)
wavelet_type = 'morlet'
coefs, scales, freqs, coi, fft, fftfreqs = wavelet.cwt(y, delta_t, wavelet=wavelet_type, freqs=freqs)
plt.matshow(coefs.real)
plt.show()
您可以使用pip
或conda
轻松安装它们。
最后,以下是我还没有尝试使用的其他引用:
- one
- two
- three
这篇关于在Python中,什么等同于MatLab的cwt()?(连续一维小波变换)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在Python中,什么等同于MatLab的cwt()?(连续一维小波变换)


猜你喜欢
- 我如何卸载 PyTorch? 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01