Exemplo n.º 1
0
    data = read_eeg_file(left_data_file, right_data_file, TIME_LENGTH,
                         TIME_WINDOW, EPOCH_SIZE)

    # Pre-processing
    print("Pre-processing ...")
    print("Applying 5º order Butterworth bandpass filter (7-30 Hz)")
    b, a = signal.butter(5, [7, 30], btype="bandpass", fs=FS)

    data.left_data = signal.filtfilt(b, a, data.left_data, axis=1)
    data.right_data = signal.filtfilt(b, a, data.right_data, axis=1)

    print("Spatial-filtering ...")
    data.X = np.concatenate((data.left_data, data.right_data))

    csp = CSP(average_trial_covariance=True, n_components=CSP_COMPONENTS)
    csp.fit(data.left_data, data.right_data)
    data.Z = np.array([csp.project(x) for x in data.X])

    #    print(data.Z.shape) #(399,700,2)

    #    첫번째 trial의 채널 1
    #    plot.specgram(pd.DataFrame(data.Z[0]).iloc[:,0], NFFT=64, Fs=250, noverlap=32) # 기존
    #    plot.specgram(pd.DataFrame(data.Z[0]).iloc[:,0], NFFT=32, Fs=250, noverlap=16)
    #    plot.show()

    # Feature extraction
    print("Extracting features ...")
    data.F = np.zeros((data.X.shape[0], 2, CSP_COMPONENTS))
    for n_epoch in range(0, data.X.shape[0]):
        epoch = data.Z[n_epoch]
Exemplo n.º 2
0
                     outlines="skirt",
                     show_names=True)


# Load training data
print("Loading data ...")
left_data_file = f"{DATA_FOLDER}/left-hand-subject-{subject}.csv"
right_data_file = f"{DATA_FOLDER}/right-hand-subject-{subject}.csv"
eeg = read_eeg_file(left_data_file, right_data_file, TIME_LENGTH, TIME_WINDOW,
                    EPOCH_SIZE)
apply_bandpass_filter(eeg)

n_epoch = 25

left_epoch = eeg.left_data[n_epoch, :, :]
right_epoch = eeg.right_data[n_epoch, :, :]

ch_names = ["FC1", "FC2", "C1", "C2", "C3", "C4", "CP1", "CP2"]
#
# plot_topomap(ch_names, left_epoch)
# plot_topomap(ch_names, right_epoch)

csp = CSP(average_trial_covariance=True, n_components=8)
csp.fit(eeg.left_data, eeg.right_data)

left_epoch_projected = csp.project(left_epoch)
right_epoch_projected = csp.project(right_epoch)

plot_topomap(ch_names, left_epoch_projected)
plot_topomap(ch_names, right_epoch_projected)