Difference between revisions of "User Reference:Filters"

From BCI2000 Wiki
Jump to: navigation, search
Line 30: Line 30:
 
| rowspan="2" | TransmissionFilter
 
| rowspan="2" | TransmissionFilter
 
| rowspan="2" | SpatialFilter
 
| rowspan="2" | SpatialFilter
| ARFilter || rowspan="2" | Classifier || rowspan="2" | Normalizer
+
| ARFilter || rowspan="2" | LinearClassifier || rowspan="2" | Normalizer
 
| rowspan="2" | ConnectorInput  
 
| rowspan="2" | ConnectorInput  
 
| CursorTask  
 
| CursorTask  
Line 44: Line 44:
 
actual writing into data files is done by FileWriter filters representing various [[Data Formats]].
 
actual writing into data files is done by FileWriter filters representing various [[Data Formats]].
 
In addition to managing the operation of ADC and FileWriter filters, the DataIOFilter handles signal calibration into physical units (generally, <math>\mu V</math>), and visualization of the source signal.
 
In addition to managing the operation of ADC and FileWriter filters, the DataIOFilter handles signal calibration into physical units (generally, <math>\mu V</math>), and visualization of the source signal.
 +
 
Filter documentation for source modules is available for
 
Filter documentation for source modules is available for
 
===General Filters===
 
===General Filters===
Line 65: Line 66:
 
*[[User Reference:NullFileWriter]]: Suppressing file output.
 
*[[User Reference:NullFileWriter]]: Suppressing file output.
 
*[[Contributions:FileWriters]]: Contributed code supporting other output formats.
 
*[[Contributions:FileWriters]]: Contributed code supporting other output formats.
 +
 +
==Signal Processing Module==
 +
In the signal processing module, brain signals are filtered spatially and temporally, resulting in a set of extracted features. In the Classifier, these features are used to differentiate amongst a small number of mental states (classes). Finally, the Normalizer adjusts the Classifier's output to zero mean and unit variance.
 +
 +
Filter documentation for signal processing filters is available for
 +
===General Filters===
 +
*[[User Reference:SpatialFilter]]: Instantaneous (i.e., sample-wise) linear transformation of brain signal input.
 +
*[[User Reference:LinearClassifier]]: Linear projection of signal features onto low-dimensional classification space (control signal).
 +
*[[User Reference:Normalizer]]: Adjustment of control signal to zero mean/unit variance.
 +
*[[User Reference:LowPassFilter]]: Temporal low-pass filtering at any stage of processing.
 +
===Specific Filters===
 +
*[[User Reference:ARFilter]]: Auto-regression based spectral amplitude estimator.
 +
*[[User Reference:FFTFilter]]: Short-term FFT for display or feature extraction purposes.
 +
*[[User Reference:P3TemporalFilter]]: Segmenting and averaging for ERP feature extraction.

Revision as of 14:49, 28 February 2007

Filters are the most important building blocks of a BCI2000 system. This document describes the filter concept for users going to configure BCI2000 for their own experiments, and provides links to the individual filters' documentation pages describing each filter's purpose and parameterization.

Data Processing as a Pipe

Each of the three BCI2000 core modules contains a chain of filters, i.e. a sequence of filters forming a pipe where, basically, brain signal data enter on one side, and a processed version of these data leaves on the other side.

The notion of a pipe implies that, for each portion of data entering on the input side, there will be exactly one portion of output data on the output side. This is analogous to a water pipe: unlike a water stream (a brook, or a river), it is impossible to insert or remove water from inside the pipe without breaking it. Similarly, albeit signal portions may change their shape on their way through the pipe (filter chain), it is impossible to insert or remove any of them. Thus, each data portion acquired by the data acquisition module will run through the entire BCI2000 system, being processed by a sequence of filters.

Configuration Overview

In principle, these filters may be placed in any order by the writer (programmer) of a BCI2000 module, and it is technically easy to change the number, and order, of filters. However, not all combinations or orderings of filters make sense.

The table shows modules and filters for BCI2000 configurations included in the core distribution:

Data Acquisition Signal Processing Application
DataIOFilter
ADC FileWriter
AlignmentFilter TransmissionFilter SpatialFilter ARFilter LinearClassifier Normalizer ConnectorInput CursorTask ConnectorOutput
P3TemporalFilter P3AV, P3Speller

Data Acquisition Module

In the data acquisition (source) module, the DataIOFilter manages data acquisition and storage in a general manner. Actual acquisition of data is provided by ADC filters, actual writing into data files is done by FileWriter filters representing various Data Formats. In addition to managing the operation of ADC and FileWriter filters, the DataIOFilter handles signal calibration into physical units (generally, \mu V), and visualization of the source signal.

Filter documentation for source modules is available for

General Filters

ADC Filters

FileWriter Filters

Signal Processing Module

In the signal processing module, brain signals are filtered spatially and temporally, resulting in a set of extracted features. In the Classifier, these features are used to differentiate amongst a small number of mental states (classes). Finally, the Normalizer adjusts the Classifier's output to zero mean and unit variance.

Filter documentation for signal processing filters is available for

General Filters

Specific Filters