首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pywt小波变换的输出是一个复数组?

为什么pywt小波变换的输出是一个复数组?
EN

Stack Overflow用户
提问于 2019-05-17 22:13:44
回答 1查看 262关注 0票数 0

我正在使用python的python包pywt对一些信号进行连续小波变换。由于信号的长度不同,所以输出系数2d阵列具有不同的列数。为了得到具有相同形状的系数数组,我使用scipy.ndimage.interpolation.zoom进行插值。但是内插法引发的错误消息是“复杂类型不受支持”,这意味着输入数组是一个复杂数组。我们知道,pywt cwt的输出实际上是一个由不同尺度和时间移位的小波系数组成的阵列/矩阵,这些系数应该是实数而不是复数。所以我真的不知道该怎么弄明白。有没有人可以解决这个问题,或者提出一些替代的方法来进行插值,并得到相同大小的输出数组?简单的代码如下

代码语言:javascript
复制
import pywt
import scipy
...
[coefficients_return, frequencies] = pywt.cwt(signal, scales, waveletname, dt)
coefficients_interp = scipy.ndimage.interpolation.zoom(input=coefficients_return, zoom= 2., order=3) 
...

TypeError: Complex type not supported
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 22:10:31

一些小波确实具有复杂的分量,当需要相位和振幅时,通常会选择这些分量。

解决问题的最简单的方法是简单地选择一个不同的小波。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56188229

复制
相关文章

相似问题

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