I read that an "improper system" "has more zeros than poles; it is not causal, cannot be implemented, has a strictly proper inverse and has infinite high-frequency gain."

Does causality fail due to instant signal change? I try to make up a recurrence, where $x_n$ depends on both $x_{n-1}$ as well as $x_{n+1}$ but they all can be interpreted as $x_{n+1}$ dependence on $x_{n}$ and $x_{n-1}$ and, thus, are causal.

Is it related with solving recurrent relations saying that P(x) in generating function $f(x) = f_0 + f_1 x + f_2 x^2 + \cdots = P(x)/R(x) \ \ \ \ \ $ must have degree less than R(x) as Miguel A. Lerma says in Generating function of Linear Homogenous Recurrence. Here, $R(x) = 1 + r_1 x^1 + r_2 x^2 + \cdots$ is a reciprocal of the characteristic polynomial of our recurrence $x_n + c_1 x_{n+1} + \cdots = 0.$ This indeed seems to happen whenever which R(x) I try.

On the other hand, https://ccrma.stanford.edu/~jos/fp/Existence_Z_Transform.html seem to identify causality with pole values (if your pole > 1 then series does not converge, which means anticausality) rather than their number and others say that causality is $x_n = 0$ for all $n < 0.$ I do not see how this is related with poles/zeros ratio and my guess that poles > zeroes = causality may be wrong. I have asked to relate various kinds of causality here.

  • 1
    $\begingroup$ I'm having trouble determining what your question is here. Could you try to make that more clear? $\endgroup$ – Jason R Aug 5 '13 at 12:32
  • 2
    $\begingroup$ I feel embarrassed to making it more clear. You must know what are the zeroes and poles and that #zeroes ≤ #poles in any linear system. I bring the statement that stays that. I want to know why and ask why. I wonder how that can be made more clear? $\endgroup$ – Val Aug 5 '13 at 13:04

I think the system is always non-causal if it has more zeros than poles. @Hilmar, your implementation might be possible digitally but if you see a transfer function like this: $H(z) = \frac{(z-1)(z-2)}{(z-3)}$, taking the inverse Z-Transform, $y(n-1)-3y(n-2) = x(n)-3x(n-1)+2x(n-2)$ is clearly non-causal and cannot be implemented real-time(of course you can store the signals and do processing offline, but real time implementation is impossible). So I guess Non-Causality is the answer, apart from the infinite high-frequency gain.

Update by Val Ok, I understand now. In wikipedia, we see that $$a_0 y_n + a_1 y_{n-1} + a_2 y_{n-2} + \cdots = b_0 + b_1 x_{n-1} + b_2 x_{n-2} + \cdots$$ is identical to $$H(z) = {b_0 + b_1 z^{-1} + b_2 z^{-2} + \cdots \over a_0 z^{0} + a_1 z^{-1} +\cdots}.$$ I have finally noted that there are no positive powers. That is, $a_0$ corresponds to the current output, $z^0 = y[n]$, and $\cdots = a_{-2} = a_{-1} = \mathbf{0} = b_{-1} = b_{-2} = \cdots$. If we had more zeroes then we have more power in the nominator and, after normalizing $H(z)$ so that $a_0$ has $z^0$, we still have a positive power of z in the nominator, which means that output depends on future input.

In the simplest case, $Y(z) = zX(z)-x_0$ corresponds to $y[i] = x[i+1]$, that is output depends on future input (we can also drop $x_0$ assuming our sequences are causal, i.e. $0 = y_{-1} = x_0$ aka $z^{-1}Y = X$ or $Y = zX$). It is curious that causal is an example of non-causal. Could anybody clarify it further?

It also worth noting that $(1-az^{-1})(1-bz^{-1})$ is not a zero of order two. It has equal number of zeroes and poles, since it is equal to $(z-a)(z-b)\over z^2.$

  • $\begingroup$ I don't think that H(z) is correct here. The polynomials need to be written in $z^{-1}$ which restores causality. Please see my Answer 2 for a specific example of what I mean. $\endgroup$ – Hilmar Aug 6 '13 at 20:58

In a causal discrete time system, the poles delay the impulse response so that no future samples are required. If you don't have enough poles, you may instead need a time machine (or do processing offline or with a "hidden" delay).

