使用连续小波变换时不断出现类型错误

时间:2019-05-17 13:19:29

标签: python python-3.x wavelet

我正尝试使用来自scipy.signal的连续小波变换来清除噪声信号,如下所示:

df2=signal.cwt(df, np.arange(1,31), 'gaus1')

这给我一个类型错误:'int'和'str'的实例之间不支持'<'

为什么会出现此错误,如何正确对数据进行连续小波变换?

2 个答案:

答案 0 :(得分:0)

您为cwt()使用了错误的库

您的代码应使用pywt模块,而不是scipy.signal

使用以下内容:

import pywt
pywt.cwt(df. np.arange(1, 31), 'gaus1')

来自https://pywavelets.readthedocs.io/en/latest/ref/cwt.html

否则查找scipy.signal.cwt()的文档以了解如何正确使用它:

https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.signal.cwt.html

答案 1 :(得分:0)

如果您要对信号进行去噪,我建议您使用离散小波,因为它们比连续小波要快,并且可以完美地重构原始信号,从而减少了去噪过程​​中的伪像。

离散变换分别具有pywt.dwt和pywt.dwt2的一维和二维变换。当前没有pywt.cwt的2d版本,因此,如果您的“ df”具有多个维度,则您可能不走运(并且由于scipy库在其核心处使用pywt,因此我怀疑是否对您也有用)

还有另一个小波库pycwt,它与pywt无关,可能对您有用,但是我对该库没有太多经验。