0
$\begingroup$

I would like to design an FIR filter such that its Z-transform has a certain profile in certain regions.

For example, if I'd like to have an FIR filter that nulls the decaying exponential $\left(\frac{1}{2} \right)^n$, I can simply put a zero at $z = \frac{1}{2}$.

My question is, is there a more systematic way of designing such filter for arbitrary Z-transform response? Something similar to the Remez algorithm or maybe using convex optimization? So far all the papers I've looked at online looks at responses on the unit circle only.

$\endgroup$
  • $\begingroup$ Like you pointed out, you can design a filter by choosing its pole/zero locations to be where you like. That very straightforwardly leads to the filter's transfer function, from which you can easily determine its coefficients. Or were you looking for something different? $\endgroup$ – Jason R Aug 28 '15 at 11:20
1
$\begingroup$

Note that an FIR filter's transfer function is completely determined by its behavior on the unit circle (or any other closed contour). So if you were to define a desired $\mathcal{Z}$-transform (instead of a desired frequency response on the unit circle), you could just evaluate this desired transfer function on the unit circle and use one of the many standard design procedures.

If it were convenient for you to specify a desired response on a circle in the $z$-plane with radius $r$, you could also just use a standard frequency domain design procedure, and obtain your final coefficients by computing

$$h[n]=r^{n}\tilde{h}[n]$$

where $\tilde{h}[n]$ are the coefficients obtained from the standard design procedure.

Of course you can also directly specify the desired zeros in the complex plane, as mentioned in Jason's comment. Note that you can't specify the poles because for a causal FIR filter they must lie in the origin of the $z$-plane.

$\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.