Examples of Digital Filters

While any mapping from signals to real numbers can be called a filter, we normally work with filters which have more structure than that. Some of the main structural features are illustrated in the following examples.

The filter analyzed in Chapter 1 was specified by

$\displaystyle y(n)=x(n) + x(n-1).
$

Such a specification is known as a difference equation. This simple filter is a special case of an important class of filters called linear time-invariant (LTI) filters. LTI filters are important in audio engineering because they are the only filters that preserve signal frequencies.

The above example remains a real LTI filter if we scale the input samples by any real coefficients:

$\displaystyle y(n)=2\, x(n) - 3.1\, x(n-1)
$

If we use complex coefficients, the filter remains LTI, but it becomes a complex filter:

$\displaystyle y(n)=(2+j)\,x(n) + 5 j \,x(n-1)$

The filter also remains LTI if we use more input samples in a shift-invariant way:

$\displaystyle y(n)=x(n) + x(n-1) + x(n+1) + \cdots$

The use of ``future'' samples, such as $ x(n+1)$ in this difference equation, makes this a non-causal filter example. Causal filters may compute $ y(n)$ using only present and/or past input samples $ x(n)$, $ x(n-1)$, $ x(n-2)$, and so on.

Another class of causal LTI filters involves using past output samples in addition to present and/or past input samples. The past-output terms are called feedback, and digital filters employing feedback are called recursive digital filters:

$\displaystyle y(n)=x(n) - x(n-1) + 0.1 \, y(n-1) + \cdots$

An example multi-input, multi-output (MIMO) digital filter is

$\displaystyle \left[\begin{array}{c} y_1(n) \\ [2pt] y_2(n) \end{array}\right] ...
...y}\right]\left[\begin{array}{c} x_1(n-1) \\ [2pt] x_2(n-1) \end{array}\right],
$

where we have introduced vectors and matrices inside square brackets. This is the 2D generalization of the SISO filter $ y(n) = a \, x(n) + b\,
x(n-1)$.

The simplest nonlinear digital filter is

$\displaystyle y(n)=x^2(n),$

i.e., it squares each sample of the input signal to produce the output signal. This example is also a memoryless nonlinearity because the output at time $ n$ is not dependent on past inputs or outputs. The nonlinear filter

$\displaystyle y(n)=x(n)-y^2(n-1)$

is not memoryless.

Another nonlinear filter example is the median smoother of order $ N$ which assigns the middle value of $ N$ input samples centered about time $ n$ to the output at time $ n$. It is useful for ``outlier'' elimination. For example, it will reject isolated noise spikes, and preserve steps.

An example of a linear time-varying filter is

$\displaystyle y(n)=x(n) + \cos(2\pi n /10)\, x(n-1).$

It is time-varying because the coefficient of $ x(n-1)$ changes over time. It is linear because no coefficients depend on $ x$ or $ y$.

These examples provide a kind of ``bottom up'' look at some of the major types of digital filters. We will now take a ``top down'' approach and characterize all linear, time-invariant filters mathematically. This characterization will enable us to specify frequency-domain analysis tools that work for any LTI digital filter.


Next Section:
Linear Filters
Previous Section:
Definition of a Filter