# Does causality imply linearity in a discrete system described by difference equations?

In my textbook, it is stated that for a discrete system, where the input and output are expressed by difference equations, to be causal, there needs to be initial rest. It is also stated that for the system to be linear, the initial conditions should all be zero. I understand why these cases are true, however (I have found both conditions in most of the sites I searched) I do not understand why we need to talk about both of them. Is it because of the "linear" nature of the diff. equation that causality implies linearity, if that's the case?

My translation of what the book states: "We would also like that the difference equation corresponds to a causal system. A linear system is causal if the following condition holds: $$x(n) = 0 \forall n \leq n_0\implies y(n) = 0 \forall n \leq n_0$$ where $$n_0$$ is an arbitrary point in time, and so we say that the system is initially at rest.

Edit: I see now, that this condition is presented after it is stated that for the system to be linear, we need initial conditions to be zero. Would the condition for causality be subject to any change if we didn't care about linearity?

• "In my textbook, it is stated that for a discrete system, where the input and output are expressed by difference equations, to be causal, there needs to be initial rest." Uh -- nope. Could you edit the question to quote that section of your textbook word for word, and maybe cite the book? To be causal, any effect on the system must happen after the cause. Initial conditions are from a "cause" that -- for a causal system -- happened before you start the clock on your solution, but you can certainly have initial conditions on a causal system. Jan 29 at 4:54
• @TimWescott I think I understood what you said about the clock. It means that for a causal system, if the clock starts at time $n_0$ and then the input is zero at the start ($n_0 \leq n \leq n_1$ in real time), we need the output to be zero for the same time and don't care about initial conditions before $n_0$(?) Jan 29 at 8:47
• However, now I see a different problem. If we only care about what happens by the time we supply the system with an input and onwards (thus, when we start the time), why are all the initial conditions needed to be zero for the system to be linear, if the output is zero when the input we start supplying is zero, for example, if the system happens to be causal? Jan 29 at 8:55

A linear system is causal if the following condition holds: $$x(n) = 0\ \forall\ n \leq n_0\implies y(n) = 0\ \forall\ n \leq n_0 \tag 1$$ where $$n_0$$ is an arbitrary point in time, and so we say that the system is initially at rest.

That is a sufficient condition for causality, but it is not a necessary condition for causality -- and it's a lot easier to state.

I really can't state this in a manner that's detailed and correct without going into a lot of concepts that you probably haven't been taught yet. So I'm going to gloss over those details.

A system is interesting if it has some internal states that let it remember what state it was in at some other time step. For a causal system, the system's current state is strictly a function of the system's prior state, and of the input. In other words, it only ever remembers past events.

This leads back to what I said in my comment: a system can have non-zero initial conditions (which are reflected by having non-zero initial outputs) and still be causal. What makes a system causal is that there is no positive* $$\Delta n$$ for which $$y(n)$$ can ever be affected by $$x(n + \Delta n)$$ (assuming that you're defining the output as $$y(n)$$ and the input as $$x(n)$$).

On the flip side, a purely non-causal system only "remembers" future events: $$y(n)$$ can only be affected by future values of $$x(n)$$. You can write down the equations for such systems, you can even use signal processing to predict what their behavior would be if they existed -- but such systems have never been observed in real life.

And, you can have mixed-causality systems, that respond to both past and future input. Again, these are impossible in real life.

* The stricter definition is that $$\Delta n$$ must be non-negative. Depending on the problem they're trying to solve one definition may make more sense than the other.

Linearity and causality are different things.

Causality means that the output is only a function of the present and past input samples (and output samples). $$y[n] = x[n] + x[n-1]$$ is causal and $$y[n] = x[n]+x[n+1]$$ isn't.

Linearity is simply defined as $$H(a \cdot x[n]) = a \cdot H(x[n])$$ and $$H(x_1[n]+x_2[n]) = H(x_1[n])+H(x_2[n])$$ where $$H()$$ denotes what the system does the input $$x$$ (which can be a difference equation or something else.

$$y[n] = x[n] + x[n-1]$$ is linear and $$y[n] = x[n] \cdot x[n-1]$$ isn't.

Causal systems can be linear or non-linear. Linear systems can be causal or not.

# Update

Your textbook is saying a system is causal if:

$$x(n) = 0 \forall n \leq n_0\implies y(n) = 0 \forall n \leq n_0$$

In words this means: You apply an input that has beginning. If the output has also a beginning and it's not earlier than the input, than the system is causal.

That has absolutely nothing to do with initial conditions, it's just a way to define causality. You can apply any initial conditions you want to causal system and will stay causal.

• Thanks for the answer. However, if a system is described by linear equations and we want it to be causal and LTI, if it is causal, doesn't that mean it is LTI too? Can a system where we have initial conditions (know the output on some points regardless of the input) be causal? Jan 29 at 8:23
• to specify, I am talking about non zero initial conditions. Jan 29 at 8:51
• Linearity and causality have nothing to do with initial conditions. Jan 29 at 12:49
• @Hilmar : Not quite. When a system is described by difference equations, there are two solutions: a general solution (which just depends on initial conditions) and a particular solution (which depends on the forcing function, or input). The overall solution will be $y_g + y_p$. For most systems to be considered "linear", the initial conditions need to be zero. Note that here, I'm using the pedantic definition of linear: $y=mx$ versus affine : $y=mx + c$.
– Peter K.
Jan 29 at 20:35