User Reference:P3TemporalFilter

From BCI2000 Wiki
Jump to: navigation, search


The P3TemporalFilter performs buffering and averaging of epochs of data as required for online classification of ERP responses. It averages over epochs of data that are recorded in response to a number of stimuli; averaging is done separately for each stimulus. When a fixed number of epochs have been accumulated for a given stimulus, the P3TemporalFilter computes their temporal average, and reports the average wave form(s) in its output signal. Whenever a temporal average is reported, the StimulusCodeRes state is set to the associated stimulus code. When no average is reported, the output of the P3TemporalFilter is a signal containing only zeros.

Typically, the P3TemporalFilter's output is sent into the LinearClassifier which takes waveform data from multiple locations and time points to linearly combine them into a single number. A specialized application module such as the StimulusPresentation and P3Speller modules can then determine which of the stimuli in question was attended.



Determines the temporal extent of an epoch. An epoch begins with the onset of its associated stimulus. Epoch length may be specified in blocks as a raw number, or in seconds when immediately followed with a unit: 500ms.


Determines the number of epochs that will be accumulated before reporting their temporal average. EpochsToAverage must be set to a value smaller than or equal to the NumberOfSequences parameter; when EpochsToAverage is less than NumberOfSequences, only the first EpochsToAverage epochs will enter into the temporal average reported.


If this parameter is set to 1, the P3TemporalFilter reports a result after each epoch, without averaging. This is useful for paradigms in which the number of stimulus presentations may vary. For reasons of backward compatibility, this parameter is set to 0 by default. For new experiments, it should be set to 1, as it allows for any number of stimulus presentations within a sequence. Otherwise, problems will result when using the P3TemporalFilter in conjunction with the StimulusPresentationTask, and the specified sequence contains multiple occurrences of the same stimulus.


If nonzero, average waveforms will be presented graphically to the operator user.


For waveform visualization, selects the channel to present in the average waveform display. Channels may be given by ordinal number, or textual label.


States used for Input

StimulusBegin (optional)

When this state is present, it is assumed that a nonzero value indicates stimulus onset. When there is no StimulusBegin state present, stimulus onset will be derived from the StimulusCode state.


The code of a stimulus being presented. When there is no StimulusBegin state present, a switch of StimulusCode from zero to a nonzero value indicates stimulus onset. For averaging, epochs are grouped according to this state's value at stimulus onset.


This state indicates whether a stimulus is marked as "attended". Its value is stored along with a stimulus presentation's associated wave forms.

States used for Output


When reporting a waveform, this state contains the associated stimulus code. A StimulusCodeRes value of 0 indicates that the P3TemporalFilter's output does not contain valid information, and should be ignored by the application module.


When reporting a waveform, this state is 1 if the associated stimulus was marked as "attended" on presentation, and 0 if the stimulus was not marked as "attended". In other words, the value of StimulusTypeRes at the time of wave form reporting matches that of StimulusType at the time of stimulus presentation.

See also

User Reference:LinearClassifier, User Reference:P3SpellerTask, User Reference:StimulusPresentationTask