Input data dimension inconsistency in P300 Linear Classifier
Posted: 26 Apr 2010, 23:11
Hi,
I noticed that there's an inconsistency between the dimensions of input variables in the following code:
Here, I used 8 channels, 400Hz sampling rate, and after setting the "epochLength" to be 400ms, the "Input" is 8 x 8, whereas the "currentInput" is 8 x 160. The "Input" comes in 8-sample-point bundles from the ADC, while 400Hz x 400ms = 160 sample points.
This is causing the "currentInput" to be all-zeros. Since it is the input to the P300 Linear Classifier, the classifier is getting all-zero inputs and generating all-zero outputs.
Some further exploration seemed to suggest the following code was the source of the dimension mismatch, when the currentFilter is the P3TemporalFilter, it introduced the mismatch at the first arrival of 8-sample-point bundle:
Could anybody share some thoughts how to solve this problem? Thanks very much!
Ray
I noticed that there's an inconsistency between the dimensions of input variables in the following code:
Code: Select all
GenericFilter::ProcessFilters( const GenericSignal& Input, GenericSignal& Output )
{
const GenericSignal* currentInput = &Input;
...
}This is causing the "currentInput" to be all-zeros. Since it is the input to the P300 Linear Classifier, the classifier is getting all-zero inputs and generating all-zero outputs.
Some further exploration seemed to suggest the following code was the source of the dimension mismatch, when the currentFilter is the P3TemporalFilter, it introduced the mismatch at the first arrival of 8-sample-point bundle:
Code: Select all
GenericFilter::ProcessFilters( const GenericSignal& Input, GenericSignal& Output )
{ ...
for( ... )
{ ...
GenericSignal& currentOutput = OwnedSignals()[ currentFilter ];
}
}
Ray