# Non-causal FIR. Is that possible?

I know that a FIR (Finite Impulse Response) filter has the same quantity of poles than zeros. And I believe all the poles are at $z=0$. And a FIR filter is always stable, so it's ROC has to include the unit circle $|z|=1$. And ROC's cannot include poles!

So what about a non-causal FIR filter?

Non-causal: ROC doesn't include $\infty$ and doesn't include poles, but all poles are at $z=0$, so the ROC has to be only one point at $z=0$. Is that OK?

Stable: ROC includes $|z|=1$.

• a causal and stable filter (whether IIR or FIR) has ROC $|z| \ge 1$ which cannot contain poles. an anti-causal and stable filter has ROC $|z| \le 1$ which cannot contain poles. – robert bristow-johnson Jul 7 '16 at 5:31
• Robert, that's the same I wrote. But you didn't say if it's possible to have a non-causal filter that is stable. I'm getting an ABSURD, because FIR filters have all the poles in $z=0$, so, if I can't take $\infty$, the ROC has to be from the smallest pole ($z=0$) to the origin ($z=0$), so it doesn't include the unit circle – Euler Jul 7 '16 at 5:59
• what do you mean by "possible". i would say that it is not possible to have an acausal filter, except in our imagination. – robert bristow-johnson Jul 7 '16 at 6:06
• BTW, i know this would get more esoteric than your question intends, but there is a realization of FIR filters called "Truncated IIR filters" (TIIR) that may have internal states that are unstable. there are poles that are outside of the unit circle, but there are also zeros lying on top of those poles and "canceling" the poles. (called "pole/zero cancellation".) a moving average or moving sum filter, implemented the efficient way, is an example of a TIIR. – robert bristow-johnson Jul 7 '16 at 6:09
• That's really interesting. Thanks Robert! I will read about that!! – Euler Jul 7 '16 at 16:37

Your mistake is in believing that FIR filters have all their poles at $z=0$. That's only true for causal FIR filters. In general, FIR filters can have poles at $z=0$ and at $z=\infty$.
1. causal FIR filter: $H(z)=h+hz^{-1}+hz^{-2}$ (all poles at $z=0$)
2. anti-causal FIR filter: $H(z)=h[-2]z^{2}+h[-1]z+h$ (all poles at $z=\infty$)
3. two-sided FIR filter: $H(z)=h[-1]z+h+hz^{-1}$ (one pole at $z=0$, one pole at $z=\infty$)
For causal FIR filters, the ROC is $|z|>0$, for anti-causal FIR filters it is $|z|<\infty$, and for two-sided FIR filters you have the ROC $0<|z|<\infty$. In all cases, the ROC includes the unit circle, i.e., FIR filters are always stable (but not necessarily causal).