Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush A convolutional
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush
* A convolutional code is generated by passing the information sequence to be transmitted through a linear finite shift register. * The input data to the encoder, which is assumed to be binary is shifted into and along the shift register k bits at a time. The number of output bits for each k bit sequence is n bits. R = k / n.
Example. Consider the binary convolutional encoder with k=1 and n=3.
>>> Initially, the shift register is assumed to be in the all-zero state. suppose the first input is a 1. then the output sequence of three bits is 111. suppose the second bit is 0. the output sequence will be 001. if the third bit is 1, the output will be 100, and so on. >>> There are three alternative methods that are often used to describe a convolutional code: 1. Tree diagram. 2. Trellis diagram. 3. State diagram.
Tree Diagram:
Information bit 0 or 1 Register states 00, 01, 10 or 11 a 00 b 01 c 10 d 11
Trellis Diagram
State Diagram
Decoding A message m is encoded into the code sequence c. Each code sequence represents a path in the trellis diagram. Minimum Distance Decoding Upon receiving the received sequence r, search for the path that is closest ( in Hamming distance) to r.
The Viterbi Algorithm: * The viterbi algorithm is used to decode convolutional codes and any structure or system that can be described by a trellis. * It is a maximum likelihood decoding algorithm that selects the most probable path that maximizes the likelihood function. * The algorithm is based on add-compare-select the best path each time at each state.
- Slides: 12