Hi Simon,
Yes, this is very helpful. Thank you. What you are seeing is expected behavior. The Bandpass filter node is indeed a casual filter because it is used with the OE GUI to provide real-time filtering. True (non-blockwise with windowing artifacts) non-causal filtering requires that the you save raw data and then load the entire waveform offline an filter in both forward and backwards in time. Because the GUI filters data as it is produced, it cannot do this and there freo you see the distinctive biphasic waveshapes associated with filtering without a flat phase response. It's important to note that although some causal filters are optimized to flatten phase response or to keep group delay constant, they will never be as as good as offline non-causal filtering which can perfectly preserve phase information. The distortion you are seeing is going to be present, to some degree, on every acquisition system that has a real-time filter. This is why you are used to seeing APs that look like this: they are all distorted.
Our suggestion is always the the following:
1. Save data that is as close to raw as possible. The only filtering that should be done is light analog filtering prior to the ADC that prevents aliasing during sampling and distortion in the analog domain due to imperfections in the circuit desing. For the Intan chip, this is set using the 'low' and high' values in the Acquisition Board source:
https://open-ephys.github.io/gui-docs/User-Manual/Plugins/OE-FPGA-Acquisition-Board.html.
2. Save the data produced either directly by the Acquisition Board or after channel remapping (but not with any type of mean or median subtraction!).
3. Perform online processing such as digital filtering, mean subtraction, etc for visualization and maybe to save auxiliary data files if you don't mind the disk space requirements
4. Perform all lossy filtering offline on the raw data.
The reason for doing this is that digital filtering is throws away information in the data. You cannot undo it to recover the original signal later. Its best to save data that is as close to the source as possible so that you have multiple shots at processing it offline.
Jon