展示得到的结果图
直接上代码
import pandas as pd
from scipy.signal import find_peaks
from scipy.fftpack import fft, fftshift, ifft
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from scipy import signal
from scipy.signal import butter, lfilter
def Data():
# data = pd.DataFrame(pd.read_csv(path + name[n] + '_'+str(num[j])+'.csv', encoding='CP949', engine='python'))
data = pd.DataFrame(pd.read_csv(raw_path + str(num[j]) + '_all_gaze.csv', encoding='CP949', engine='python'))
LPMM = np.array(data['LPMM'])
# return LPMM
for i in range(len(LPMM)):
X= LPMM[i:i +59]
return X
#delta
def butter_bandpass_delta(lowcut_delta, highcut_delta, fs, order=5):
nyq = 0.5 * fs
low = lowcut_delta / nyq
high = highcut_delta / nyq
b, a = butter(order, [low, high], btype='band')
return b, a
def butter_bandpass_filter_delta(lowcut_delta, highcut_delta, fs, order=5):
b, a = butter_bandpass_delta(lowcut_delta, highcut_delta, fs, order=order)
data = Data()
delta = signal.filtfilt(b, a, data)
return delta
#theta
def butter_bandpass_theta(highcut_delta, highcut_theta, fs, order=5):
nyq = 0.5 * fs
low = highcut_delta / nyq
high = highcut_theta / nyq
b, a = butter(order, [low, high], btype='band')
return b, a
def butter_bandpass_filter_theta(highcut_delta, highcut_theta, fs, order=5):
b, a = butter_bandpass_theta(highcut_delta, highcut_theta, fs, order=order)
data = Data()
theta = signal.filtfilt(b, a, data)
return theta
#alpha
def butter_bandpass_alpha(highcut_theta, highcut_alpha, fs, order=5):
nyq = 0.5 * fs
low = highcut_theta / nyq
high = highcut_alpha / nyq
b, a = butter(order,