Bandpass Filter

IMPORTANT: The Open Ephys GUI documentation has migrated to a new site – please visit https://open-ephys.github.io for the most up-to-date information.

Function

Filters the data between the specified low cutoff and high cutoff frequencies (Hz) using a 2nd-order Butterworth filter. 

Individual channels can be set to have different parameters by highlighting them in the "PARAMS" tab in the hidden drawer at the right side. The editor displays the parameters of the most recently selected channel(s).

To obtain the same filter in MATLAB, you can use

  [b, a] = butter(2, [lowcut highcut]/(samplerate/2));

  y = filter(b, a, x); % only filters in the forward direction


where lowcut and highcut are low and high cutoff frequencies (Hz), samplerate is the sampling frequency (Hz), x is the unfiltered data, and y is the filtered data.

This is correct despite the fact that MATLAB's documentation claims it should produce a 4th-order filter (it uses a different convention).

Known issues

Occasionally, the filter settings will only update for every other channel. If this happens, remove the Bandpass Filter from the signal chain and drag another one back in.

Parameters saved

Low cut and high cut for each individual channel.

Upgrades needed

Make it easier to visualize the settings for each individual channel (this is a more general UI issue that we have yet to solve). Allow the user to change the order and type of the filter. BONUS FEATURE: display the FR curve for the chosen filter, and maybe even the phase delay! And could we have this information propagate to the Spike Detector so it knows how to properly offset the spike times?