我正尝试使用来自scipy.signal的连续小波变换来清除噪声信号,如下所示:
df2=signal.cwt(df, np.arange(1,31), 'gaus1')
这给我一个类型错误:'int'和'str'的实例之间不支持'<'
为什么会出现此错误,如何正确对数据进行连续小波变换?
答案 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无关,可能对您有用,但是我对该库没有太多经验。