Почему 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)
Я не знаю, какова реальная причина этого различия.