To begin improving the existing filter bank in Open Ephys, we chose to design and implement a 4-pole Butterworth bandpass filter in C++. In our optimization process, we were sure to write our code in a fashion that easily lent itself to implementing other filter specifications without requiring an overhaul of the code. Our optimization process first required us to select an appropriate filter structure for implementation. We were then free to experiment with compiler optimization flags, intrinsic instruction sets, multithreading, and matrix implementations.
![]() |