I confuse about the implementation of the FIR filter with no poles. If the transfer function is given in the form

$$ H(z) = 1+az^{-1}+bz^{-2} $$ direct form implementation is just delay operator followed by the coefficiens. There is no problem with that, but how about

$$ H(z) = z^{2} + az^{1} + b $$

  • Multiplying and dividing with the $z^{-2}$ to be able to use direct form with $z^{-1}$ gives us extra $z^{2}$ term in the numerator. How can I handle this kind of problem? How to implement the direct form of FIR filter if in the transfer function there is no poles and power of z's are positive as in our example?
  • OR if know the the 2 zeros of the second order FIR filter say z1,z2. How to write transfer function so that I can use the direct form implementation? If I can write in the form of pozitive z, it seems that no possible direct form, Am I wrong?
  • $\begingroup$ $z^{-1}$ means one sample delay and positive power of $z$ is uncausal so it is unable to be implemented. $\endgroup$
    – ZR Han
    Feb 7 at 10:40
  • $\begingroup$ Suppose I know the the zeros of the FIR filter, say z1,z2. Then I want to write the transfer function as H(z) = (z^2 -(z1+z2)z +z1z2). Isnt't it? So you mean there is no direct form in this case? $\endgroup$ Feb 7 at 11:54
  • $\begingroup$ of course you can write it in this form, but it’s not causal,so it doesn’t exist in real world and you can’t implement it through code in real time. $\endgroup$
    – ZR Han
    Feb 7 at 12:58

1 Answer 1


Every causal FIR filter implementation will have $N$ poles at the origin with $N$ representing the number of zeros. Each pole at the origin represents a $z^{-1}$ delay (given that $H(z)= z^{-1} = \frac{1}{z}$ is a pole at the origin on the z-plane).

Consider a simple case of a 2 tap FIR filter with unity gain coefficients given by the following transfer function:

$$H_1(z) = \frac{Y_1(z)}{X(z)} =1 + z^{-1} = \frac{z+1}{z}$$

From the inverse z transform we see the implementation of this as a causal FIR system with outputs dependent on current and prior inputs as:

$$y_1[n] = x[n] + x[n-1]$$

Now for comparison consider if we didn't have the pole at the origin with:

$$H_2(z) = z+1$$

The implementation of this is given as follows and is clearly non-causal:

$$y_2[n] = x[n+1]+ x[n]$$

Another way to understand this is that every system will have the same number of poles and zeros if we include poles and zeros at infinity. (For instance the transfer function $H(z)=\frac{1}{z}$ has a pole at the origin by inspection, but it also has a zero at infinity, given $H(z)$ will go to zero at z approaches infinity.) So, if a system (FIR or IIR) has $N$ finite zeros, then to be stable and causal it must have $N$ poles inside the unit circle. If there were not, then that would mean it would have poles outside the unit circle (including potentially at infinity on the z-plane), which is an unstable causal system.


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.