Convolution

A convolution between two signals,  x ( t ) {\displaystyle x(t)} and  y ( t ) {\displaystyle y(t)} , is an operation defined as follows:

x ( t ) ∗ y ( t ) = ∫ − ∞ + ∞ x ( τ ) y ( t − τ ) d τ {\displaystyle x(t)*y(t)=\int _{-\infty }^{+\infty }x(\tau )y(t-\tau )d\tau }

The process of convolution is very useful in the time domain analysis of systems, because we can fully describe a system by its impulse response. Let's consider the following system which operates on an input as  O { } {\displaystyle O\\{\\}} , having characterized its impulse response by  o ( t ) {\displaystyle o(t)} :

x ( t ) ⟶ O { } ⟶ y ( t ) {\displaystyle x(t)\longrightarrow {\begin{array}{|c| }\hline O\\{\\}\\\\\hline \end{array}}\longrightarrow y(t)}

y ( t ) = O [ x ( t ) ] {\displaystyle y(t)=O[x(t)]}

y ( t ) = x ( t ) ∗ o ( t ) {\displaystyle y(t)=x(t)*o(t)}

Put into other words, the output of a system in an instant  t {\displaystyle t} can be written as a linear combination of past and future instants of the input and its impulse response:

y ( t ) = ∫ − ∞ + ∞ x ( τ ) o ( t − τ ) d τ {\displaystyle y(t)=\int _{-\infty }^{+\infty }x(\tau )o(t-\tau )d\tau }

## Discrete Convolution

[edit | edit source]

In discrete time there is no continuous time  x ( t ) {\displaystyle x(t)} but finite samples  x [ n ] {\displaystyle x[n]} .

So the integral can be rewritten as a sum:

( x ∗ y ) [ m ] = ∑ n = − ∞ ∞ x [ m − n ] ∗ y [ n ] {\displaystyle (x*y)[m]=\sum _{n=-\infty }^{\infty }x[m-n]*y[n]}

To understand the convolution of finite length signals better, let's look at an example with the signals  x = [ 1 , 2 , 3 ] {\displaystyle x=[1,2,3]} and  y = [ 6 , 9 ] {\displaystyle y=[6,9]} .

[ 1] * [6 9] = ?

[ 6 12 18  0]    // [1 2 3] * 6
[ 0  9 18 27]    // [1 2 3] * 9

-
[ 6 21 36 27]    // sum of the above

Note that the length of the output signal has the length  N + M − 1 {\displaystyle N+M-1} where  M {\displaystyle M} is the length of  x {\displaystyle x} and  N {\displaystyle N} the length of  y {\displaystyle y} .