How come FIR filters are always stable?
Since they contain poles, shouldn't they be more affected by stability issues than others?
-
$\begingroup$ FIR is stable if all it's zero is located in unit circle $\endgroup$– user350Commented Jan 7, 2014 at 11:42
-
2$\begingroup$ Not true: FIR is always stable and the zeros can be wherever they want including outside the unit circle. Example: the filter [1 -6 11 -6] has zeros at z = 1, 2 and 3 $\endgroup$– HilmarCommented Jan 7, 2014 at 15:05
-
$\begingroup$ again, @Hilmar, it depends on how the FIR is implemented. FIRs implemented as a Truncated IIR (TIIR) might not be stable inside. implemented as a simple transversal FIR filter, yes, that is always stable. it's stable even if implemented using "fast convolution" (using an FFT and "overlap-add" or "overlap-save"). and sometimes when implemented as a TIIR filter it's stable (if the internal IIR is stable). but an FIR implemented as a TIIR could be unstable internally. $\endgroup$– robert bristow-johnsonCommented Jan 8, 2014 at 5:28
5 Answers
FIR filters contain only zeros and no poles. If a filter contains poles, it is IIR. IIR filters are indeed afflicted with stability issues and must be handled with care.
EDIT:
After some further thought and some scribbling and google-ing, I think that I have an answer to this question of FIR poles that hopefully will be satisfactory to interested parties.
Beginning with the Z transform of a seemingly poleless FIR filter: $$H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2} + \cdots + b_N z^{-N}}{1}$$ As is shown in RBJ's answer, the FIR poles are revealed by multiplying the numerator and denominator of $H(z)$ by $z^{N}$: $$H(z) = \frac{b_0 z^{N} + b_1 z^{N-1} + b_2 z^{N-2} + \cdots + b_N }{z^{N}}$$ Thus yielding our $N$ poles at the origin of a general FIR filter.
However, in order to show this, the assumption of causality is placed on the filter. Indeed, if we consider a more general FIR filter where causality is not assumed: $$G(z) = \frac{b_0 z^{k} + b_1 z^{k-1} + b_2 z^{k-2} + \cdots + b_N z^{k-N}}{1}$$ A different number of poles $(N-k)$ appear at the origin: $$G(z) = \frac{b_0 z^{N} + b_1 z^{N-1} + b_2 z^{N-2} + \cdots + b_N }{z^{N-k}}$$
Thus, I conclude the following:
- (Answering the original question) In general, an FIR filter does have poles, though always at the origin of the Z-plane. Because they are never beyond the unit circle, they are no threat to the stability of an FIR system.
- The number of poles of the FIR signal corresponds to the filter order $N$ and the "degree" of acausality $k$. Thus, it is possible to construct FIR filters which have no poles but these filters are then acausal -- i.e. they aren't conceivable for realtime processing. For an $N^{th}$ order FIR filter which is exactly causal $(k=0)$, there are $N$ poles at the origin.
- Perhaps the simplest way to conceive of a pole at the origin is a simple delay element: $$ H(z) = z^{-1} = \frac{1}{z}$$ The typical FIR filters can then be viewed as acausal filters which are followed by enough delay elements to make them causal.
-
2$\begingroup$ IIR filters are not very dangerous, actually. $\endgroup$– user7358Commented Jan 8, 2014 at 1:53
FIR filters contain as many poles as they have zeros. but all of the poles are located at the origin, $z=0$.
because all of the poles are located inside the unit circle, the FIR filter is ostensibly stable.
this is probably not the FIR filter the OP is thinking about, but there is a class of FIR filters called Truncated IIR filters (TIIR) which may have a pole on or outside the unit circle that is canceled by a zero at the same location. the simplest example of this is the moving sum or moving average filter. but, from an I/O perspective, these TIIR filters are FIR.
but i wouldn't naively guarantee "stability". using control-system language, the TIIR filter are not "completely observable" and may appear stable because its impulse response appears finite in length, but inside the filter states could be going to hell, and with finite numerical precision, that internal instability will eventually show up at the output.
we have to disabuse ourselves from the notion that "FIR filters have no poles". ain't true.
-
2$\begingroup$ Can you mathematically show that FIR filters have poles, because I'm not seeing it. $\endgroup$– Jim ClayCommented Jan 7, 2014 at 19:20
-
$\begingroup$ The best example of an FIR with poles is the Cascaded Integrated-Comb (CIC) filter. It starts with a simple moving average filter (coefficients like 1, 1, 1, 1) and rewrites it recursively - thereby introducing a pole. See link. These are often implemented on FPGAs as the first step in down conversion because in their recursive form they are quite cheap to implement computationally. See the Graychip documentation as an example. They are usually implemented in fixed point to maintain stability. $\endgroup$– DavidCommented Jan 7, 2014 at 19:40
-
2$\begingroup$ I think we'll have to agree to disagree - the abstract from Hogenauer's original paper reads "A class of digital linear phase finite impulse response (FIR) filters for decimation (sampling rate decrease) and interpolation (sampling rate increase) are presented." $\endgroup$– DavidCommented Jan 7, 2014 at 21:14
-
4$\begingroup$ the CIC thing (which is a TIIR) is not a general FIR. every $N^{th}$-order FIR has $N$ poles at the origin. this is just standard textbook stuff. easy to prove (as done below). $\endgroup$ Commented Jan 8, 2014 at 5:16
-
2$\begingroup$ @JimClay, a CIC moving-sum or moving-average filter is most certainly an FIR filter. its IR is F. it's just normally not implemented as a transversal FIR filter, but it certainly could be if you wanted to pay for it with MIPS. $\endgroup$ Commented Jan 8, 2014 at 5:36
"Can you mathematically show that FIR filters have poles, because I'm not seeing it." – Jim Clay
can we assume this FIR is causal?
filter order is $N$. number of taps is $N+1$
the Finite Impulse Response: $ \quad h[n] = 0 \quad \forall \quad n>N, \ n<0$
transfer function of the FIR:
$$ \begin{align} H(z) & = \sum_{n=-\infty}^{+\infty} h[n] z^{-n} \\ & = \sum_{n=0}^{N} h[n] z^{-n} \\ & = \sum_{n=0}^{N} z^{-N} h[n] z^{N-n} \\ & = z^{-N} \sum_{n=0}^{N} h[N-n] z^n \\ & = \frac{\sum_{n=0}^{N} h[N-n] z^{n}}{z^N} \\ & = \frac{h[N] + h[N-1]z + h[N-2]z^2 + \cdots + h[1]z^{N-1} + h[0]z^N}{(z-0)^N} \\ \end{align} $$
all you have to do is factor the numerator and you'll know where the zeros are. but it's pretty obvious where all the poles are for an FIR filter. and there are as many poles as is the order of the FIR filter. note that these poles do not affect the frequency response. except for phase.
-
7$\begingroup$ I stand corrected. Thanks for the explanation. $\endgroup$– Jim ClayCommented Jan 8, 2014 at 14:24
Somewhat by definition, actually. Since you input finite energy and the Filter will only maximally deliver a multiple of the energy input (its impulse response has a finite energy), the resulting signal will maximally have a multiple of the energy input. It can not resonate and thus escalate, as IIR filters can. This is behind Kenneides answer as well.
-
$\begingroup$ yeah, and it's as false as Kenneide's answer. $\endgroup$ Commented Jan 8, 2014 at 5:32
-
2$\begingroup$ Dear Robert Bristow-Johnson, please enlighten us mortals. Where does the FIR filter $H(z)=1$ have a pole? $\endgroup$– user7358Commented Jan 8, 2014 at 6:49
-
3$\begingroup$ okay, good point there. the 0th-order FIR or IIR filter (sometimes known as a "wire") has no poles nor zeros (unless you want to think of $H(z) = 1 = \frac{z}{z}$ where the pole and zero cancel). i stand corrected. $\endgroup$ Commented Jan 8, 2014 at 7:04
-
$\begingroup$ Does the unit delay $H(z)=z$ have a pole? $\endgroup$– user7358Commented Jan 8, 2014 at 7:22
-
1$\begingroup$ well, that's a unit advance. but the unit delay, $H(z) = z^{-1}$ does have a single pole at $z=0$. $\endgroup$ Commented Jan 8, 2014 at 7:30
Nobody's really touched upon why the poles of a FIR filter are removable so I've attempted to answer this below.
FIR filters will have removable poles at the origin, because the boundedness of their impulse response requires this. That is around the pole, it's possible to define the function so that it is still holomorphic (differentiable at every point of its domain).
It's a theorem of Riemann that if a signal is differentiable at every point of it's domain (except for finitely many points), then there exists a neighborhood around these special points where the function is bounded. The implications are two way in this theorem, so because FIR filters are required to have a bounded impulse response then the impulse response must be differentiable at every point within the unit circle. Thus, the signal can be extended in a consistent way so that there are no singularities (i.e. the poles are removable).
That's why the z-transform of a FIR filter contains no negative powers of $z$.
-
1$\begingroup$ Tom, i think the Z-transform of a realizable FIR contain only negative powers of $z$. well, okay, only non-positive powers of $z$. $\endgroup$ Commented Jan 8, 2014 at 16:14
-
$\begingroup$ @robertbristow-johnson sorry, yes. I was thinking of a generating function. However, I don't think the answer above changes under the action of $z$ -> $z^{-1}$. $\endgroup$ Commented Jan 9, 2014 at 9:14