Determining Causal/Non-Causal System in Discrete Signals

  • Thread starter Thread starter LM741
  • Start date Start date
AI Thread Summary
The discussion revolves around determining whether discrete systems are causal, memoryless, or time-invariant. A specific example, y[k+1] + 2y[k] = x[k+1] + x[k], is identified as causal because its output relies on present and past inputs, despite appearing to advance in time. Participants clarify that a system can still be causal even if it predicts future outputs, as long as it depends on current and past values. The confusion about distinguishing past values, such as x[k-1], is addressed by explaining that these represent delayed inputs in the context of sampling. Ultimately, the consensus confirms that the discussed systems are indeed causal.
LM741
Messages
130
Reaction score
0
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!

thanks

working with discrete signals by the way...
 
Engineering news on Phys.org
LM741 said:
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!

thanks

working with discrete signals by the way...
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.
 
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 weird hey? sorry I am getting really confused here.
is this right or is my perception distorted ? :-)
would really appreciate any feedback

thanks
john
 
Drat. Judging by the title, I thought this thread was going to be about business attire...:biggrin:
 
LM741 said:
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 weird hey? sorry I am getting really confused here.
is this right or is my perception distorted ? :-)
would really appreciate any feedback

thanks
john
If your sampling period is T and t_k is yor actual instant, t_{k-1} = t_k - T, or one sample period in the past, while t_{k+1} = t_k + T or one sample period in the future.
x[k] is a short notation for x[t_k], 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.
 
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!
John
 
You are absolutely right, make y[present] the subject of the formula.

For
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].
 
so i first change the index and then make y[n] the subject of the formula?

so the system is causal...right?

thanks doodle!
 
LM741 said:
so i first change the index and then make y[n] the subject of the formula?

so the system is causal...right?

thanks doodle!
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:
v_{avrg}=\frac{v[k] + v[k-1]}{2}, so
x[k+1] - x[k] = T.v[k]/2 + T.v[k-1]/2
 
  • #10
thanks sgt. the system 2y[k+1] + y[k] = 2kx[k] + x[k-1] +3
is causal then? it has to be !?
thanks
 
  • #11
LM741 said:
thanks sgt. the system 2y[k+1] + y[k] = 2kx[k] + x[k-1] +3
is causal then? it has to be !?
thanks
You have understood. It is causal and is predictive.
 
  • #12
thanx...SGT
 
  • #13
...And a thank you to SGT from me ! ;)
 
Back
Top