# 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. Each component of the causal filter output begins when its stimulus begins. The outputs of the non-causal filter begin before the stimulus begins.

## Example

The following definition is a moving (or "sliding") 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 )=iH(\omega )$ 