Note that the phase represented by walking CCW around a pole well inside the unit circle is about one sample time delay.

  • $\begingroup$ I'm not sure I agree with that characterization. Any minimum phase FIR filter is causal and stable. [1 1.8 1.21 0.36 0.04]/4.41 makes a perfectly good FIR low pass filter. $\endgroup$ – Hilmar Aug 6 '13 at 1:43
  • $\begingroup$ Depends on when you want the output to appear. Assume a delay and you've added poles to a pre or post filter. Assume you have to output using all 5 FIR taps before you have all 5 of the corresponding inputs, and there is a causality problem. $\endgroup$ – hotpaw2 Aug 6 '13 at 4:03
  • $\begingroup$ Nope, there is no causality problem, but just an initial state problem. That's exactly the same as with an IIR filter. You don't know past samples when you turn the machine on, but after the first few samples that's cleared out. $\endgroup$ – Hilmar Aug 6 '13 at 12:48
  • $\begingroup$ Waiting for data to fill the initial state of a FIR filter is equivalent to adding zeros to the system. $\endgroup$ – hotpaw2 Aug 6 '13 at 14:13
  • $\begingroup$ @Hilmar Your suggestion is totally valid. Buffering can be done. But it's not the equivalent of an on-line processing. Say for example you're controlling a Nuclear Power Plant and there's a Controller which detects a catastrophic failure. That controller cannot wait even 1ms(1 more sample of data) to make its decision if it had a filter like this. $\endgroup$ – Sudarsan Aug 6 '13 at 19:22

If there are more zeros than poles, then there is added lags(power of Z^(-1)) in the output which makes the output more lagged while the input remain the same. This makes the system non-causal.


There are answers which considers inputs X in the nominator and characteristic polynomial in the denominator. Let me explain in terms of simple signal x[n]. It's z-transform, $$Z\{x[n]\} = x_0 + x_1 z^{-1} + x_2 z^{-2} + \cdots,$$ by definition. For instance,$$Z\{a_0, a_1, a_2\} = a_0 + a_1 z^{-1} + a_2 z^{-2} = {a_0 z^2 + a_1 z^1 + a_2 \over z^2 }.$$ Note that signal is causal by definion when it has all negative time values equal 0. That is, you cannot have $a_{-3}$ in the series. This means that you cannot have z with positive powers in the series, which means that in the fractional form, nominator powers cannot be greater than denominator.

Now, System is z-transform of the impulse response, which can be considered as a signal in time domain or a rational z-function $H(z)=Y(z)/X(z)$, which naturally comes out from system equation $\sum a_n y_n = \sum b_n x_n.$ System is causal if it's impulse response is causal.


You must put the transfer function in $$H(z)$$ form, not $$H(z^{-1})$$ form, when counting the number of poles and zeros. There are a lot of replies in this thread that are confused for this reason. If you make sure everything is in terms of positive powers of $z$, all this confusion will go away. That is when the statement "the number of zeros must be less than or equal to the number of poles in $H(z)$ to be causal" applies.


EDIT: based on the comments, the answer below only applies to discrete time systems and poles and zeroes in the Z-plane. NOT to time continuous system and poles and zeros in the s-plane.

A time discrete system with all zeroes and no poles is simply an FIR filter which is always stable and causal. A system with more zeros than poles can be easily split into a cascaded FIR and IIR filter where the excess zeros are end up in the FIR filter.

I don't see any problem with that. It's easily possible to create a system with more zeros then poles that' stable and causal. Here is a simple MATLAB example

z = [.1 .2 .3 .5 .6 .7]; p = [.15 .25 .85]; % 6 zeros & 3 poles more or less random
% plot the impulse response
x = zeros(128,1); x(1) = 1;
[b,a] = zp2tf(z',p',1);
y = filter(b,a,x);
  • 3
    $\begingroup$ If I'm not wrong, I think he's talking about the Transfer Function $H(s)$ and not $H(z)$. In a case of an Analog System having more zeros than poles, problem is that it'll have an infinite gain at infinite frequency which is like $Re(s)>0$ violating stability criterion, the infinite high-frequency gain. $\endgroup$ – Sudarsan Aug 5 '13 at 17:45
  • $\begingroup$ It is amaizing that you've not heard about that and disprove this rule since all academies teach people it. But, they never teach why poles must be more numerous than zeroes. Might be it a continuous issue indeed. But, I was reassured that dsp stands for continous signal processing also. $\endgroup$ – Val Aug 5 '13 at 19:26
  • 1
    $\begingroup$ @Hilmar : The reason an all zero FIR appears causal because of ignoring intrinsic delay. Try to center a linear phase FIR with 0 delay and you have a big problem unless you have a time machine. $\endgroup$ – hotpaw2 Aug 5 '13 at 22:39
  • $\begingroup$ Linear phase system are non causal, but minimum phase or all-pass systems (or any combination thereof) can be perfectly causal. There is no need to ignore any intrinsic delay. $\endgroup$ – Hilmar Aug 6 '13 at 1:30
  • $\begingroup$ @Hilmar : The filter that you've described is still Non-Causal. Try taking its Inverse Z-Transform and see the time sequence relations. If I'm not wrong, the reason why a more-zero(than poles) system cannot be implemented real-time is because of its non-causality. Comments welcome on this. $\endgroup$ – Sudarsan Aug 6 '13 at 1:39

