Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Causal or non casual?

  1. Aug 21, 2006 #1
    hey guys.

    anybody know how to tall if a system is causal, memoryless, time invariant...

    a system like this for example: y[k+1] + 2y[k] = x[k+1] + x[k]
    this is causal (according to my notes) but i can't see why because here we are advancing in time!!! System is causal if output depends only on past and present input signal!!!

    i know how to determine a simple system like
    y(t) = x(t-5)

    just not sure how to handle a more comple system like that above???

    also: 2y[k+1] + y[k] = 2kx[k] + x[k-1] +3

    so confused!!!


    working with discrete signals by the way...
  2. jcsd
  3. Aug 21, 2006 #2


    User Avatar

    If you make a variable change k+1 = j in the first example, you have:
    y[j] + 2y[j-1] = x[j] + x[j-1], which depends only on present and past inputs.
    In the second example you have only present and past inputs. You have a prediction of the value of the output, but there is no problem here.
    A non causal system would be for instannce:
    y[k] - y[k-1] = x[k+1] + kx[k]
    This system is noncausal, since the value of the ouput at present depends on the value of the input in the future.
  4. Aug 21, 2006 #3
    SGT>>thanks..just one more thing

    SGT>> thanks very very much! appreciate it---just not entirely sure what you mean with the second example...
    2y[k+1] + y[k] = 2kx[k] + x[k-1] +3

    do i look at all the input terms and all the output terms separately?

    is a 'past value' a delay in time? like x[k-1]?

    looking at it from a graphic point of view how do you view this as a past value?
    i know x[k-1] is a shift to the right (by one unit) - but how do you visualize that to be a past value? always had trouble grasping this concept....
    The way i look at it is: you sampling from the left of the graph (as time passes you move along to the right) now applying x[k-1] will cause the entire graph to shift to the right by one unit thus it is one unit further away from you thus it has been delayed. how is this a past value because you haven't got to it yet - it is still in the future? really wierd hey? sorry im getting really confused here.
    is this right or is my perception distorted ??? :-)
    would really appreciate any feedback

  5. Aug 21, 2006 #4


    User Avatar
    Gold Member

    Drat. Judging by the title, I thought this thread was going to be about business attire...:biggrin:
  6. Aug 22, 2006 #5


    User Avatar

    If your sampling period is T and [tex]t_k[/tex] is yor actual instant, [tex]t_{k-1} = t_k - T[/tex], or one sample period in the past, while [tex]t_{k+1} = t_k + T[/tex] or one sample period in the future.
    x[k] is a short notation for [tex]x[t_k][/tex], so x[k-1] and x[k+1] are respectively the values of the variable x one sample period in the past and in the future.
  7. Aug 22, 2006 #6
    SGT>>thanks a alot! appreciate it

    one LAST thing:
    2y[k+1] + y[k] = 2kx[k] + x[k-1] +3

    isn't this system causal??
    because the value of my output at present (i.e. y[k]) is equal to past and present values of my input (i.e. x[k] and x[k-1]) ...just not sure how to handle the output at a futre value (y[k+1]) and the constant term 3?
    is it non casual because ofthe y[k+1]?
    is there any systematic approach to solving such a system? like making y[k] the subject of the formula and then evaluating it?

    thanks so much for your time!
  8. Aug 23, 2006 #7
    You are absolutely right, make y[present] the subject of the formula.

    2y[k+1] + y[k] = 2kx[k] + x[k-1] +3

    perform a change of index with n = k+1 so that
    2y[n] + y[n-1] = 2kx[n-1] + x[n-2] +3

    and then you'd clearly see that the present output y[n] depends on the previous inputs, x[n-1] and x[n-2], and also a previous output y[n-1].
  9. Aug 23, 2006 #8
    so i first change the index and then make y[n] the subject of the formula?

    so the system is causal...right???

    thanks doodle!!!
  10. Aug 23, 2006 #9


    User Avatar

    You don´t really have to change the variable. You can work the system in prediction mode and estimate the future output based on the present output and on present and past inputs.
    The fact that you use prediction does not make the system noncausal.
    Think, for instance of the movement of a particle with constant velocity.
    The position x at instant k+1 depends on it´s position and velocity at instant k:
    x[k+1] = x[k] + T.v[k], or x[k+1] - x[k] = T.v[k].
    If the velocity is not constant, and you don´t know the acceleration, you can use the average velocity at the previous time interval:
    [tex]v_{avrg}=\frac{v[k] + v[k-1]}{2}[/tex], so
    x[k+1] - x[k] = T.v[k]/2 + T.v[k-1]/2
  11. Aug 23, 2006 #10
    thanks sgt. the system 2y[k+1] + y[k] = 2kx[k] + x[k-1] +3
    is causal then? it has to be !!?
  12. Aug 27, 2006 #11


    User Avatar

    You have understood. It is causal and is predictive.
  13. Oct 12, 2009 #12
  14. Jan 28, 2012 #13
    ....And a thank you to SGT from me ! ;)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook