Почему pywavelet Wavelet() не принимает все встроенные вейвлеты?

Любая идея, почему pywt.Wavelet() выдает ошибку для определенных встроенных вейвлетов? Есть ли фундаментальная (математическая) причина?

pywt.Wavelet(i)

выход с

ValueError: Invalid wavelet name.

для меня =

'cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7'
'cgau8', 'cmor', 'fbsp', 'gaus1', 'gaus2', 'gaus3', 'gaus4', 'gaus5'
'gaus6', 'gaus7', 'gaus8', 'mexh', 'morl'

Из документа Пивавелет

class pywt.Wavelet(name[, filter_bank=None])

Описывает свойства вейвлета, идентифицируемого указанным именем вейвлета. Чтобы использовать встроенный вейвлет, параметр name должен быть допустимым именем вейвлета из списка pywt.wavelist().

1 ответ

Решение

Эти вейвлеты являются непрерывными, поэтому вам нужно создать их:

pywt.ContinuousWavelet('mexh')

и использовать непрерывное вейвлет-преобразование, которое принимает дискретные данные (массив) в качестве входных данных:

pywt.cwt(data, scales, wavelet)

Я не знаю, какова реальная причина этого различия.

Другие вопросы по тегам