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. 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 1Register 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.