A stable discrete-time LTI system is described by the following difference equation:

$$ y[n] - y[n-1] + Cy[n-2] = x[n] $$

where C is a real number. Determine the range of C so that

(a) the system is causal;

(b) the system is anti-causal;

(c) the system is non-causal (i.e., it has a two-sided impulse response).

It is straight forward to calculate the transfer function:

\begin{align*} Y(z) - z^{-1}Y(z) + Cz^{-2}Y(z) &= X(z) \\ H(Z) = \frac{Y(z)}{X(z)} &= \frac{1}{1 - z^{-1} + Cz^{-2}} \\ \end{align*}

We are given that the system is stable so the ROC must include the unit circle. Therefore there can not be a pole with magnitude \$1\$.

With \$C=0\$, \$H(z)= \frac{1}{1 - z^{-1}}\$, there is a pole at \$1\$ so that is not possible.

With \$C=-2\$, \$H(z)= \frac{1}{1 - z^{-1} - 2z^{-2}} = \frac{\frac{1}{3}}{1+z^{-1}} + \frac{\frac{2}{3}}{1-2z^{-1}}\$, there is a pole at \$-1\$ so that is not possible.

From there, where do I go?

Ultimately this may factor into the form:

$$ \frac{k_1}{1 + a_1 z^{-1}} + \frac{k_2}{1 + a_2 z^{-1}} $$

Is that a causal transfer function or not? The inverse Z transform can yield both a causal and anti-causal impulse response function.

  • \$\begingroup\$ What is the definition of causality? \$\endgroup\$
    – Matt Young
    Sep 17, 2015 at 1:23
  • \$\begingroup\$ causal system is one whose output depends only on past and present inputs. The given difference equation defines the output recursively in terms of past output values, so it's not immediately apparent whether it is causal or not. \$\endgroup\$
    – clay
    Sep 17, 2015 at 2:17
  • \$\begingroup\$ if C>>1, y(n) and y(n-1) can be ignored, leaving an anti-causal system \$\endgroup\$
    – Chu
    Sep 17, 2015 at 16:15
  • \$\begingroup\$ @Chu, I agree with that. The problem demands more though. Do you have any ideas? \$\endgroup\$
    – clay
    Sep 17, 2015 at 17:08
  • \$\begingroup\$ It depends on the strict definition of the categories of causality. What definitions did your professor give to you? \$\endgroup\$
    – Chu
    Sep 17, 2015 at 18:40

1 Answer 1


This is a root locus analysis with variable K.

The poles are: $$ p_{1,2}=\frac{1}{2}(1 \pm (1 - 4c)^{1/2}), |p_2|<|p_1| $$

For \$c<=1/4\$, the poles are real. \$p_{1}=1\$ when \$c = 0\$.

For \$c>1/4\$, the poles are complex, and their magnitude is: $$ |p_{1,2}|=\sqrt{\frac{1}{4}(1 + (4c-1))}=\sqrt{c} $$ which is equal to 1 when \$c=1\$.

Hence, for \$c\$, \$p_1\$ and \$p_2\$:

  • \$c=0: p_1=1\$ (critical), \$p_2=0\$ (stable)

  • \$c=1: p_{1,2}=1/2 \pm i\sqrt(3)/2\$ (underdamped stable,\$<1\$)

  • \$c=1/4: p_1=1/2, p_2=1/2\$ (overdamped stable,\$<1\$)

Because the time response is given, with negative delays, the system is casual, independently of \$c\$.

If only \$H(z)\$ were given and no time response, we obtain the explicit division, for inspect each converging term involving infinite sums: $$ H(Z) = \frac{1}{p_1-p_2}(\frac{p_1}{1 - p_1 z^{-1}}-\frac{p_2}{1 - p_2 z^{-1}}) $$


For a Causal System (no diverging components on the sum, for any \$c\$):

$$ |p_1 z^{-1}|<1 and |p_2 z^{-1}|<1 \rightarrow max(|p_1|,|p_2|)<|z| $$

if \$c<=1/4\$: \$\frac{1}{2}(1 + (1 - 4c)^{1/2})<|z|\$

if \$c>1/4\$: \$\sqrt{c}<|z|\$

For a Anti-Causal System (both components diverge):

$$ |p_1 z^{-1}|>1 and |p_2 z^{-1}|>1 \rightarrow min(|p_1|,|p_2|)>|z| $$

if \$c<=1/4\$: \$\frac{1}{2}(1 - (1 - 4c)^{1/2})>|z|\$

if \$c>1/4\$: \$\sqrt{c}>|z|\$

For a Non-Causal System (one component diverge and the other converge):

$$ |p_1 z^{-1}|>1 and |p_2 z^{-1}|<1 \rightarrow |p_2|<|z|<|p_1| $$

if \$c<=1/4\$: \$\frac{1}{2}(1 - (1 - 4c)^{1/2})<|z|<\frac{1}{2}(1 + (1 - 4c)^{1/2})\$

if \$c>1/4\$: \$\sqrt{c}=|z|\$

in MATLAB, making:

h = tf([1],[1 -1 0],1); rlocus(h); axis equal;

you obtain the 'variable locus', though the correct interpretation of the c values is artificial here.

Root Locus with Variable K


  • 1
    \$\begingroup\$ WOW +1 that takes me back to 1986 .I specialised in repeating this stuff at Uni .Im real rusty but I think you are correct. \$\endgroup\$
    – Autistic
    Mar 27, 2016 at 10:25
  • \$\begingroup\$ I fear this is the loong method. Matlab can make it easily. But while you dont identify the controller that is the algebraic form.... \$\endgroup\$
    – Brethlosze
    Mar 27, 2016 at 10:32
  • \$\begingroup\$ And actually nobody cares about ROC these times.... \$\endgroup\$
    – Brethlosze
    Mar 27, 2016 at 10:33

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.