Causal and non-causal systems in real world Causal systems are defined as the systems whose :


Output depends on present as well as past inputs and the impulse response; and sometimes depends also on the past outputs (in case of recursive systems).
Impulse response $h(n)$ consists of only positive samples.


Also, I am trying to link this concept to real world scenario using FIR filter whose design equation is:$$y(n)=h(0)x(n)+h(1)x(n-1)+\ldots+h(M)x(n-M)$$

Based on all this theory, I have questions as given below :


a. I wish to ask if it is possible for any system (non-causal/anti-causal real world system) to have negative samples?? Is it that be it causal or non-causal, all real world systems always have positive samples only? Negative samples are of consideration only in theory?
b. We show past inputs using delay blocks $\left(z^{-1}\right)$. So, this means delayed signals give us past inputs in real world? I am confused. I thought the filter uses past inputs saved in its memory. How can we get past inputs by adding a delay?
c. If I take any real world filter, and suppose I give an input sine wave of some frequency to it. Then, filter decides if this frequency should be allowed to pass or not depending on the past input samples of this sine wave which it had stored in its memory? So, this way the output depends on past inputs as well and so we say it is causal system?
In discrete-time systems, causality is a requirement only when processing (filtering) signals in real time; i.e. when the index $n$ corresponds to a physical time $n \times T_s$. In this case, a non-causal system is impossible to implement since calculating the current output would require inputs from a future time.

In practice, however, many systems are not real time.

Image processing, for example, has indexes for horizontal and vertical coordinates. So it's OK to apply a non causal filter to an image (usual examples being 0-centered FIR filters for blurring or sharpening, or IIR filters applied in both directions to obtain 0 phase distorsion).

In time sequences, many times the signal is stored and then processed in non real time, so you may apply non-causal filters there also.