Practical infinite impulse response (IIR) filters are usually based upon analogue equivalents (Butterworth, Chebyshev, etc.) using a transformation known as the bilinear transform which maps the $s$-plane poles and zeros of the analogue filter into the $z$-plane. However, it is quite possible to design an IIR filter without any reference to analogue designs, for example, by choosing appropriate locations for the poles and zeroes. Can somebody please explain the latter design of digital IIR filters (i.e., without any reference to analogue design) for the following simple example?

For a digital system with sampling frequency of 60 MHz, design a digital IIR filter with two complex conjugate poles at 23 MHz, and one zero at 18 MHz.

This is basically an equalizer for a lossy channel. The filter is flat at lower frequencies (DC attenuation), with a peaking at higher frequency and then drops rapidly. For that, only knowing the poles and zero locations should be enough which defines the DC attenuation, bandwidth, and boost (peaking) of the filter. The amount of boost or DC attenuation does not matter as they can be tweaked by changing the poles and zeros locations. So I don't think any further information is required here. But if so, simply make an assumption.

  • $\begingroup$ The example you give at the bottom of your question seems (to me) to be very easily answerable: no reference to analog filters required. But the usual way to design a filter is to be given passband, stopband, and transition region specs rather than specifying the pole and zero locations. I've closed the question as duplicate. Have a read through Matt L's good answer to that one. If you think you're asking a different question, ping me here in the comments and I'll reopen. $\endgroup$
    – Peter K.
    Jan 21, 2021 at 20:58
  • $\begingroup$ I read Matt's answer which you referred. I don't think it was the answer to my question, he mainly explained basics about FIR filter design and also IIR using bi-linear transformation. $\endgroup$
    – shampar
    Jan 22, 2021 at 15:39
  • $\begingroup$ OK! I'm still of the opinion that designing the filter you're asking about is pretty straightforward. The only design parameter is the radius of the pole and zero positions (whether they're on the unit circle or elsewhere). Can you please extend or change your question a bit? $\endgroup$
    – Peter K.
    Jan 22, 2021 at 15:55
  • $\begingroup$ Well, I'm not sure what extra information is required. It's a second-order filter, with two complex conjugate poles sitting 23 MHz and one zero sitting at 16 MHz. So any kind of digital filter (given by its numerator and denominator) that its transfer function follows the zero and poles locations that I mentioned here is acceptable. Not sure what's the missing data, but if any please feel free to make an assumption that makes sense. $\endgroup$
    – shampar
    Jan 22, 2021 at 16:08
  • 1
    $\begingroup$ As I said in my first comment: But the usual way to design a filter is to be given passband, stopband, and transition region specs rather than specifying the pole and zero locations.. So, either give the filter specs in those terms or give more detail about otherwise how to choose the radius of the pole / zero locations. As it is, there is no way to choose the "right" filter. $\endgroup$
    – Peter K.
    Jan 22, 2021 at 16:18

1 Answer 1


Despite previous commenters decrying the design method, I found an interesting online tool at https://www.micromodeler.com which satisfies the questioner's requirement of manual placement of poles & zeros.

This is achieved by drag & drop of the represented poles & zeros on the Z-Plane, or by numerically editing their position. One can even drag a pole outside the unit circle should that be required.

The tool is available by monthly subscription but there is a "Not for Commercial Use" demo which is great for instruction & learning.


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.