# 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 May 13, 2014 at 18:52
• are all zeros located within the unit-circle? May 13, 2014 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. May 13, 2014 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.