Где я могу увидеть список встроенных вейвлет-функций, которые я могу передать в scipy.signal.cwt?

Документация scipy.signal.cwt говорит:

scipy.signal.cwt (данные, вейвлет, ширина)

wavelet : функция Функция вейвлета, которая должна принимать 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 аргумента).


person Franck Dernoncourt    schedule 18.05.2014    source источник
comment
Помимо scipy.signal.ricket, какие другие встроенные вейвлет-функции я могу передать в scipy.signal.cwt? Их нет. dsp.stackexchange.com/a/18104/29   -  person endolith    schedule 20.02.2016
comment
@endolith Спасибо за ссылку! (приятно видеть согласованность миграции DSP)   -  person Franck Dernoncourt    schedule 20.02.2016
comment
Да, почему этого вопроса нет на DSP.SE?   -  person endolith    schedule 21.02.2016
comment
@endolith перекочевал сюда, не знаю почему. Хорошо хоть не закрыли.   -  person Franck Dernoncourt    schedule 21.02.2016
comment
Я думаю, потому что речь идет о конкретном программном обеспечении, а не о теории.   -  person endolith    schedule 23.02.2016


Ответы (1)


Я задал вопрос в списке пользователей SciPy , ответьте 1:

Я нашел модуль для CWT довольно запутанным, поэтому я накатил свой собственный:

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

Он создан для скорости (время работы у меня сократилось с 4 часов до 20 минут). Он тщательно не тестируется и ограничен одинарными и двойными; но для меня он находится в "достаточно хорошем" состоянии.

Ответ 2:

Вам также может пригодиться моя версия:

https://github.com/aaren/wavelets

Я также обнаружил, что scipy вейвлеты сбивают с толку. Моя версия включает в себя более быстрый cwt, который может принимать вейвлеты, выраженные либо в частоте, либо во времени.

Я нашел более интуитивным иметь вейвлет-функции, которые принимают время/частоту и ширину в качестве аргументов, а не настоящий метод (я предпочитаю думать в реальном пространстве, а не в пространстве выборки).

В настоящее время вейвлет morlet, поставляемый с scipy, scipy.signal.wavelets.morlet, нельзя использовать в качестве входных данных для cwt. Это несчастье, я думаю.

Кроме того, текущий cwt не допускает сложного вывода. Это не имеет значения для ricker, но вейвлет-функции в целом сложны.

Мой модифицированный метод cwt находится здесь:

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

Он может принимать вейвлет-функции, определенные во временном или частотном пространстве, использует fftconvolve и допускает комплексный вывод.

Мой опыт в этом основан на прочтении Торренса и Компо:

Торренс и Компо, «Практическое руководство по вейвлет-анализу» (BAMS, 1998).

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

надеюсь, что это немного поможет,

Аарон

person Franck Dernoncourt    schedule 20.05.2014
comment
Как автор первого, рекомендую второй, если только вам не очень нужна скорость. - person Davidmh; 21.05.2014