Causal filter

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 $$t,$$ 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 as the product of the 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.



Example
The following definition is a sliding or moving average of input data $$s(x)\,$$. A constant factor of $1⁄2$ is omitted for simplicity:


 * $$f(x) = \int_{x-1}^{x+1} s(\tau)\, d\tau\ = \int_{-1}^{+1} s(x + \tau) \,d\tau\,$$

where $$x$$ could represent a spatial coordinate, as in image processing. But if $$x$$ represents time $$(t)\,$$, then a moving average defined that way is non-causal (also called non-realizable), because $$f(t)\,$$ depends on future inputs, such as $$s(t+1)\,$$. A realizable output is


 * $$f(t-1) = \int_{-2}^{0} s(t + \tau)\, d\tau = \int_{0}^{+2} s(t - \tau) \, d\tau\,$$

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



f(t) = (h*s)(t) = \int_{-\infty}^{\infty} h(\tau) s(t - \tau)\, d\tau. \, $$

In those terms, causality requires



f(t) = \int_{0}^{\infty} h(\tau) s(t - \tau)\, d\tau $$

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



g(t) = {h(t) + h^{*}(-t) \over 2} $$

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



h(t) = 2\, \Theta(t) \cdot g(t)\, $$

where Θ(t) is the Heaviside unit step function.

This means that the Fourier transforms of h(t) and g(t) are related as follows



H(\omega) = \left(\delta(\omega) - {i \over \pi \omega}\right) * G(\omega) = G(\omega) - i\cdot \widehat G(\omega) \, $$

where $$\widehat G(\omega)\,$$ is a Hilbert transform done in the frequency domain (rather than the time domain). The sign of $$\widehat G(\omega)\,$$ may depend on the definition of the Fourier Transform.

Taking the Hilbert transform of the above equation yields this relation between "H" and its Hilbert transform:



\widehat H(\omega) = i H(\omega) $$