, bits are shifted into the registers one at a time and the input bit is represented as the variable U. The contents of the registers that represent the state of the convolutional code are given as variables S1 and S2. The output bits of the convolutional code are given as variables C1 and C2. We can represent the convolutional code as a state diagram by assigning a circle to each possible state (as in Figure 3.4-6b) and representing the transitions between states with arrows. As can be seen Figure 3.4-4 Example of a hexagonal lattice. A finite subset of the lattice points is shown, and the Voronoi region of each lattice point from Figure 3.4-6 the input bit, in combination with the is a hexagon. current state of the convolutional code, will determine Channel protection fundamentals CHAPTER 3.4 Figure 3.4-5 A linear finite state machine representation of a convolutional code. There are K input bits, n output bits, and the memory is V. the following state of the convolutional code. For bit and the previous input bit in time. We can write example, if at a given time instant the state of the reg- a polynomial equation for the first output bit as isters is given as 01 and the input bit is 1, then 1 will be shifted out of the right-most register and the input bit c1(D) = u(D)+Du(D). will be shifted into the left-most register. As a result, the following state of the convolutional code will be 10. where the variable D represents delay. The second Any convolutional code can also be expressed as output bit is equal to the modulo-2 addition of the a vector-matrix product current input bit, the bit from the previous time instant, and the bit from two time instants ago. We can write a polynomial equation for the second output bit as C'D) = u'(D)G(D), (3.4.10) c2(D) = u(D) + Du(D) + D2u(D). where c'(D) = [c1(D), c2(D), ci(D), ..., cn(D)] (3.4.11) a row vector of n polynomials, with the ith polynomial Now, the two equations just given can be combined into representing the ith output bit sequence. A bit sequence, the form of (