scipy.signal.cwt
的文档says:
scipy.signal.cwt(数据,小波,宽度)
小波:功能 小波函数,应该有2个参数。第一个参数是返回的向量的点数 将有(len(小波(宽度,长度))==长度)。第二个是 width参数,定义小波的大小(例如标准 高斯的偏差)。见ricker,满足这些 requirements.wavelet:函数小波函数,应该有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个参数)。
答案 0 :(得分:7)
我问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/
希望有所帮助,
亚伦