【问题标题】:Where can I see the list of built-in wavelet functions that I can pass to scipy.signal.cwt?在哪里可以看到可以传递给 scipy.signal.cwt 的内置小波函数列表?
【发布时间】:2014-07-06 23:29:21
【问题描述】:

scipy.signal.cwt的文档says

scipy.signal.cwt(数据、小波、宽度)

小波:函数 小波函数,它应该有 2 个参数。第一个参数是返回向量的点数 将有 (len(wavelet(width,length)) == length)。第二个是一个 宽度参数,定义小波的大小(例如标准 高斯的偏差)。见 ricker,它满足了这些 requirements.wavelet : function 小波函数,需要 2 个参数。

除了scipy.signal.ricket,还有哪些可以传递给 scipy.signal.cwt 的内置小波函数?

我看到 scipy / scipy / signal / wavelets.py

__all__ = ['daub', 'qmf', 'cascade', 'morlet', 'ricker', 'cwt']

查看每个小波函数的参数,似乎只有ricket 可以与scipy.signal.cwt(data, wavelet, widths) 一起使用(因为只有ricker 正好采用2 个参数)。

【问题讨论】:

  • “除了 scipy.signal.ricket,还有哪些内置的小波函数可以传递给 scipy.signal.cwt?”没有。 dsp.stackexchange.com/a/18104/29
  • @endolith 感谢您的链接! (很高兴看到 DSP 迁移的一致性)
  • 是的,为什么 DSP.SE 上没有这个问题?
  • @endolith 被迁移到这里,不知道为什么。好吧,至少它没有被关闭。
  • 我猜是因为它是关于一个特定的软件,而不是理论。

标签: python scipy signal-processing wavelet


【解决方案1】:

我问了question on the SciPy Users List,回答1:

我发现 CWT 的模块很混乱,所以我推出了自己的:

https://github.com/Dapid/fast-pycwt

它是为速度而设计的(我的运行时间从 4 小时缩短到 20 分钟)。 未经彻底测试,仅限单双; 但对我来说,它处于“足够好”的状态。

答案 2:

您可能还会发现我的版本很有用:

https://github.com/aaren/wavelets

我还发现 scipy 小波令人困惑。我的版本包括一个更快的 cwt 可以采用频率或时间表示的小波。

我发现小波函数更直观 时间/频率和宽度作为参数而不是当前方法 (我更喜欢在真实空间而不是样本空间中思考)。

目前scipy自带的morlet小波, scipy.signal.wavelets.morlet,不能用作 cwt 的输入。这 我认为是不幸的。

此外,目前的 cwt 不允许复杂的输出。这 对 ricker 没有影响,但小波函数很复杂 一般。

我修改后的 'cwt' 方法在这里:

https://github.com/aaren/wavelets/blob/master/wavelets.py#L15

它可以接受在时间或频率空间中定义的小波函数, 使用 fftconvolve,并允许复杂的输出。

我在这方面的背景是基于对 Torrence 和 Compo 的阅读:

Torrence 和 Compo,“小波分析实用指南”(BAMS, 1998)

http://paos.colorado.edu/research/wavelets/

希望对你有所帮助,

亚伦

【讨论】:

  • 作为第一个的作者,我推荐第二个,除非你真的需要速度。
猜你喜欢
  • 2010-11-10
  • 1970-01-01
  • 2016-05-16
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多