Re: NON CAUSAL SYSTEM
You're right to say that a non-causal system is not really a system we encounter in nature, and therefore "virtual".
In nature, system responses follow the cause=excitation (so they are called causal).
To give an example of a non-causal system: suppose we want to make a perfect low-pass filter with a cutoff frequency. Everything before that frequency is passed (filter multiplies by 1) and everything after that frequency is multiplied by zero.
Look at **broken link removed** page 22.
The frequency response is the red line. I think there is an error, and the line must be between 1.0 (high) and 0.0 (low), not -0.5.
You see that the sin(x)/x impulse response (right diagram) would need to start before time 0!
In real life this is not possible (so there are no such filters with resistors/capacitors etc, and there are approximations like Butterworth and Chebychev that try to approach the ideal filter while optimizing some tradeoff factor, like ripple or steepness)
In digital filtering, where a computer can access previous and following samples, this is possible! The response will of course take some extra delay to come out (we can't predict te future).
The sampling stage can have some memory built-in, and delay the input by a finite number of samples (e.g. 50 in the figure from the PDF) and therefore have the value of sample T-50 available when calculating the output for T=0.
So at the calculation for the output centered on T=0, we are actually at T=+50 of the real signal that is being sampled. But because the sampling stage has a delay of 50 samples, it seems that we have access to all samples going from T=50 (100 samples ago), to T=0 (50 samples ago), and T=-50 (50 samples in the future, that's the sample coming in right now thanks to our calculation delay).
The output will have a real time delay of 50 samples (output T=0 is produced at real time T=50), but for some applications a fixed latency is not a problem.