【问题标题】:Keep getting a type error when using a continuous wavelet transformation使用连续小波变换时不断收到类型错误
【发布时间】:2019-05-17 13:19:28
【问题描述】:

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

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

这给了我一个类型错误:'

为什么会出现此错误?如何正确地将连续小波变换应用于我的数据?

【问题讨论】:

  • 你应该使用import pywt; pywt.cwt(df. np.arange(1, 31), 'gaus1 吗?
  • scipy 也有连续小波变换
  • 方法不同scipy.signal.cwt(data, wavelet, widths)..pywt.cwt(data, scales, wavelet)
  • 如果我在您的评论中运行代码行,那么我会得到 ValueError: only dim == 1 supported
  • df2 = py.cwt(df, np.arange(1,31), 'gaus1')

标签: python python-3.x wavelet


【解决方案1】:

你为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

【讨论】:

  • 你现在知道为什么我得到 ValueError: only dim == 1 supported?
  • 您可以对问题进行编辑并发布堆栈跟踪吗?
【解决方案2】:

如果您要对信号进行去噪,我会推荐离散小波,因为它们比连续小波更快,并且可以完美地重建原始信号,从而减少去噪过程中的伪影。

离散变换分别具有 pywt.dwt 和 pywt.dwt2 的一维和二维变换。目前没有 pywt.cwt 的 2d 版本,所以如果你的“df”有多个维度,你可能会不走运(而且由于 scipy 库在其核心使用 pywt,我怀疑这对你也有用) .

还有另一个小波库 pycwt,它独立于 pywt,可能对你有用,但我对那个库没有太多经验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多