Page 1 of 1
P3 speller classifier value of row/column (stimuli) flashes
Posted: 06 Aug 2013, 23:25
by miemets
Dear BCI Community,
I am working on single flash classification for the BCI2000 P300 Speller.
The first step I am taking is to determine the classifier value of each row/column after stimulus presentation (and collection). My goal is to determine the classifier values of the row/columns as they are available even if the sequence is not complete.
I've been looking through the forums for an answer but I couldn't figure out where the classifier values of each row/column flash are stored after they are recorded before they are sent to the application module. It would also be helpful to know during what event the classifier is processed in the P300Speller module.
Any feedback, suggestion or comments are appreciated.
-Mehmet
Re: P3 speller classifier value of row/column (stimuli) flas
Posted: 07 Aug 2013, 06:09
by mellinger
Hi,
in the standard setup, values for individual stimulus presentations are not sent to the application module. Rather, the average of all presentations is sent from P3StimulusPresentation once enough data have been collected.
However, you may use the SingleEpochMode parameter to switch on reporting of individual responses.
In any case, the output signal of the signal processing module will contain a raw classification score during a single block of data, and the StimulusCodeRes state will contain the stimulus code of the associated stimulus during that block.
Details are given on the P3TemporalFilter page on the BCI2000 wiki.
Regards,
Juergen
Re: P3 speller classifier value of row/column (stimuli) flas
Posted: 07 Aug 2013, 20:48
by miemets
Juergen,
Thank you for the prompt reply. I have been searching the BCI2000 code(including the temporal filter code) and the operator application for SingleEpochMode and ways to edit this. The only thing I could find was EpochsToAverage(is setting this to 1 the same as setting SingleEpochMode to 1?). I wanted to ask if you can point me to the location of the SingleEpochMode parameter or where to change this.
Lastly, I have also been trying to figure out where to get the output of of the signal processing module. Is this stored in a variable or in a location where I can then make it output (for example to the console) each time it is updated?
-Mehmet
Re: P3 speller classifier value of row/column (stimuli) flas
Posted: 08 Aug 2013, 10:19
by mellinger
Hi,
the SingleEpochMode parameter was introduced some time ago, but is not present in the 3.0.5 precompiled binaries which you may be using.
You can get the signal processing output through UDP packets. Such packets can be sent by the Application module (check the AppConnector wiki page for details), or by the Operator module when adding a "watch" that watches the two expressions "StimulusCodeRes" and "Signal(1,1)" simultaneously (check the Operator Scripting wiki page for details).
In the BCI2000 source code, there is an example program that dumps everything sent to a UDP port onto standard output (src/contrib/AppConnectorExamples/SimpleExample). This may serve as a starting point for writing your own UDP interfacing code in C++.
Best regards,
Juergen