3
$\begingroup$

I am having trouble wrapping my head around digital filters with different orders of numerator and denominator. Let me know if any of these points is wrong:

  1. All (digital or analog) transfer functions have the same number of poles and zeros, if you include the ones at infinity. So $H(s) = 1/s$ has a pole at the origin and a zero at infinity, which is important for visualizing the amplitude response surface in the S plane.
  2. But usually when we say "number of poles" or zeros we mean finite poles or zeros. So $H(s) = 1/s$ is considered to have one pole and no zeros.
  3. Digital filters designed by bilinear transform from analog filters always have the same number of poles and zeros (and none are ever at infinity). But digital filters can also be made with different orders of numerator and denominator.
  4. To find the poles and zeros of a digital transfer function in the general case, you first must express it as positive powers of z ("controls engineer format") and then find the roots of the numerator and denominator, same way as an analog filter. So for example, a single-sample delay in "DSP engineer format" $H(z) = z^{−1}$ is rewritten as $H(z) = 1/z$, which shows that it has a pole at the origin and a zero at infinity, so it's considered to have "one pole and no (finite) zeros".

So then I become confused:

  1. FIR filters are described as "all-zero filters". 1 2 They can be represented as a transfer function like $$H(z) = b_0 + b_1 z^{-1} + b_2 z^{-2}$$ But if you convert to positive powers of z to find the poles and zeros, you get: $$H(z) = \frac{b_0 {z}^{2} + b_1 z + b_2}{z^2}$$ which has just as many poles at the origin as there are zeros. What is the significance of these poles? These are each the $H(z) = z^{−1}$ delay elements used to produce the feedforward signals? Seems like the poles end up at the origin if the delay elements are not fed back to the input? So FIR filters are not actually all-zero filters?
  2. Similarly, maxflat filters (Selesnick-Burrus generalized Butterworth) are described as having "more zeros than poles", which is supposed to be computationally advantageous. (Why?) The Matlab example produces b = [0.0950 0.2849 0.2849 0.0950] and a = [1.0000 -0.2402]. I think this is "negative powers of z" format, so this would represent a transfer function $$H(z) = \frac {0.0950 + 0.2849 z^{-1} + 0.2849 z^{-2} + 0.0950 z^{-3}} {1.0000 - 0.2402 z^{-1}} $$
  3. But again, if you convert to positive powers of z, you get: $$H(z) = \frac {0.0950 z^3 + 0.2849 z^2 + 0.2849 z + 0.0950} {1.0000 z^3 - 0.2402 z^2} $$ which has 3 poles again, 2 of which are at the origin. So the number of poles and zeros is again the same, and they're all finite, too.

If adding a zero to a digital transfer function always also adds a finite pole, I don't understand how a filter with "more zeros than poles" can exist, or be advantageous. Might as well use those poles to affect the frequency response if you have them?

Is there some convention where poles at the origin are not included in the tally, like the way poles at infinity are not included? If so, why?

$\endgroup$
  • 2
    $\begingroup$ "FIR filters are described as 'all-zero filters'." causal FIR filters have as many poles as they have zeros. but all of the poles that are not directly canceled by zeros must all be at the origin for FIR filters. $\endgroup$ – robert bristow-johnson Mar 2 '14 at 3:47
4
$\begingroup$

If you consider the transfer function of a causal IIR filter

$$H(z)=\frac{B(z)}{A(z)}=\frac{\sum_{m=0}^M b_mz^{-m}}{\sum_{n=0}^N a_nz^{-n}},\quad a_0=1$$

then you always get the same number of poles and zeros, regardless of the choice of $M$ and $N$ (as already pointed out by Robert). However, what is meant by a system with "more zeros than poles", is a system with a numerator degree $M$ greater than the degree $N$ of the denominator. In this case "poles" refers to the poles away from the origin. It is only these poles that have to be implemented. So a system with some poles at the origin is cheaper to implement than a system with all its poles away from the origin. So your argument that you "might as well use those poles ... if you have them" does not really hold, because poles at the origin come without any implementation costs.

The remaining question is why such filters with more zeros than poles (away from the origin) can be useful. Let me just give two examples:

  1. In implementation as well as in the design process, poles can give a lot of trouble (instability, noise enhancement, local optima in the design process, etc.). On the other hand, FIR filters with good frequency selective properties must often have a very large degree (resulting in a large delay and in high implementation costs). Adding just a few poles can give us the best of both worlds: better filter behavior at a greatly reduced (numerator) degree $M$, and only little trouble because there are only very few poles.

  2. For frequency selective filters with a small desired phase distortion in the passbands, IIR systems with $M>N$ are very useful, because the poles ideally contribute only to the passbands, whereas the zeros must contribute to the passbands (for phase equalization) as well as to the stopbands (zeros on or close to the unit circle). Consequently, we need poles only at angles corresponding to passband frequencies, but we need zeros everywhere.

The figure below shows such a system (lowpass filter with approximately linear passband phase response, $M=12, N=6$): enter image description here

$\endgroup$
  • $\begingroup$ "then you always get the same number of poles and zeros" You're including infinite poles and zeros? H(z)=z⁻¹ is causal but does not have the same number of finite poles and zeros $\endgroup$ – endolith Mar 3 '14 at 4:55
  • 1
    $\begingroup$ Yes, I also count zeros at infinity. A causal and stable system cannot have poles at infinity. $\endgroup$ – Matt L. Mar 3 '14 at 8:17
4
$\begingroup$

In the sampled digital realm, poles at the origin represent delay, which may be necessary to make a filter implementation strictly causal. This delay usually requires no additional arithmetic ops (as a pole elsewhere than zero would require). Sometimes when describing a filter where delay is irrelevant (offline processing, etc.), the filter is centered at a non-causal location (causality being added/enforced by the rest of the system outside of the filter being described); thus ignoring some poles which are just (a tiny fraction of the total system) delays.

$\endgroup$
2
$\begingroup$

a causal discrete-time filter, $H(z)$, cannot have more zeros than poles. you can factor it out and you will be left with positive powers of $z$ and that means an advance of the impulse response before $n=0$. but a causal $h[n]$ must be zero for $n<0$.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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