to determine the output given the input. Let's say the inputs are the bits 1, then 0, then 1, then 0, then 0, which we can write as m = 10100. We represent this in polynomial form as m(X) = 1 + OX + 1X2 + OX3 + OX4=1 + X2. Now, we can get the output by simple polynomial multiplication like this: output bit 1 at different times: m(X) g(()) = (1+X2) (1+X+X2)=1 + X + X3 X4 output bit 2 at different times: m(X).gz(X) = (1+X2) (1+ X2) =1+ total output bits at different times 11 10 00 10 11 (Note: To get the correct result when multiplying (X).g.(X) use modulo 2 addition, e.g., X2 + X2= = (1 + 1) X2 = OX2 = 0.) Channel Coding and Decoding: Part 2-Convolutional Coding and Decoding If you compare this to our work in Section 7.1.2, you can confirm that we got the correct output bits for the given input bits. So, if you have a love of polynomials, you can always represent your channel coder using polynomials. There are many other possible representations for the convolutional coder, such as impulse response and state transition diagrams, but rather than going through all of these, we'll jump to the most useful of them all, the trellis diagram. 7.1.4 The Trellis Diagram The trellis diagram, shown in Figure 7.5, is a way of representing what goes on at the convolutional coder from one time to another. time O time 1 time 2 time O time 1 time 2 time 3 Figure 7.5 Trellis representation of convolutional coder (a) partial (b) complete Chapter Seven Figure 7.5(a) shows you the basics of a trellis diagram. To construct a trellis diagram, draw a set of times, say time 0, then time 1, then time 2, and SO on, going from left to right on the page. Below each time, draw a big dot, one for each possible state or node. The state (node) is a short word for saying "what will stay in the shift register after the new bit comes in." For example, look at the coder of Figure 7.2. If a new bit comes in, what will stay in the shift register is what is currently in position 1 and position 2 (what is in position 3 will get bumped out). So in that ca