# Whether $y(t) = x(t/3)$ is a memoryless system?

I am a newbie in signal and system, and feeling confused about the memoryless property, it says at the definition, if a system gives output only depends on present input, then its memoryless. So if at $$t=3$$, $$x(1)$$ is needed, whether this count as a memoryless system? Or it only consider the time shift like $$y(t) = x(t-1)$$?

You are trying to mimic what I did at time $$t$$. You'll be $$y$$ for now, say I'm $$x$$.

Now suppose that our are mimicking my actions with your own modification pattern (called $$f$$), at the very same time. Then, your location, depending on mine, is:

$$y(t) = f(x(t))\,.$$

Here, you only need the current observation $$x(t)$$ (hence, no memory).

Now, suppose that you are trying to mimic what I do at time $$t$$, but only three times slower ($$t/3$$). What you will do at $$t=3$$ (or $$y(3)$$), I did it at $$t = 3/3$$, or at one second ($$x(1)$$). You need memory.

In plain language, $$y(t) = x(t/3)$$ is "play back the input at 1/3 real speed".

That takes memory.

I don't see many systems like that. I can't even conceive of a real example, unless it's part of some larger detection and identification system that first detects and then if there's a detection chews on the data to do an identification -- but even there I would expect that what you're really interested in is that the identification comes back with some delay, either fixed or stochastic.

In a memoryless system, the output at time instance $$n$$ depends only on the input at time instance $$n$$.

For example: $$y[n] = |x[n]|$$, for a very simple rectification or even $$y[n] = \frac{1 + sgn(x[n]-v)}{2}$$ where $$v$$ is a threshold value. When $$x[n]$$ is above $$v$$, the output is 1, otherwise it is zero.

The minute an output needs more time instances to calculate, you have a "system" with memory.

This is true whether your system tries to reference an adjacent time instant (e.g. $$n-1$$) or not (e.g. $$n-2, n-8, n+4$$). Even if such a system did not need $$x[n-1]$$, it would still have to have a mechanism to "skip it" to get to $$x[n-2]$$ and the rest, therefore, it would still need memory.

Take for example a very simple two-tap moving average filter: $$y[n] = \frac{1}{2} \left ( x[n] + x[n-1] \right )$$. Here, to produce one output at $$n$$, you need to know the $$x$$ values at $$n$$ and $$n-1$$. And when you end up with a difference equation like this, you will also most likely need to define some initial conditions.

For example, if you were to start processing $$x$$ from time instance $$n=0$$, you would obviously need $$x[n-1]$$ which is undefined (yet). You can still produce $$y[0]$$, as long as you were to specify something like $$x[-1]=0$$. This is exactly how you achieve "seamless" filtering when you apply filters to frames of samples. Say for instance that you want to filter two batches of 100 samples. For the first batch (where $$n \in [0 .. 99]$$), you set $$x[n-1]=0$$ (for $$n=0$$) but for the second batch (where $$n \in [100..199]$$, the $$x[n-1]$$ of the second batch is the $$x[99]$$ of the first batch. If you keep saving this "filter state" as you go along, you can realise filters in an "online" way.

"Memory" is not something to be associated with discrete systems only. In continuous systems for example, it would show up as a sum over a time interval as it happens when you consider the output of components such as capacitors and inductors.

Hope this helps.