On the following graph:
- Orange: original signal
- Blue : butterworth filter from scipy applied.
- Grey : a custom implementation of butterworth filter applied.
- Orange: same original signal
- Blue: another custom implementation of butterworth filter applied.
Question:
Both custom implementations have delay while scipy's does not have. What's the trick?
Note: Custom implementations don't give the same result because they don't have the same coeff.


I'm using filtfilt function.
Based on Warren Weckesser comment, I went to documentation and it states that
https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html