![]() | ||
In signal processing, a causal filter is a linear and time-invariant causal system. The word causal indicates that the filter output depends only on past and present inputs. A filter whose output also depends on future inputs is non-causal, 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
Contents
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.
Example
The following definition is a moving (or "sliding") average of input data
where x could represent a spatial coordinate, as in image processing. But if
which is a delayed version of the non-realizable output.
Any linear filter (such as a moving average) can be characterized by a function h(t) called its impulse response. Its output is the convolution
In those terms, causality requires
and general equality of these two expressions requires h(t) = 0 for all t < 0.
Characterization of causal filters in the frequency domain
Let h(t) be a causal filter with corresponding Fourier transform H(ω). Define the function
which is non-causal. On the other hand, g(t) is Hermitian and, consequently, its Fourier transform G(ω) is real-valued. We now have the following relation
where Θ(t) is the Heaviside unit step function.
This means that the Fourier transforms of h(t) and g(t) are related as follows
where
Taking the Hilbert transform of the above equation yields this relation between "H" and its Hilbert transform: