I'm missing a step to understand the factorization of the FIR filter transfer function: $$H(z)=\sum\limits _{k=0}^{M}b_{k}z^{-k} \tag{1}$$

From DSP First:

The $z$-transform of a finite-length signal, such as $H(z)$ for an FIR filter, is a function of the complex variable $z$, and it is also an $M^{th}$-degree polynomial in the variable $z^{−1}$. Therefore, $H(z)$ has exactly $M$ roots according to the fundamental theorem of algebra. When $H(z)$ is expressed in terms of its roots, it can be written as the product of first-order factors that completely define the polynomial to within a multiplicative constant, that is, $$H(z)=G\prod_{k=1}^{M}(1-z_{k}z^{-1})=G\prod_{k=1}^{M}\frac {(z-z_{k})}{z}\tag{2}$$

The point I don't understand is the $z^{-1}$ factor. I expected to see only factors corresponding to roots:

$$H(z)=G\prod_{k=1}^{M}(z-z_{k}) \tag{3}$$

I know the book is correct (perhaps a function with negative exponents is not exactly a regular polynomial though), but I need a little help to make sense of how the sentence "When $H(z)$ is expressed in terms of its roots, it can be written..." can lead to equation (2) instead of (3).

Update with a partial understanding:

1/ I found intriguing the author used the word polynomial to describe the sum, and mentioned the use of the roots to factorize it. I think I got a clue... The author actually transforms the Laurent's series (negative exponents) into a polynomial (positive exponents) without explicitly saying it. My guess:

$$H(z)=\sum\limits _{k=0}^{M}b_{k}z^{-k}=\sum\limits _{k=0}^{M}b_{k}z^{M-k}z^{-M} \tag{4}$$

2/ This polynomial has roots, and they can be used for factorization:

$$H(z)=\sum\limits _{k=0}^{M}b_{k}z^{M-k}z^{-M}=G\prod_{k=1}^{M}(z-z_{k})z^{-M} \tag{5}$$

However at this stage I'm lost since the additional factor is not the one in the book: $z^{-M} \ne z^{-1}$


2 Answers 2


The z transform of a unit sample delay is $z^{-1}$. The z transform of a delay one sample in the future is $z^1=z$ which is non-causal. For example, a simple two element FIR filter with unity gain coefficients, which is the sum of the current sample with the previous sample is given as $H(z) = 1+z^{-1}$.

FIR filter

If we divide the numerator and denominator both by $z$, we get:

$$H(z) = 1+z^{-1} = \frac{z+1}{z}$$

We see here how all causal Nth order FIR filters must have $N$ poles (the roots of the denominator) at the origin (where $z=0$), since a causal filter can only be constructed with delays ($z^{-1}$), not "aheads" ($z^1$).

We see how, to the OP’s question, the solution cannot be written as the product of first order factors in the form of $(z-z_k)$ with positive exponents of $z$ alone, as that would be non-causal as described above and must instead include an additional $z$ in the denominator for each factor to be causal (which means multiply by $z^{-1}$). Thus, the solution can be written as the product of first order factors in the form of $1-z_k z^{-1}$.

Regarding the OP’s update, equation 5 is incorrect; this would have a $z^{-1}$ term and not $z^{-M}$ as shown in the final equation given; $z^{-1}$ is multiplied $M$ times which will provide the $z^{-M}$ term given in the OP’s summation form:

$$H(z)=\sum\limits _{k=0}^{M}b_{k}z^{M-k}z^{-M}=G\prod_{k=1}^{M}(z-z_{k})z^{-1}=Gz^{-M}\prod_{k=1}^{M}(z-z_{k})$$

  • $\begingroup$ @mins I see. I updated my answer to hopefully get to the root (ha!) or your confusion. Please let me know what isn’t clear. $\endgroup$ Commented Mar 27, 2023 at 12:53
  • 1
    $\begingroup$ @mins could you update your question to show those mathematical steps specifically to the point of what you don’t think works? An example would help $\endgroup$ Commented Mar 27, 2023 at 13:45
  • $\begingroup$ @mins ok thanks, do we agree on your mistake? $\endgroup$ Commented Mar 27, 2023 at 14:24
  • $\begingroup$ Yes. So bottom line, the author is correct as expected, but not very explicit for DSP learners, the target of his book. $\endgroup$
    – mins
    Commented Mar 27, 2023 at 14:28

The most basic description of an FIR filter is it's difference equation:

$$y[n] = \sum_{k=0}^{N}h[k]\cdot x[n-k] \tag{10}$$

Taking the z-transform gives you directly your equation (1) since the z-transform of time domain delay of m samples is simply $z^{-m}$.

That's why you end up with a polynomial in $z^{-1}$. The rest is just algebra. In order to turn this into a polynomial in z you need to multiply both numerator and denominator with $z^{N}$.

What that all means at the end is that an FIR filter does not only have N zeros, it has also N poles at $z=0$.


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.