In signal processing, a **causal filter** is one whose output depends only on past and present inputs. A filter whose output also depends on future inputs is **non-causal**. Filters that operate in real time are causal. In effect that means the output sample that best represents the input at time comes out slightly later. A common design practice 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. Signal processing is the processing, amplification and interpretation of signals and deals with the analysis and manipulation of signals. ...
A causal system is a system that depends only on the current and previous inputs. ...
In electronics and signal processing, a filter is a device or process that modifies a signal. ...
It has been suggested that Real-time computing be merged into this article or section. ...
In signal processing, a window function (or apodization function) is a function that is zero-valued outside of some chosen interval. ...
### Example The following definition is a moving (or "sliding") average of input data . A constant factor of 1/2 is omitted for simplicity: where *x* could represent a spatial coordinate, as in image processing. But if represents time , then a moving average defined that way is **non-causal** (also called *non-realizable*), because depends on future inputs, such as . A realizable output is 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 the language of mathematics, the impulse response of a linear transformation is the image of Diracs delta function under the transformation. ...
For the computer science usage see convolution (computer science) . In mathematics and in particular, functional analysis, convolution is a mathematical operator which takes two functions f and g and produces a third function that in a sense represents the amount of overlap between f and a reversed and translated version...
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 which means that the Fourier transforms of *h*(*t*) and *g*(*t*) are related as follows where is a Hilbert transform done in the frequency domain (rather than the time domain). |