Scipy.signal low pass filter deliver wrong results

You are applying the filter with scipy.signal.filtfilt, which applies the filter twice: once forward and once backwards. That means the magnitude of the gain is the square of the gain that one would get from applying the filter once, with, say, scipy.signal.lfilter. So your observation of the gain at fc is the expected behavior.

2 Likes