Causal filter

In signal processing, a causal filter is a linear time-invariant (LTI) causal system. The word causal indicates that the filter output depends only on past and present inputs. A filter whose output depends partly or fully on future inputs is non-causal (also, acausal), whereas a filter whose output depends only on future inputs is anti-causal. Systems (including filters) that are realizable (i.e., that operate in real time) must be causal because such systems cannot act on a future input. In effect that means the output sample that best represents the input at time comes out slightly later.

A common design practice for digital filters is to create a realizable filter by shortening and/or time-shifting a non-causal impulse response. If shortening is necessary, it is often accomplished by defining the shortened impulse response as the product of the non-causal impulse-response with a window function.

An example of an anti-causal filter is a maximum phase filter, which can be defined as a stable, anti-causal filter whose inverse is also stable and anti-causal.

Each component of the causal filter output begins when its stimulus begins. The outputs of the non-causal filter begin before the stimulus begins.