MULTIPLICATION AND CONVOLUTION 81 Δx Δy Xmin Xmax Ymin Ymax x Δx y Δy Area = z(x,y) = Σ Δy Figure 5-2 Example of polynomial multiplication using double summa- tion to Þnd the area of a Þgure. CONVOLUTION Convolution is a valuable tool for the analysis and design of communi- cations systems and in many other engineering and scientiÞc activities. Equation (5-4) is the basic equation for discrete-time convolution. y(n) = x(m) ∗ h(m) = +∞ m=−∞ [x(m) h(n − m)] (5-4) where ∗ is the convolution operator and y(n), x(m), and h(m) can all be the complex-valued discrete-time sequences I and jQ that we considered carefully in Chapter 1. Note that x (m), h(m), and y(n) are in the time domain, but they can also be complex Y (k), X (k ), and H (k ) in the fre- quency domain with magnitude and phase attributes. Also, all three can have different amplitude scale factors, on the same graph or on separate graphs. We focus initially on the time domain. Equation (5-4) appears to be simple enough, but actually needs some careful study and practice to develop insight and to assure correct answers. 82 DISCRETE-SIGNAL ANALYSIS AND DESIGN Sequence x(m) is a “signal” input time-domain sequence that extends in “time” from m =−∞ to m =+∞. In practical problems this sequence is assumed to have “useful” amplitude only between two speciÞc limits, m(min) and m(max). Sequence h(m) refers to a “system function,” also a time-domain sequence that is assumed to have useful limits from m(min) to m(max), which may not be the same limits as the limits for x (m). Sequence h(n −m)ish(m) that has had two operations imposed: 1: h(m) has been “ßipped” in time and becomes h( −m), and 2: h( −m) has been shifted to the right (n) places, starting from an initial value of (n) determined by the nature of the problem, whose value is now h(n −m). The expression “fold and slide” is widely used to describe this two-part operation. One reason for the fold and slide of h(m)toh(n −m) is that we want the leading edge in time of h(m) (the response) to encounter the leading edge in time of x (m) (the excitation) as we start the sliding operation (increasing n) from starting (n)toÞnal (n ). This retains the time coordi- nation between the two sequences. Another reason is that this procedure leads to a valuable concept that we will demonstrate later in this chapter. The term h(n −m) is often referred to as an impulse response. Each impulse x(m) applied to a network is processed by some impulse response function h(n −m) to produce an output impulse y (n), which is the “value” of the convolution for that (n). Note the summation sign in Eq. (5-4 ). Refer to Fig. 5-3. In part (a), h(m)andx (m)areatÞrst located side by side. This is a convenient starting point. In part (b), h(m)isßipped and piv- oted about the m =0 point and becomes h( −m). At each positive increment of (n), h(n −m) is advanced one position to the right. We now calculate the product of x(m)andh(n −m) at each value of (m), and add these products from x (min) to x (max) to get y(n), the convolution value of x(m)andh(m) at that value of (n). We continue this shift–multiply–add procedure until the value of the sum of products (the convolution value) becomes negligible. Make sure that the data space (0 to N −1) is enough that the total convolution sum can be completed with no signiÞcant loss of data. If the x(m) sequence has Lx values and the side-by-side h(m) sequence has Lh values, the y(n) sequence should have at least Lx +Lh +1 values prior to the beginning of overlap. The convolution operation creates a smoothing and stretching operation on the data y(n) which is not obvious in Figs. 5-3 and 5-4 but is more visible if we look ahead to Fig. 5-7. The convolution sequence that has been generated has properties that will be discussed subsequently. This procedure should be compared to the MULTIPLICATION AND CONVOLUTION 83 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 10 10 10 10 10 −4 −4 −4 −4 −4 8 8 8 8 8 11 11 11 11 11 −3 −3 −3 −3 −3 9 9 9 9 9 12 12 12 12 12 −2 −2 −2 −2 −2 0 0 0 0 0 5 5 5 5 5 10 10 10 10 10 m m m m m −1 −1 −1 −1 −1 2 2 2 2 2 0 0 0 0 0 4 4 4 4 4 66 6 6 6 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 h(0−m) h(m) h(5−m) h(8−m) h(11−m) x(m) x(m) x(m) x(m) x (m) (a) (b) (c) (d ) (e) y(0) = 0 y(5) = 6 x 2 + 7 x 0 = 12 y(8) = 7 x 6 + 8 x 4 + 9 x 2 = 92 y(11) = 0 9 9 9 Figure 5-3 Various stages of discrete convolution. 84 DISCRETE-SIGNAL ANALYSIS AND DESIGN (a) (b) (c) (d) (e) y(0) = 0 y(8) = 9 x 2 + 8 x 4 + 7 x 6 = 92 y(5) = 6 x 2 + 7 x 0 = 12 y(11) = 0 01234567−7 −4−6 −3−8 −5 −2 0 5 10 m −1 2 0 4 6 6 7 8 9 x(m) h(m) −9 0123 4567 −7 −4−6 −3−8 −5 −2 0 5 10 m −1 2 0 4 6 6 7 8 9 x(m) h(0-m) −9 01234567−7 −4−6 −3−8 −5 −2 0 5 10 m −1 2 0 4 6 6 7 8 9 x(m) h(5−m) −9 01234567 −7 −4−6 −3−8 −5 −2 0 5 10 m −1 2 0 4 6 6 7 8 9 x(m) h(8−m) −9 01234567 −7 −4−6 −3−8 −5 −2 0 5 10 m −1 2 0 4 6 6 7 8 x(m) h(11−m) −9 9 Figure 5-4 Altered stages of discrete convolution. MULTIPLICATION AND CONVOLUTION 85 convolution of continuous functions, in which certain discontinuities in the functions and their overlaps require integrations over adjacent areas which are then tacked together end-to-end to get the Þnal result. Our example sequences will not have this problem because of their discrete nature, although this may not always be true. This process is an example of the polynomial multiplication shown in Eq. (5-2). That is, at a particular value of (n), the product of each x(m)and the corresponding h(n −m) is formed. These partial products are summed over the range m(min) to m(max) to get the convolution value y(n). This process is repeated for each value of (n). To illustrate this discussion more numerically, we see again in Fig. 5-3 the convolution procedure for the two discrete sequences shown in part (a). The m =0 location is chosen arbitrarily as shown, but in principle it can be anywhere between −∞and +∞. In agreement with our previ- ous assumptions, the process shown is signiÞcant between 0 ≤n ≤N −1, where N is chosen to suit the problem. A convenient approach is to start the h(m) sequence at a point labeled “0”. In Fig. 5-3b the h(m) sequence is reversed (or folded) and pivoted around the zero location, shown at the left end of h(m), and becomes h( −m). That is, each m (positive location) becomes m (negative loca- tion). After pivoting, h( −m) can be moved three places to the right, where it becomes h(3 −m), just one “bin” away from x(m). In part (c) the h(3 −m) sequence slides to the right two places (n =5) and overlaps the Þrst two positions of the x (m) sequence. The value of the convolution for n =5is6·2 +7·0 =12. In part (d) the value of (n) is 8 and the convolution sum is 7·6 +8·4 + 9·2 =92. At n =11 the overlap of h(n −m)andx (m) is zero and the convolution sum for n =11 is zero. In Fig. 5-4 x(m)andh(m) are interchanged; x (m) is response and h(m) is the signal, with no differences in the convolution values, which is an interesting facet of convolution that is the “commutative” property. We see also that convolution involves two time-domain sequences or two frequency-domain sequences and the convolution value (sum of products) has the dimension of energy. Discrete Circular Convolution In the sequences used in convolution, any empty integer locations are Þlled with zeros by Mathcad. The combined length L of the two sequences x(m) . simple enough, but actually needs some careful study and practice to develop insight and to assure correct answers. 82 DISCRETE-SIGNAL ANALYSIS AND DESIGN Sequence x(m) is a “signal” input time-domain. convolution operator and y(n), x(m), and h(m) can all be the complex-valued discrete-time sequences I and jQ that we considered carefully in Chapter 1. Note that x (m), h(m), and y(n) are in the. Þgure. CONVOLUTION Convolution is a valuable tool for the analysis and design of communi- cations systems and in many other engineering and scientiÞc activities. Equation (5-4) is the basic equation