Happy new year !
Here is some answers:
The resulted letters of the online scenario are shown in different colours: orange, green and black, what is the meaning of these colours?
Green for correct letter (prediction is correct according to the instruction), Black for incorrect prediction, orange for partially correct prediction (one row or one column only is correct)
For synchronizing the flashes with the EEG signals, I knew it is already synchronized but I’m wondering how I can get the averaged frequency between the time of flashing and 500 mSec later. This is in order to create a nice figures like the once shown in page 41 of the study “could anyone use a BCI?” (springer, 2010), which compare between the P300 brain wave for target stimuli and to not-target stimuli. I tried to upload it here, put wasn't allowed.
By using a stimulation based epoching
synchronized on the Target stimulation, you can get the epochs that should contain a P300 response.
Using an Epoch Average box
afterward can average all these epochs (use a Cumulative average to get the session average).
I dont know what kind of preprocessing is used prior to displaying the P300 response in the study you mention; maybe displaying raw epoch on every channel is not enough
For connection the confusion metric, I need to connect:
1.Confusion matrix (streamed matrix) to Matrix Display.
2. Target (simulation) to the P300 speller visualization box outputs.
3. Classification results (stimulations) to ???
The confusion matrix implementation is not immediate I'm afraid.
One confusion matrix can be used per classifier box (one for each Classifier processor, or one per voting classifier).
I suggest you compute the confusion matrix of the 2 voting classifiers (for row and column selection).
You need to provide the box with the target stream. It is the actual instruction stream, what class is supposed to be chosen.
You also need the classification result, i.e what class label the classifier outputs.
Both are compared in order to compute the confusion matrix.
In the P300 speller scenario, the instruction flow would be coming from the Target Letter Generation (a Lua box).
e.g. Label_02 & Label_07 indicates that the selected letter should be on 2nd row, 1st column.
You need to filter that stream : the row selector only need row labels 01 to 06 (resp. 07 to 12 for column).
The Voting classifiers outputs the chosen labels.
The Matrix display is then good to show the confusion matrix produced.
I’d like to know what type of windowing is used for the P300 speller? Is it a simple event related time framing? As I understand, the classifier use only the data that is collected 300 mSec after each column and row flash, is this correct?
The Stimulation based epoching boxes extract a 600 ms window after the flashes. The Epoch average box afterward does pretty much nothing in a default configuration (average 1 epoch). You can change it to average N epochs (a decision would be made on the average of N epochs then).
What is the Information Transfer Rate ITR for the speller? I mean how many bits are transformed per minute? As this is used to measure the affectivity of BCI.
The ITR depends on the configuration used. Changing the flash duration, inter-flash duration, repetition count or inter-repetition delays change the ITR.
You can tune the system according to the user feedback and training level. Usually we got 1-3 letters per minute. A (very) well trained user on a (very) well tuned system can achieve lot more (single trial, few seconds per letter). But I don't think you can achieve such performance on the long run
When I use the online scenario of the speller I can spell 10 letters in over 4 minutes, so, the speed of the interface ((or you may use a name for the spelling speed?)) is less than 3 letters per minute. However, I’ve read on other studies that the speed they reach is 6/7 letters per minute, and I’m wondering why the speller is slow here?
I know that I can reduce the number of repetition but this will affect the performance negatively! And also I don’t understand the number of repetitions, as it is supposed to be 12 as the default setups but when I count how many time the target letter flashes, I found out it is over 23! Could you clarify these points, please?
12 repetition is maybe a bit high once you are trained. But from our experience it makes the speller usable by a naive user on a first try.
In the default P300 speller application, the letters are flashed by row and column. To actually select a letter, you need its row and its column.
Therefore one repetition is a succession of flashs, randomly chosen so every row and column is flashed once. You get 2 flashes per repetition (row+column flash).
If you set the repetition count to 12, you should count to 24 (it's ok if you miss few ones:))
To speed up the interface, lower the different durations and the repetition count. However it may lower the performance as well...
Different layouts exist for the P300 speller, some of them may be faster or give better performances (hex-o-spell, random blocks instead of row/col, etc.)
It's an active research field.
Hope this helps.