Preprocessing: 1) Filtering all the epoched data to keep only frequencies below 4Hz of the raw signal, and then resample it at 40Hz. 2) Detrending signals from each channel to remove baseline and then normalizing them. 3) Calculating PCA transforming matrix using only train dataset, and transform all channels data to new channels using that matrix. 4) Summing up data from same character using the flashing record to make training(with label) and test semi character epochs(each of 30 points).
Feature Selection: 1) For two kinds(with P300 target or not) of the semi character epoched, calculating the t-statistic values at each data point in each channel, as the significance metrics of the point between two kind of events. 2) Using the t-statistic values as the weighted window to filter the epoched data and summing them up as the feature of each epoch. 3) For the data, We keep only the extremum points of t-statistic values from each channel.
Classification: For the test dataset, simply comparing the features of each semi-character epoch, selecting only the row and column with maximal value, then constructing them to a full character.