为什么pywt wavelet transfor的输出是复数数组?

Why the output of pywt wavelet transfor is a complex array?

我正在使用 python 的 python 包 pywt 对某些信号进行连续小波变换。由于信号长度不同,输出系数二维数组的列数也不同。为了具有相同形状的系数数组,我使用 scipy.ndimage.interpolation.zoom 进行插值。但是内插引发了错误消息 'Complex type not supported' ,这意味着输入数组是一个复杂的数组。众所周知,pywt cwt的输出实际上是由不同尺度和时移的小波系数组成的array/matrix,这些系数应该是实数而不是复数。所以我真的不知道怎么弄明白。 任何人都可以解决这个问题或建议一些替代方法来进行此插值并获得相同大小的输出数组吗? 简单代码如下

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

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

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