The Merriam-Webster dictionary defines convolution as "something that is very complicated and difficult to understand" and "a form or shape that is folded in curved or tortuous windings." These are not signal processing definitions, but certainly describe the impression that students often receive when they first encounter the mathematical definition of convolution, typically in a signals and systems course. The mere mention of convolution after such a course can cause students to break out in a cold sweat. It doesn't need to be this way.
Actually, almost everyone has performed convolution without realizing it. It turns out that multiplication of polynomials is equivalent to convolving their coefficients. That doesn't sound so hard, does it? However, the methods used to multiply polynomials typically don't yield useful insight in signal processing, so a more general, systematic approach to evaluating convolution is needed.
Why is Convolution of Signals Important?
Convolution of signals occurs in several contexts in signal processing. The input-output characteristic of linear time-invariant (LTI) systems, the most widely used type of system in signal processing, is described entirely in terms of the impulse response of the system. The impulse response is the output of the system due to an impulse input signal. Given the input signal, the output of an LTI system is the convolution of the input signal with the impulse response of the system. Hence, convolution plays a key role in relating the input and output signals of an LTI system.
Convolution also arises when we analyze the effect of multiplying two signals in the frequency domain. If we multiply two signals in time, the Fourier representation for the product is the convolution of the Fourier representations of the individual signals. This type of analysis occurs when the discrete Fourier transform is applied to truncated (finite length) signals, and in the design of finite impulse response (FIR) filters.
Graphical Convolution of Signals
If we define as the convolution of signals and , then we can write
A systematic, detailed procedure for evaluating this sum is given in Graphical Evaluation of Discrete-Time Convolution. In brief, first we form a signal for a desired value of , and then we sum all the values in this signal over to obtain . The graphical aspect of this procedure arises in the formation of . We graph and graph as a function of the independent variable . Note that is a constant in this step. In order to graph , first reflex about to obtain , then shift right by values to obtain . It is usually quite simple to identify the product from the graphs of and . This process is repeated for all values where is desired.
Don't Make This Mistake
The biggest mistake I see students make when learning this procedure is confusing and . It is absolutely imperative that be treated as a constant and as the independent variable when constructing . It is only outside of the sum over that varies. It may be useful to think about this process in terms of nested loops in a computer program. The outer loop is over to find different values of . For each , there is an inner loop over to evaluate the sum over . Construction of occurs within the inner loop where is constant and is the independent variable. If you keep and in their correct roles, you will be 90% of the way to evaluating convolution correctly.
Why Should I Learn How to Perform Convolution?
You will never compete with a computer for speed or accuracy when evaluating convolution of discrete-time signals. The primary reason to learn the graphical convolution procedure is to develop insight and understanding. Once you learn how to perform convolution, you will be able to look at the impulse response of a system and predict how the output will behave for certain types of input signals. Similarly, you will understand how truncating (or more generally, windowing) a signal affects the resolution of key features in the frequency domain. These insights are valuable skills, and well worth the effort involved in learning graphical convolution.