Professional Documents
Culture Documents
The Convolution Sum For Discrete-Time LTI Systems
The Convolution Sum For Discrete-Time LTI Systems
Andrew W. H. House
01 June 2004
DT convolution is based on an earlier result where we showed that any signal x(n) can be
expressed as a sum of impulses.
∞
X
x(n) = x(k)δ(n − k)
k=−∞
So let us consider x(n) written in this form to be our input to the LTI system.
" ∞ #
X
y(n) = L [x(n)] = L x(k)δ(n − k)
k=−∞
This looks like our general linear form with a scalar x(k) and a signal in n, δ(n − k). Recall
that for an LTI system:
• Linearity (L): ax1 (n) + bx2 (n) −→ L −→ ay1 (n) + by2 (n)
• Time Invariance (TI): x(n − no ) −→ L −→ y(n − no )
We can use the property of linearity to distribute the system L over our input.
" ∞ # ∞
X X
y(n) = L x(k)δ(n − k) = x(k)L [δ(n − k)]
k=−∞ k=−∞
So now we wonder, what is L [δ(n − k)]? Well, we can figure it out. Suppose we know how
L acts on one impulse δ(n), and we call it
h(n) = L [δ(n)]
This means that if we know one input-output pair for this system, namely
δ(n) −→ L −→ h(n)
then we can infer
x(n) −→ L −→ y(n)
which gives us the following.
∞
X
y(n) = x(k)h(n − k)
k=−∞
1. A system’s impulse response, h(n), completely characterizes the behaviour of the sys-
tem.
2. The impulse response h(n) can be generated directly from δ(n) through L, since δ(n) is
an actual signal in DT. Thus, we can actually find the impulse response experimentally.
3. Compare convolution in DT and CT.
• DT convolution has an output variable n and a dummy variable k which causes
a shift and flip.
∞
X
DT y(n) = x(n) ∗ h(n) = x(k)h(n − k)
k=−∞
• CT convolution has one signal in terms of the dummy variable, and the other
shifted and flipped on the dummy variable, but centred on the output variable.
Z∞
CT y(t) = x(t) ∗ h(t) = x(τ )h(t − τ )dτ
−∞
2 Examples of Convolution
Convolution is best understood when seen in action. Let’s look at a couple of examples,
one using signals and impulse responses defined functionally, and another with an impulse
response defined point-wise.
We wish to find the step response s(n) of the system (i.e. the response of the
system to the unit step input x(n) = u(n). This is shown below.
∞
X
s(n) = x(n) ∗ h(n) = x(k)h(n − k)
k=−∞
Thus the step response is as follows, found by substituting our actual signals into
the general convolution sum.
∞ n−k
X 1
s(n) = u(k) u(n − k)
k=−∞
2
Let’s look at this step response in smaller ranges to see what happens.
• First, consider the case where n < 0.
Notice that there is no non-zero overlap of x(k) and h(n − k). Since they
are multiplied together, the zero part of one signal cancels out the non-zero
part of the other, and vice versa. Thus, s(n) = 0 for n < 0.
• The more interesting case is when n ≥ 0.
Recall the convolution sum we are using to determin s(n).
∞ n−k
X 1
s(n) = u(k) u(n − k)
k=−∞
2
Note that u(k) means we know the summation will be 0 for all values of
k < 0, so we can change the lower limit of the summation to 0. Similarly,
the u(n − k) term means that the summation for all values of k > n will
be 0, since that unit step is flipped and extends toward −∞. So, we can
change the upper limit of the summation to n. In the range 0 ≤ k ≤ n,
both of the unit steps will have a value of 1. This is shown below.
∞ n−k
X 1
s(n) = u(k) u(n − k)
k=−∞
2
n n−k
X 1
= 1· ·1
k=0
2
We can pull out any terms only in n
since that is not the summation variable.
n n −k
X 1 1
=
k=0
2 2
n X n −k
1 1
=
2 k=0
2
n X n
1
= 2k
2 k=0
Now we have a form consistent with a geometric series. We can use that to
solve. n
X 1 − 2n+1
Recall 2k = = 2n+1 − 1
k=0
1 − 2
We can visualize this, say for n = 2, as shown below. Note how the system
output comes from the overlap of the input signal and the shifted and flipped
impulse response.
The u(n) comes from our first case above since s(n) = 0 for n < 0, and obviously
the other part comes from the expression found in the second case above.
y(n) = L[x(n)]
= L[u(n) − u(n − 4)]
= L[u(n)] − L[u(n − 4)]
In the prior example we determined s(n) = L[u(n)] and since the system is
time invariant, we also know that s(n − 4) = L[u(n − 4)].
So, overall, we have the following system output y(n).
These variations have shown how we can deal with more complex systems as
combinations of simpler systems that are often already known.
In the convolution sum, the impulse response is written as h(n−k), meaning that
in the k domain, the impulse response is shifted by n and flipped around that
point. We can visualize the convolution operation as that shifted-and-flipped
impulse response sliding along the k axis from −∞ to ∞ as the summation
occurs. Whenever there is some non-zero overlap between this shifted-and-flipped
impulse response and the input signal, the system output will be non-zero (unless
the non-zero overlaps cancel each other).
Let’s consider a specific example.
We are given the impulse response shown below.
0 for n < 0
1 for 0 ≤ n ≤ 3
h(n) =
−2 for 4 ≤ n ≤ 5
0 for n > 5
We want to determine
∞
X
y(n) = x(n) ∗ h(n) = x(k)h(n − k)
k=−∞
X∞
= u(k − 4)h(n − k)
k=−∞
We can use u(k − 4) to change the summation
limits, but it doesn’t help much.
∞
X
= 1 · h(n − k)
k=4
When n = 5, y(5) = 2 since it is the sum of the two overlapping points. This is
shown in the figure below.
For the case where n ≥ 9, y(n) = 1 since it is summing over the entire length of
the impulse response. This is shown in the figure below.
3.1 Commutativity
3.2 Associativity
Convolution is associative, meaning that convolution operations in series can be done in any
order.
(x(n) ∗ h(n)) ∗ g(n) = x(n) ∗ (h(n) ∗ g(n))
3.3 Distributivity
3.4 Identity
We have previously established that δ(n) is the identity with respect to discrete-time convo-
lution. ∞
X
Recall x(n) = x(k)δ(n − k) = x(n) ∗ δ(n)
k=−∞
The system impulse response of the above overall system can be determined
from the properties of DT convolution.
For the above systems, we can apply the same principles as in the first part
of the example. Once we have found the overall impulse response, we can
find the output just as with any other impulse response (albeit with a lot
more tedium).
hoverall (n) = [h1 (n) + h2 (n)] ∗ [(h3 (n) ∗ [h4 (n) + h5 (n)]) + h6 (n)] ∗ h7 (n)