I am pretty familiar with IIR and FIR filtering and I have implemented them in my several projects. However, recently i found something called zero phase filtering. I have tried to understand it but not going well. All i know is that zero phase filtering is filtering that do not produce any phase delay and distortion

  1. Is it right?

I have understood that FIR have a constant delay for a group signal while IIR have a non linear delay based on the frequency, so it will distort the signal phase.so there is a zero phase IIR to overcome the cons

  1. How does the zero phase IIR work? (Needs an overview and maybe some examples)

And i have read about forward backward filtering that also remove the delay and distortion of filtering

  1. How does it work?
  2. Is it one of the zero phase filtering method?
  3. It said that it can be done in offline filtering. What is offline filtering?

Thank you


1 Answer 1


Zero-phase filtering is a non-causal procedure, so it cannot be done in real time, only offline for IIR filters or pseudo real-time, i.e., with a sufficient delay for FIR filters. A zero-phase filter needs to have a purely real-valued frequency response, and, consequently, it must have an impulse response that is even with respect to the time index $n=0$, i.e., it is non-causal.

Zero phase filtering with IIR filters is achieved with forward-backward filtering, as implemented in Matlab's filtfilt function. The resulting total frequency response is the squared magnitude of the original IIR filter's frequency response. Since the squared magnitude is real-valued, the resulting filter is a zero-phase filter. Of course there's a delay because you have to feed the time-reversed output of the first filter pass back to the input of the filter, after which you need to time-reverse the output. More details about forward-backward filtering can be found in this answer.

  • $\begingroup$ What do you mean "pseudo real-time, i.e., with a sufficient delay"? You would need to first wholly acquire the whole signal to be processed, to then be able to reverse it and apply the same filter to it again $\endgroup$
    – VMMF
    Jan 15 at 15:46
  • $\begingroup$ @VMMF: In the case of FIR filtering you just need some extra delay. What you say only applies to forward-backward filtering with IIR filters. $\endgroup$
    – Matt L.
    Jan 15 at 16:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.