Viterbi Decoder Algorithm Prepared by Ms.R.Chandralekha Assistant Professor/ECE Ramco Institute of Technology Rajapalayam.
Viterbi Decoder A convolutional code or trellis code-encoded bit stream is decoded by a Viterbi decoder using the Viterbi algorithm. Convolutional code is decoded by selecting the path in the code tree where the coded and received sequences diverge in the fewest number of locations. It is also called as Maximum likelihood(Viterbi) decoder. Here we use trellis method for decoding the received bit.
Objective To determine the trellis path that is closest to the bit sequence of the received data.
Procedure for decoding Step 1 Construct Trellis Encoder Step 2Create a trellis diagram using the trellis encoder Step 3Match the weights with regard to the diagram Step4Then locate the trellis path with the lowest weights.
Step 1 Construct Trellis Encoder X1 = M M 1 M 2 Input X1 = M M 2 M M 1 M 2 X1 X2 Input M Present State M 1 Next State M 2 Output X1 X2 a a 1 a b 1 1 b c 1 1 b d 1 c a 1 1 1 c b d c 1 1 d d 1 State a (0 0) State b (0 1) State c (1 0) State d (1 1)
Step 2Create a trellis diagram using the trellis encoder 00 00 00 00 00 11 11 11 11 11 11 11 11 00 00 00 10 10 10 10 01 01 01 01 01 01 01 10 10 10 Received data bit sequence is given by 0110110000 State a (0 0) State b (0 1) State c (1 0) State d (1 1)
Step 3Match weighted with respect to trellis diagram 00 00 00 00 00 11 11 11 11 11 11 11 11 00 00 00 10 10 10 10 01 01 01 01 01 01 01 10 10 10 Received data bit sequence is given by 01 10 11 00 00 I nput 0 Input 1 Decoded data bit sequence is given by 11 10 11 00 00 Decoded path So there is error in one bit during decoding by Viterbi algorithm. State a (0 0) State b (0 1) State c (1 0) State d (1 1) 01 10 11 00 00 2 2 1 1 2 1 1 3 1 1 3 3
References https://en.wikipedia.org/wiki/Viterbi_decoder https://www.youtube.com/watch?v=r0hJxzJyIw8 S. Haykin , ―Digital Communications‖, John Wiley, 2005.