首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么等同于Python中Matlab的cwtft()?(连续morlet小波变换)

什么等同于Python中Matlab的cwtft()?(连续morlet小波变换)
EN

Stack Overflow用户
提问于 2018-09-14 05:13:42
回答 1查看 567关注 0票数 0

我试图像matlab一样实现Morlet小波变换,但我在python中找不到任何等效的函数。我想像这样实现它:

代码语言:javascript
复制
s0  = 6/fs;  % smallest scale
ds = 0.001; % spacing between scales
NbSc = 3000; % number of scales
SCA = {s0,ds,NbSc, 'lin'}; % specify scales
cwtstruct = cwtft({data, 1/fs},'scales',SCA);

并获得与Matlab的cwtstruct相同的输出。

我已经看过PyWavelets了,但是它不能让你以这种方式指定比例,也不能给出相同的输出。

EN

回答 1

Stack Overflow用户

发布于 2019-05-17 04:38:35

意识到这是旧的,但如果你想知道这应该是有效的,或至少让你开始。

我不确定您正在寻找的具体输出是什么,但Wxx是标量图(类似于频谱图的时频空间中的二维数组)。

如果你想要Matlab帮助页面中显示的相角和模数,你可能想要使用以下小波:'cmor30.0-60000.0‘

其中30是你想要的带宽(比如FFT的窗口宽度),60000是小波的中心频率。

代码语言:javascript
复制
import pywt
import numpy as np

fs=1e3
s0=6/fs
smax=3000
wave='morl'
scales=np.arange(s0,smax,1/fs)
Wxx,freq=pywt.cwt(data,scales,wave,sampling_period=1/fs)
freq=freq*fs
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52321884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档