【问题标题】:Why the output of pywt wavelet transfor is a complex array?为什么pywt小波变换的输出是复数数组?
【发布时间】:2019-05-17 14:13:43
【问题描述】:

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

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

【问题讨论】:

    标签: python transform continuous wavelet


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢 NRG。你说的对!我将小波从 cmort 改为 morl,系数不再是复数。
    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2016-02-18
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多