0
$\begingroup$

I am having difficulty in developing an algorithm for checking if a given system is time invariant or not.

For example, let there be 2 systems with input output relation given as:

$$y(t)=x(t-2)$$ or $$ y(t)=tx(t-1)$$

Now the first system is time invariant whereas the second one is not. But how do I write a function in MATLAB that would take the input output relationship and find out if the system is time invariant or not.

$\endgroup$
1
$\begingroup$

You can't do that. What you can do is write a function that computes the output given the input signal, then shifts the input signal (the shift could be an input parameter), and then checks if the output signal is a shifted version of the original output signal. If this is NOT the case, then you know that the system is time varying. However, if the output signal is just a shifted version of the original output signal then you don't know anything, because you would need to try all possible (i.e. infinitely many) shifts (and all possible input signals) and verify this condition for all these cases. Only after having checked infinitely many shifts (and all possible input signals) would you be able to assert that the system is indeed time-invariant.

$\endgroup$
  • $\begingroup$ could u help in taking the input -output relation of a system from the user. for ex. how would i take the following as input from the user $y(t)=t.x(t-1)$ $\endgroup$ – suhail Sep 15 '14 at 14:06
  • $\begingroup$ @suhail: The user could supply a function that computes the output from a given input. Otherwise, you could look into Matlab's eval command (but I haven't used it). If you need more help you could try asking on stackoverflow. $\endgroup$ – Matt L. Sep 16 '14 at 7:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.