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?