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

Я пытаюсь убрать шумовой сигнал с помощью непрерывного вейвлет-преобразования из scipy.signal следующим образом:

df2=signal.cwt(df, np.arange(1,31), 'gaus1')

Это дает мне ошибку типа: «<» не поддерживается между экземплярами «int» и «str» </p>

Почему я получаю эту ошибку и как правильно применить непрерывное вейвлет-преобразование к моим данным?

Ответы [ 2 ]

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

Если вы пытаетесь подавить шум в сигнале, я бы порекомендовал дискретные вейвлеты, поскольку они быстрее, чем непрерывные вейвлеты, и могут идеально восстановить исходный сигнал, тем самым уменьшая артефакты от процесса шумоподавления.

Дискретные преобразования имеют 1D и 2d преобразования с pywt.dwt и pywt.dwt2 соответственно. В настоящее время нет 2d-версии pywt.cwt, поэтому, если у вашего "df" более одного измерения, вам может не повезти (а поскольку библиотека scipy использует ядро ​​pywt, я сомневаюсь, что это будет работать и для вас) .

Существует еще одна вейвлет-библиотека pycwt, которая не зависит от pywt, и может работать на вас, но у меня нет большого опыта работы с этой библиотекой.

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

Вы используете неверную библиотеку для cwt()

Ваш код должен использовать модуль pywt, а не scipy.signal

Используйте следующее:

import pywt
pywt.cwt(df. np.arange(1, 31), 'gaus1')

из https://pywavelets.readthedocs.io/en/latest/ref/cwt.html

или обратитесь к документации для scipy.signal.cwt(), чтобы узнать, как правильно ее использовать:

https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.signal.cwt.html

...