1

Causality

A signal is causal if it only exists for $t \ge 0$.

A system is causal if the current output only depends on the current or prior inputs.

Problem

Say I have a transfer function that describes a certain system, $H(s) = \frac{N(s)}{D(s)} = \frac{(s+2)(s+1)}{s+10} $.

Clearly, the order of the numerator polynomial is greater than the denominator polynomial. If I try to find the impulse response (which is simply the inverse Laplace transform of $H(s)$) in MATLAB I get an error saying this system is non-causal.

enter image description here

Question: Why is a system where the order of $N(s)$ is greater than that of $D(s)$ non-causal? A non-causal system implies that its impulse response is non-causal (i.e. it exists before $t=0$), but why is this the case?

Carl
  • 529
  • Have you heard of the Initial Value Theorem? If the system were causal and BIBO stable we would have no issues. But what happens when you apply the theorem? – Ninad Munshi Dec 14 '23 at 08:27
  • @NinadMunshi The initial value will diverge to infinity, but what does that have to do with causality? – Carl Dec 14 '23 at 08:38
  • The assumptions for the initial value theorem are that a system is Causal and BIBO stable. If it is violated, then it violates one of the two, you just don't know which. Have you ever tried to undo a Laplace transform before? Ever notice that for a well behaved system, you didn't have to choose a causal inverse transform, that you could have chosen an anticausal one? Similarly in this situation, you could choose a signal to be casual but unbounded, or you can find a bounded but non-casual signal as your potential impulse response. A computer program just throws up the generic non-causal flag. – Ninad Munshi Dec 14 '23 at 08:43
  • @NinadMunshi I understand what you are saying, but I can't seem to couple it to my question. Can you provide an example in an answer perhaps? – Carl Dec 14 '23 at 08:54
  • It would be very difficult for me to fill in the gaps of probably an entire course's worth of theory in one answer post (for example region of convergence, pole-zero effects on behavior) but the short answer is since inverse Laplace transforms aren't unique, we sometimes have the luxury of enforcing uniqueness by instituting the causality restraint. The software you are using tried to do that and ran into a divergence, throwing up that flag. It doesn't actually know if the impulse response is causal or not. – Ninad Munshi Dec 14 '23 at 09:07
  • @NinadMunshi I just don't undestand why if the degree of $N(s)$ is larger than $D(s)$ this makes the system non-causal. Computing the inverse laplace transform of my system $\mathcal{L} \bigg{ \frac{(s+2)(s+1)}{s+10} \bigg}^{-1} = \delta (1,t) -5\delta(t) + 56e^{-10t}$ it is not obvious to me how the impulse response is non-causal here. – Carl Dec 14 '23 at 09:13

1 Answers1

2

The relevant property is not causality but the fact that the system is improper. Your approach is too broad as you include all systems that send a distribution to a distribution. The additional desirable property is bounded input, bounded output (BIBO) stability. This is not the case for your system as the causal step response includes a Dirac delta.

Matlab solves numerically the system, so a signal must be smooth. If you check out the documentation (section "Algorithms" at the bottom), the system is converted into state space form. Reading this answer to Why can't an improper transfer function be realized?, you'll understand why your transfer function cannot be written in this form, hence the error message.

Btw, you're not the first one to encounter this error, and you'll find many other posts describing similar issues like: Pade Approximation of dead time.

Hope this helps.

LPZ
  • 2,788