Пятница, 14 Июня 2019 г. 04:15
+ в цитатник
Введение
При проведении CWT анализа средствами библиотеки PyWavelets (бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT) возникают проблемы с визуализацией результата. Предложенная разработчиками тестовая
программа по визуализации приведена в следующем листинге:
Листинг import pywt
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(-1, 1, 200, endpoint=False)
sig = np.cos(2 * np.pi * 7 * t) + np.real(np.exp(-7*(t-0.4)**2)*np.exp(1j*2*np.pi*2*(t-0.4)))
widths = np.arange(1, 31)
cwtmatr, freqs = pywt.cwt(sig, widths, 'cmor1-1.5')
plt.imshow(cwtmatr, extent=[-1, 1, 1, 31], cmap='PRGn', aspect='auto',
vmax=abs(cwtmatr).max(), vmin=-abs(cwtmatr).max()) # doctest: +SKIP
plt.show() # doctest: +SKIP
При работе с комплексными вейвлетами, например с 'cmor1-1.5', программа выдаёт ошибку:
File"C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\image.py", line 642, in set_data
raise TypeError("Image data cannot be converted to float")
TypeError: Image data cannot be converted to float
Указанная ошибка, а так же сложности с выбором масштаба (widths) для обеспечения необходимого временного разрешения, затрудняют, особенно для начинающих пользователей, изучение CWT анализа, что и побудило меня к написанию данной статьи учебного характера.
Целью настоящей публикации является рассмотрение применения нового модуля визуализации
scaleogram для анализа простых и специальных сигналов, а так же при использовании методов нормализации, логарифмического масштабирования и синтеза, которые позволяют получить дополнительную информацию при анализе временных рядов.
Читать дальше -> https://habr.com/ru/post/454240/?utm_source=habrahabr&utm_medium=rss&utm_campaign=454240
Метки:
Python
Математика
Машинное обучение
Разработка под Windows
Физика
вейвлет функция
CWT преобразование
временной ряд
Scaleogram
PyWavelets
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-