How Can Shifting a Non-Causal System by Two Units Make It Causal?

AI Thread Summary
Shifting a non-causal system by two units can make it causal because causality is determined by whether the output depends on future input values, not by the system's time reference. The impulse response values h[0]=0, h[1]=1.5, and h[2]=-1.5 are derived from the system's response to an impulse input, which requires knowledge of previous output values. A system can be analyzed for causality by examining the relationship between the output and inputs at different time shifts. It is possible to find the impulse response of both causal and non-causal systems, but for a causal system, the impulse response must be zero for negative time indices. Understanding these principles clarifies the distinction between causal and non-causal systems in signal processing.
LM741
Messages
130
Reaction score
0
hey guys - attached is a solution to a signals related question.

Given the system - we must calculate the impulse reponse.

please click on attachment to see what I am talking about.

two things confuse me:
1)the system is evidently non-causal, but here they decide to shift the entire system by two units; thus making it causal! - how can they just do this?!
2) near the conclusion of the answer they have:
h[0]=0
h[1]=1.5
h[2] =-1.5
where do they get these values??

thanks very much.

John
 

Attachments

Engineering news on Phys.org
LM741 said:
hey guys - attached is a solution to a signals related question.

Given the system - we must calculate the impulse reponse.

please click on attachment to see what I am talking about.

two things confuse me:
1)the system is evidently non-causal, but here they decide to shift the entire system by two units; thus making it causal! - how can they just do this?!
2) near the conclusion of the answer they have:
h[0]=0
h[1]=1.5
h[2] =-1.5
where do they get these values??

thanks very much.

John


1.) Causality does not care if you shift the time. It only cares if the output (at any time) depends on a future value of the input (relative to that time), like y[n+1] = 2*x[n+4].

2.) The impulse response is h[n], but it is also what its name says - the response of the system to an impulse. Since the system is causal you know something about h[n<0], so compute y[0] using x[n] as an impulse at 0, then y[1] using x as an impulse at 1 and using the previously computed y[0], etc...
 
thanks for the reply lebrad
but I am not getting this - because that means you can make any system causal!

e.g: y[n+2] +y[n+1] + y[n] = x[n] + x[n+2]
then that means i could just put n = n-2 and get the following:
y[n] + y[n-1] y[n-2] = x[n-2] + x[n]

this just doesn't seem to make sense to me because why would they ask the question " Is the system causal?" ? because the answer will always be yes?
 
oh wait - think i see your point:
the system you gave: y[n+1] = 2*x[n+4]

no matter how much i shift (for e.g: n=n-4 will give me y[n-3] = 2*x[n]) my output is still dependent on a future input value because x[n] happens after y[n-3] i suppose? so do always apply this 'shift technique' to confirm that a system is no causal??
if I'm right then this makes sense and my issues with causal/non causal systems, dare i say it, may be over :)
thanks
 
one more thing...can i only find the impulse response of a CAUSAL system??
 
For an LTI system that depends on inputs and outputs at multiple times, if you can write it as
y[n] = \sum_{k=0}^{N&gt;0} a_k x[n-k] - \sum_{k=1}^{M&gt;0} b_k y[n-k],
then it is causal. The important thing is to look at the future-most output and compare the inputs to that one. And as you saw, you can always define tau = n+k to get y[tau] = ... in the proper form if you start with a y[n+k] term.The system does not need to be causal for you to find the impulse response. But in the case of your system, you need to know two previous values y[n-1] and y[n-2] to compute y[n]. And since the impulse response is used to compute the output as
y[n] = x[n] * h[n] = \sum_{k=-\infty}^{\infty}h[k] x[n-k],
you see that y[n] depends on x[n-k], so when k<0, then (n-k)>n and the output depends on future values of the input, and thus the system is not causal. Therefore, if you know the system is causal, to prevent this probelm it must be true that h[k]=0 when k<0. That way y[n] depends only on x[n-k] when k>=0, and is therefore causal. So using that information you can figure out y[-1] and y[-2] which are needed to compute y[0].
 
leBrad thanks very very much! at least i know who to ask for help with signals! :) seems like you really know your stuff!
thanks again!
John
 
Back
Top