Convolutional codes

This webdemo covers *convolutional codes*. Each convolutional code is defined by specific *generator polynomials*. The Generator polynomials are usually given in octal notation. The octal number of an generator polynomial can be transformed into a binary number to obtain the coefficients of the actual polynomials.

A*shift register encoding circuit*, as shown exemplarily in the figure on the right, can be bulit from those generator polynomials. The coefficients of the generator polynomials in reverse order are taken to create the adders of the encoder. A message $\textit{m}$ is coded into a *code sequence* $\textit{c}$ by bit shifting the message bits through the encoding circuit.

*Trellis diagrams* of convolutional codes visualize all possible codesequences in a graph. They can be created based on the code sequence output of the shift register (codeword bits of state transitions) and by the different possible memory unit entries of the shift register (possible states). The number of polynomials corresponds to the number of code sequence bits on each state transition. The number of memory units $u$ of the shift register results in $2^u$ states of the trellis. A convolutional code trellis is built from concatenating indentical trellis segments.

A