Fra*_*urt 6 python signal-processing scipy wavelet
scipy.signal.cwt的文件说:
scipy.signal.cwt(数据,小波,宽度)
wavelet:函数小波函数,应该有2个参数.第一个参数是返回的向量将具有的点数(len(小波(宽度,长度))==长度).第二个是宽度参数,定义小波的大小(例如高斯的标准偏差).请参阅满足这些要求的ricker.小波:函数小波函数,它应该带有2个参数.
除此之外scipy.signal.ricket,我可以传递给scipy.signal.cwt的其他内置小波函数是什么?
我在scipy/scipy/signal/wavelets.py中看到
__all__ = ['daub', 'qmf', 'cascade', 'morlet', 'ricker', 'cwt']
Run Code Online (Sandbox Code Playgroud)
并且查看每个小波函数的参数,ricket似乎只能使用scipy.signal.cwt(data, wavelet, widths)(因为只ricker需要2个参数).
我在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/
希望那有所帮助,
亚伦
| 归档时间: |
|
| 查看次数: |
3125 次 |
| 最近记录: |