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()?(连续一维小波变换)
基础教程推荐
猜你喜欢
- 合并具有多索引的两个数据帧 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01