# Is it possible to calculate a z-transform for a filter calculated with Parks-McClellan?

I would like to know whether this can be done and if then how would this feat be acomplished in Matlab given a filter calculated with Remez?

h = remez(...);

If this is not possible then I would appreciate an explanation whether this can be done approximately (approximations of the zeros and poles) or whether this is simply mathematically pointless because a broken rational complex polynomial representation does not exist.

If your impulse response is $h(n)$ then the $\mathcal{Z}$-transform of this impulse response (i.e. the transfer function of the filter) is

$$H(z)=\sum_{n=0}^{N-1}h(n)z^{-n}$$

where $N$ is the filter length, i.e. the number of coefficients.

Note that since it is an FIR filter, all its poles are at the origin of the $z$-plane. The zeros are of course the zeros of the polynomial with coefficients $h(n)$.

• ŵell explained, it's ringing a bell. thanks – Raffael May 13 '14 at 18:52
• are all zeros located within the unit-circle? – Raffael May 13 '14 at 18:55
• @Raffael: No, the Remez algorithm designs linear-phase FIR filters, and they have all their zeros either on the unit circle (in the stopband of the filter) or mirror-imaged at the unit circle (in the passband). I.e. for each zero inside the circle there must be one with inverse magnitude outside the unit circle. – Matt L. May 13 '14 at 18:58

Well, remez function in MATLAB returns your FIR filter coefficients b (of a numerator). Having them you can obtain zeros, poles and gain by calling:

[z, p, k] = tf2zpk(b, 1);


What's more, you can use the following tool to visualize your filter:

 fvtool(b, 1);


In R you can use the function polezero:

 polezero(b, 1);


to get the plot.