7

scipy.signal.cwt的文档

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

wavelet : function 小波函数,它应该有 2 个参数。第一个参数是返回向量将具有的点数 (len(wavelet(width,length)) == length)。第二个是宽度参数,定义小波的大小(例如高斯的标准偏差)。请参阅 ricker,它满足这些要求。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 个参数)。

4

1 回答 1

7

在 SciPy 用户列表上问了这个问题,回答 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/

希望那有所帮助,

亚伦

于 2014-05-20T23:26:02.527 回答