我可以帮你翻译成中文。问题是:“我在哪里可以看到内置小波函数的列表,以便传递给scipy.signal.cwt?”

7

scipy.signal.cwt的文档称:

scipy.signal.cwt(data, wavelet, widths)

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


除了scipy.signal.ricket之外,我可以传递给scipy.signal.cwt的其他内置小波函数是什么?没有其他的。http://dsp.stackexchange.com/a/18104/29 - endolith
@endolith 感谢提供链接!(很高兴看到 DSP 迁移的一致性) - Franck Dernoncourt
为什么这个问题不在DSP.SE上? - endolith
@endolith被迁移至这里,不确定为什么。好在它没有被关闭。 - Franck Dernoncourt
我猜是因为它涉及到具体的软件,而不是理论。 - endolith
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,“Wavelet分析实用指南”(BAMS,1998年)

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

希望这有点帮助,

aaron


8
作为第一个作者,我建议选择第二个,除非你真的需要速度。 - Davidmh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接