Published on Sep 16, 2019
The best way of decoding against random errors is to compute the received sequence with every possible code sequence. This is called maximum likelihood (ML) decoding. The criterion for deciding between two paths is to select the one having the smaller metric. The rule maximizes the probability of a correct decision.
In 1967 Andrew Viterbi proposed an efficient algorithm to find the minimum distance to received sequence in a trellis. It's named after him as Viterbi algorithm (VA). This was recognized by Forney to be Max. Likelihood decoder in 1973.It was the first proposed for decoding convolution codes.
The Convolutional encoder with Viterbi decoder acts as a powerful method for Forward Error Corrections. Viterbi algorithm is an optimum decoding algorithm for Convolutional code if it is applied to transmission in additive white Gaussian noise channel.
The Viterbi algorithm checks every node for path metric value higher than t 0 and eliminates the path that is found and any path passing the state with metric greater than t 0 will affect the probability of error decoding.
In this project work trellis based survivor unit will be used as they have better throughput when compared to trace back using memory. Branch metric will be calculated for either upper or lower half of trellis, which leads to reduction of power consumption
VHDL
Simulation: modelsim5.8c
Synthesis: Xilinx 9.1