Answer 2: I'll try one more time and then I give up:

Please consider the the difference equation:

$$y[n]-0.5\cdot y[n-1] = x[n] - 3\cdot x[n-1] + 2 \cdot x[n-2] $$

This is a slight modification of Sudarsan's example. I just put the pole at 0.5 so that the whole thing is stable. So we can all hopefully agree on the following

  1. This is a valid difference equation
  2. It describes a linear time invariant system
  3. It is stable
  4. It is causal
  5. It can be implemented in real time

Let's derive the Z-transform $$H(z) = \frac{1-3\cdot z^{-1}+2\cdot z^{-2}}{1-0.5\cdot z^{-1}}$$

This can be rewritten in terms of poles and zeros as follows $$H(z) = \frac{(1-1\cdot z^{-1})\cdot (1-2\cdot z^{-1}) }{1-0.5\cdot z^{-1}}$$ or $$H(z) = \frac{(1-\frac{1}{z})\cdot (1-\frac{2}{z}) }{1-\frac{0.5}{z}}$$

See for example https://ccrma.stanford.edu/~jos/filters/Z_Transform_Difference_Equations.html and https://ccrma.stanford.edu/~jos/filters/Factored_Form.html on how this is done.

In this representation we can clearly see that there are two zeros (at z=1 and z=2) and one pole (z=0.5). This is a specific example of a time discrete filter that is causal, stable and real time implementable and has MORE zeros than poles.

Re the real time implementation of FIR filters. Let's consider the simple FIR filter with an simple impulse response h[n] = [1 -3 2], which is basically the FIR portion of our filter above. Again, it's perfectly causal and stable. You would implement this as follows (in C)_

static float x1 = 0.0F;
static float x2 = 0.0F;

float firFilterExample(float x)
  float y;
  // calculate output
  y = x - 3*x1 + 2*x2;
  // update state variables
  x2 = x1;
  x1 = x;

There is one immediate output per input sample. There is no inherent delay.

  • 1
    $\begingroup$ your TF has 2 poles and 2 zeros if you looked at the $z$ expression. $H(z) = \frac{(1-z^{-1})(1-2*z^{-1})}{1-0.5*z^{-1}}$ is equal to $H(z) = \frac{(z-1)*(z-2)}{z*(z-0.5)}$ which means there are 2 poles(at $0$ and $0.5$) and 2 zeros(at $1$ and $2$). The argument is it is not real time only if it has more zeros than poles. If the number of Poles and Zeros are equal, it'll be perfectly causal. $\endgroup$ – Sudarsan Aug 6 '13 at 21:15
  • $\begingroup$ where is the second pole? There is one at 0.5. The numerator polynomial is order 2 (hence 2 zeros) and the denominator is order 1 (hence one pole) $\endgroup$ – Hilmar Aug 6 '13 at 21:18
  • 1
    $\begingroup$ You're being deceived by $z^-1$. There are 2 poles as I've explained. You're supposed to look at $N(z)$ and $D(z)$ when you see for poles and zeros so that you don't count the order incorrectly. $\endgroup$ – Sudarsan Aug 6 '13 at 21:20
  • 2
    $\begingroup$ I was drawn once into a very bad misconception once when I was initially studying Filter Design that an FIR filter is an all-zero filter since there was no denominator. But in reality it's poles are all at zero and the number of zeros and poles are the same. $\endgroup$ – Sudarsan Aug 10 '13 at 1:26
  • $\begingroup$ H(z) numerator and denominator need to both be multiplied by $z^2$ to put in proper form of positive powers of z, revealing the additional poles at the origin, and showing this is a causal system. $\endgroup$ – Dan Boschen Mar 20 '17 at 1:34

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.