User Reference:AlignmentFilter

From BCI2000 Wiki
Jump to: navigation, search


The AlignmentFilter performs temporal alignment of channel data. This is done using linear interpolation between subsequent time points.

Typically, the AlignmentFilter is used for AD converters where channel sampling occurs subsequently rather than concurrently. As a result, channels are time-shifted relative to each other by a considerable fraction of the sampling period. This time-shift must be corrected for to avoid adverse effects in spatial filtering.

For newer hardware, which is clocked at high speeds and employs oversampling to improve signal-to-noise ratio, there is practically no time-shift between channels.



A nonzero value enables channel alignment.


A list of floating point values between 0 and 1. There must be one entry for each input channel, indicating the amount of time-shift that is present for the respective channel, given in units of the sampling interval. Alternatively, the list may be empty; then, an equidistant distribution of time shifts over the [0,1) interval is assumed.




At a sampling rate of 250Hz, the sampling interval is 1/(250Hz)=4ms. If SourceChTimeOffset is an empty list, and if there are 8 input channels, the following time shifts are assumed:

channel 1 2 3 4 5 6 7 8
relative time shift 0 1/8 1/4 3/8 1/2 5/8 3/4 7/8
absolute time shift 0 0.5ms 1ms 1.5ms 2ms 2.5ms 3ms 3.5ms

Entering the values given in the relative time shift row into SourceChTimeOffset would have the same effect as providing an empty list.