Поэтому я использую пакет Pywavelet для выполнения частотно-временного анализа моего набора данных ЭЭГ, и вот мой результат (анализ CWT):
Но в соответствии с БПФ, моя ЭЭГ предполагает, что у нее больше, это мой анализ БПФ:
В БПФ я вижу, что яв моем наборе данных также были пиковые частоты 150, 250 и 350 Гц и более около 4-50 Гц.
Мой вопрос заключается в том, почему мой CWT-анализ не может перехватить сигнал выше частоты, возможно, это ошибка моей программы?
Вот мой код CWT:
import pandas as pd
import numpy as np
from numpy import math
import matplotlib.pyplot as plt
import pywt
P = pd.read_csv('P.CSV', skiprows = 0, usecols = np.arange(1, 17))
P = P.to_numpy()
P = P[:, 0]
Fs = 2000
dt = 1/Fs
wavelet = 'morl'
t = np.arange(0, len(P)) / Fs
scales = np.arange(4, 3250,100)
coefs, freq = pywt.cwt(P, scales, wavelet, sampling_period = dt)
plt.figure
plt.contour(t, freq, np.abs(coefs) ** 2)
plt.title('CWT Analysis')
plt.xlabel('Time (s)')
plt.ylabel('Frequency (Hz)')
plt.grid
plt.show()
Примечаниечастота моего интереса составляет от 0,5 до 400 (Гц), поэтому я выбираю шкалу от 4 до 3250.