I was using the scipy.signal.decimate function and noticed that it seemed to have some unusual edge effects using the default IIR Chebychev filter.  In doing a little research I found a message from 2011 saying that decimate only filtered in one direction, rather than using the filtfilt function to filter both directions in order to get rid of phase shifts.  There was also a message that filtfilt had a bug associated with the way that it handled edge effects.  I was wondering if anything had changed since 2011.  Does decimate still only filter in one direction and are there issues with filtfilt?  Using the default FIR filter (ftype=’fir’) does seem to correct the issue, but that’s a more complex and expensive filter so I was wondering if the default IIR filter was working correctly.

 

I’m comparing the Matlab decimate function that does use filtfilt and seems to handle the edge effects correctly.

 

THANKS, Paul Blelloch