Почему вывод вейвлет-преобразования Pywt представляет собой сложный массив? - PullRequest
0 голосов
/ 17 мая 2019

Я использую пакет python pywt of python для непрерывного вейвлет-преобразования некоторых сигналов.Поскольку длина сигналов различна, выходной коэффициент 2d массивов имеет разное количество столбцов.Чтобы массивы коэффициентов имели одинаковую форму, я использовал метод scipy.ndimage.interpolation.zoom для интерполяции.Но в результате инерполяции появилось сообщение об ошибке «Сложный тип не поддерживается», что означает, что входной массив является сложным массивом.Как мы знаем, на самом деле вывод pywt cwt представляет собой массив / матрицу, составленную из коэффициентов вейвлетов с различными масштабами и временными сдвигами, и эти коэффициенты должны быть действительными числами, отличными от комплексных чисел.Так что я действительно не знаю, как это понять.Может ли кто-нибудь решить эту проблему или предложить какой-нибудь альтернативный способ сделать эту интерполяцию и получить одинаковые размерные массивы?Простые коды следующие:

import pywt
import scipy
...
[coefficients_return, frequencies] = pywt.cwt(signal, scales, waveletname, dt)
coefficients_interp = scipy.ndimage.interpolation.zoom(input=coefficients_return, zoom= 2., order=3) 
...

TypeError: Complex type not supported

1 Ответ

0 голосов
/ 20 мая 2019

Некоторые вейвлеты имеют сложные компоненты, и они обычно выбираются, когда желательны и фаза, и амплитуда.

Самый простой способ решить вашу проблему - просто выбрать другой вейвлет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...