import dataset
import iir
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt, hilbert,find_peaks
import numpy as np
from scipy import fftpack
def main():
#读取 pupil data
data = dataset.read_file(raw_path +str(num[v]) + '_all_gaze.csv')
for i in range(len(data)):
# Bandpass filter
filter_delta = iir.butter_bandpass_filter_delta(data[i:i+599], lowcut_delta, highcut_delta, fs, order=5)
filter_theta = iir.butter_bandpass_filter_theta(data[i:i+599], highcut_delta, highcut_theta, fs, order=5)
filter_alpha = iir.butter_bandpass_filter_alpha(data[i:i+599], highcut_theta, highcut_alpha, fs, order=5)
filter_beta = iir.butter_bandpass_filter_beta(data[i:i+599], highcut_alpha, highcut_beta, fs, order=5)
filter_gamma = iir.butter_bandpass_filter_gamma(data[i:i+599], highcut_beta, highcut_gamma, fs, order=5)
filter_total = iir.butter_bandpass_filter_total(data[i:i+599], lowcut_delta, highcut_gamma, fs, order=5)
#sliding
analytical_alpha = hilbert(filter_alpha)
analytical_beta = hilbert(filter_beta)
alpha_envelope = np.abs(analytical_alpha)
beta_envelope = np.abs(analytical_beta)
weigths = np.repeat(1.0, fs) / fs
alpha_smas = np.convolve(alpha_envelope, weigths, 'valid')
beta_smas = np.convolve(beta_envelope, weigths, 'valid')
peaks_alpha, _ = find_peaks(alpha_smas, distance=300)
peaks_beta, _ = find_peaks(beta_smas, distance=300)
ers_alpha = np.argmax(alpha_smas)
erd_alpha = np.argmin(alpha_smas)
ratio_alpha = '%.2f' % (erd_alpha/ers_alpha)
print(ratio_alpha)
P_alpha = alpha_smas[peaks_alpha]
P_beta = beta_smas[peaks_beta]
plt.subplot(211)
# plt.plot(filter_alpha)
# plt.plot(alpha_envelope)
plt.plot(alpha_smas)
plt.plot(peaks_alpha, P_alpha, "ob")
plt.plot(ers_alpha, P_alpha, "or")
plt.plot(erd_alpha, P_alpha, "og")
plt.subplot(212)
# plt.plot(filter_beta)
# plt.plot(beta_envelope)
# plt.plot(beta_smas)
# plt.plot(peaks_beta, P_beta, "ob")
plt.show()
print(i)
name = ['오령기','정호중','원성재','최기연','김예린','정차윤','강대원','박동준','김관엽','김은해',
'신현승','조민성','이정인','박성수','전인배','김경빈','김소의','성현아','이연주','최세영',
'권세웅', '김초록', '임시현', '하다원', '김예진','강한결', '이정찬', '주용현', '허수현', '김수연']
for n in range(len(name)):
print(name[n])
num = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]
for v in range(len(num)):
print(num[v])
raw_path = 'E:/ffmpeg-latest-win64-static/2019_11_12_experimental_data/GAZE_DATA_backup/191202/'+name[n]+'/data_process/Experimenter/all_gaze/'
path = 'E:/ffmpeg-latest-win64-static/2019_11_12_experimental_data/GAZE_DATA_backup/7_29/pupil/1_pupil/'+str(num[v])+'/'
path_out = 'E:/ffmpeg-latest-win64-static/2019_11_12_experimental_data/peak_detetion(test)/synchronization/'+name[n]+'/'
lowcut_delta = 0.12
highcut_delta = 0.48
highcut_theta = 0.96
highcut_alpha = 1.56
highcut_beta = 3.6
highcut_gamma = 6
fs = 60
main()