[英]Keep getting a type error when using a continuous wavelet transformation
我正在尝试使用来自scipy.signal的连续小波变换清理噪声信号,如下所示:
df2=signal.cwt(df, np.arange(1,31), 'gaus1')
这给我一个类型错误:'int'和'str'的实例之间不支持'<'
为什么会出现此错误,如何正确对数据进行连续小波变换?
您为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/generation/scipy.signal.cwt.html
如果要对信号进行去噪,我建议您使用离散小波,因为它们比连续小波要快,并且可以完美地重建原始信号,从而减少了去噪过程中的伪像。
离散变换分别具有pywt.dwt和pywt.dwt2的一维和二维变换。 当前没有pywt.cwt的2d版本,因此,如果您的“ df”具有多个维度,则您可能不走运(并且由于scipy库在其核心处使用pywt,因此我怀疑是否对您也有用) 。
还有另一个小波库pycwt,它与pywt无关,可能对您有用,但是我对该库没有太多经验。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.