P300 Calibration issues with ABM's EEG system
Posted: 30 Jan 2013, 16:24
I am attempting to implement the P300 speller with ABM's (Advanced Brain Monitoring) B-Alert X10 system and BCI2000, and I am having trouble calibrating the P300 signature. The P300 peaks themselves appear to occur all over the timeline, from 250 ms to 700 ms. I have tried manual identification of the peaks, it did not work. So, I tried using the P300 classifier GUI program, and it shows that it has 90% accuracy with freq decimation of 20 as per the GUI program, but using the feature weights it provides, still continues to fail at calibrating the actual P300 speller system.
If you have any idea why this could be happening, please let me know.
Here are some of the ideas I have thus far, of what could be the issues here -
1. I have downloaded and compiled the source from the trunk, in order to get the signal source for ABM's device. During the build tests as specified in the programming reference build system, I get 27484 differences with 27445 significant differences in the P300 test (Other tests also have the exact same pattern). I also notice that the numbers are skewed, here is an example.
------------
Difference: signal value "-137" should be "71". <---- This 71
Difference: signal value "432" should be "-442".
Difference: signal value "407" should be "-432".
Difference: signal value "-171" should be "28".
Difference: signal value "196" should be "325".
Difference: signal value "376" should be "393".
Difference: signal value "-49" should be "-354".
Difference: signal value "453" should be "-452".
Difference: signal value "71" should be "-142". <----<----- shows up here?
Difference: signal value "-442" should be "161".
Difference: signal value "-432" should be "-328".
Difference: signal value "28" should be "-331".
Difference: signal value "325" should be "-363".
Difference: signal value "393" should be "-31".
Difference: signal value "-354" should be "450".
Difference: signal value "-452" should be "-299".
Difference: signal value "-142" should be "-91".
Difference: signal value "161" should be "410".
Difference: signal value "-328" should be "-402".
Difference: signal value "-331" should be "41".
Difference: signal value "-363" should be "-83".
Difference: signal value "-31" should be "-449".
Difference: signal value "450" should be "193".
Difference: signal value "-299" should be "166".
Difference: " FixationViolated: 0 0 0 0 0 0 0 0" should be " PauseApplication: 0 0 0 0 0 0 0 0".
Difference: " GazeCorrectionMode: 0 0 0 0 0 0 0 0" should be " PhaseInSequence: 0 0 0 0 0 0 0 0".
Difference: " PauseApplication: 0 0 0 0 0 0 0 0" should be " Recording: 1 1 1 1 1 1 1 1".
Difference: " PhaseInSequence: 0 0 0 0 0 0 0 0" should be " Running: 1 1 1 1 1 1 1 1".
Difference: " Recording: 1 1 1 1 1 1 1 1" should be " SelectedColumn: 0 0 0 0 0 0 0 0".
Difference: " Running: 1 1 1 1 1 1 1 1" should be " SelectedRow: 0 0 0 0 0 0 0 0".
-----------
The values are the same, just offset by 8. It seems to be a file format issue and not a build issue (unless build issue causes files to be written out or read in differently). I am using WinXP SP3 and MS VC2008 to perform the build.
2. ABM's contribution -
If there is anyone using ABM's device with BCI2000, I would like to hear from you. I see the signals coming in to BCI2000 being displayed properly, so at least visually it seems to be interfacing correctly.
Again, if you know where I am going wrong (or missing steps) to get the P300 speller calibrating correctly, please let me know. Thank you.
Pankaj
If you have any idea why this could be happening, please let me know.
Here are some of the ideas I have thus far, of what could be the issues here -
1. I have downloaded and compiled the source from the trunk, in order to get the signal source for ABM's device. During the build tests as specified in the programming reference build system, I get 27484 differences with 27445 significant differences in the P300 test (Other tests also have the exact same pattern). I also notice that the numbers are skewed, here is an example.
------------
Difference: signal value "-137" should be "71". <---- This 71
Difference: signal value "432" should be "-442".
Difference: signal value "407" should be "-432".
Difference: signal value "-171" should be "28".
Difference: signal value "196" should be "325".
Difference: signal value "376" should be "393".
Difference: signal value "-49" should be "-354".
Difference: signal value "453" should be "-452".
Difference: signal value "71" should be "-142". <----<----- shows up here?
Difference: signal value "-442" should be "161".
Difference: signal value "-432" should be "-328".
Difference: signal value "28" should be "-331".
Difference: signal value "325" should be "-363".
Difference: signal value "393" should be "-31".
Difference: signal value "-354" should be "450".
Difference: signal value "-452" should be "-299".
Difference: signal value "-142" should be "-91".
Difference: signal value "161" should be "410".
Difference: signal value "-328" should be "-402".
Difference: signal value "-331" should be "41".
Difference: signal value "-363" should be "-83".
Difference: signal value "-31" should be "-449".
Difference: signal value "450" should be "193".
Difference: signal value "-299" should be "166".
Difference: " FixationViolated: 0 0 0 0 0 0 0 0" should be " PauseApplication: 0 0 0 0 0 0 0 0".
Difference: " GazeCorrectionMode: 0 0 0 0 0 0 0 0" should be " PhaseInSequence: 0 0 0 0 0 0 0 0".
Difference: " PauseApplication: 0 0 0 0 0 0 0 0" should be " Recording: 1 1 1 1 1 1 1 1".
Difference: " PhaseInSequence: 0 0 0 0 0 0 0 0" should be " Running: 1 1 1 1 1 1 1 1".
Difference: " Recording: 1 1 1 1 1 1 1 1" should be " SelectedColumn: 0 0 0 0 0 0 0 0".
Difference: " Running: 1 1 1 1 1 1 1 1" should be " SelectedRow: 0 0 0 0 0 0 0 0".
-----------
The values are the same, just offset by 8. It seems to be a file format issue and not a build issue (unless build issue causes files to be written out or read in differently). I am using WinXP SP3 and MS VC2008 to perform the build.
2. ABM's contribution -
If there is anyone using ABM's device with BCI2000, I would like to hear from you. I see the signals coming in to BCI2000 being displayed properly, so at least visually it seems to be interfacing correctly.
Again, if you know where I am going wrong (or missing steps) to get the P300 speller calibrating correctly, please let me know. Thank you.
Pankaj