Viterbi Decoder
Viterbi Decoder
Kumar Pari1,B.Raghavaiah2
PG Student (M. Tech), Dept. of ECE, Chirala Engineering College, Chirala, A.P, India.
Associate Professor, Dept. of ECE, Chirala Engineering College, Chirala, A.P, India.
Abstract: 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. The Andrew Viterbi proposed an efficient algorithm to find the minimum distance to received sequence
in a trellis. Its named after him as Viterbi algorithm (VA). This was recognized by Forney to be Maximum
Likelihood decoder. The Viterbi algorithm occupies large memory and computational resources. To address this
problem Proposed Viterbi Algorithm is introduced. The Proposed Viterbi decoder functionally is same as the
previous Viterbi decoder but it reduces memory and the hardware resources. The proposed block diagram
checks every node for path metric value and eliminates the path that is found if it is not having minimum
distance.
I.
Introduction
Convolutional encoder with Viterbi decoder acts as powerful method for Forward Error Correction
(FEC) .Viterbi Algorithm is an optimum decoding Algorithm for convolution code if is applied to transmission
in additive white Gaussian noise channel. The Viterbi algorithm (VA) occupies large memory, computational
resources. So to address this issue reduced memory Viterbi algorithm (RMVA) is introduced.
Error correction
The rise of probability of error in the transmission due to presence of noise leads to requirement error and
detection.
Error control Strategies
The two major type of error control strategies. They are Forward Error Control (FEC) and Automatic Repeat
(ARQ)
Forward error correction (FEC)
Forward Error Control is one of the most widely used in error control. Forward Error correction block
in the receiver can correct a transmission error without asking the sender for more information or for a
retransmission. It is done by Error correction code (ECC).
Automatic repeat request Method (ARQ)
In Automatic repeat request method, after the error detection the receiver sends the request to the
transmitter to retransmit the data.
Types of EEC
An error-correcting code is an algorithm for expressing a sequence of numbers such that any errors
which are introduced can be detected and corrected (within certain limitations) based on the remaining numbers.
There are basically two mechanisms for adding redundancy to error control coding techniques. They two basic
mechanisms are block coding and convolution coding. This classification is based on the presence or absence of
memory in the encoders for these two codes. An encoder for a block code is memory less and for a convolution
encoder is with memory .Tree diagram for types of EEC is shown in Figure 1. Error-correcting codes are also
used in DVD players, high speed modems and Multimedia phones etc.
www.iosrjournals.org
73 | Page
II.
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. Its 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 encode with
Viterbi decoding is powerful method for forward error correction.
The Viterbi algorithm operates on a state machine assumption. That is, at any time the system being
modelled is in some state. There are a finite number of states, however large, that can be listed. Each state is
represented as a node. Multiple sequences of states (paths) can lead to a given state, but one is the most likely
path to that state, called the "survivor path". This is a fundamental assumption of the algorithm because the
algorithm will examine all possible paths leading to a state and only keep the one most likely. This way the
algorithm does not have to keep track of all possible paths, only one per state. A second key assumption is that a
transition from a previous state to a new state is marked by an incremental metric, usually a number. This
transition is computed from the event. The third key assumption is that the events are cumulative over a path in
some sense, usually additive. So the crux of the algorithm is to keep a number for each state. When an event
occurs, the algorithm examines moving forward to a new set of states by combining the metric of a possible
www.iosrjournals.org
74 | Page
Coding gain
Throughput
Power dissipation
Viterbi Algorithm
The VA examines all possible paths in trellis graph and determines the most likely one. The AVA only
keeps a number of the most likely state instead of the whole of 2k-1 state, where is constraint length of
convolution encoder. The rest of the other states are all discarded. The selection is based on the likelihood or
metric value of the path, which for hard decision is the hamming distance and a soft decision decoder is
Euclidean distance
Every Surviving path at trellis level L -1 is extended and its successors at level l are kept if their path metric is
smaller or equal to dm+T, where dm is the minimum path metric of the surviving path at stage L-1, T is
discarding threshold configure by the designer.
The total number of survivor path per trellis stage is up bounded to fixed number, which is pre-set prior to the
start of the communication. Generally this will be same as number of states in decoder.
www.iosrjournals.org
75 | Page
76 | Page
III.
Design and Implementation of VD
According to Viterbi there are 3 assumptions. First any system can be modelled in some state. There are a
finite number of states, however large, that can be listed. Each state is represented as a node. Second a transition
from a previous state to a new state is marked by an incremental metric. Third moving forward to a new set of
states by combining the metric of a possible previous state with the incremental metric of the transition due to
the event and chooses the best. The incremental metric associated with an event depends on the transition
possibility from the old state to the new state.
First Transition table is prepared from convolution encoder for the specification and stored in memory.
This transition table describes about next possible outcome and there encoded value for that particular transition
for given input state. Since our encoding rate is every state while have two possible outcomes and similar
every state while have two incoming branch. Its works like a controller for whole trills. Transition table k=3 at
rate displayed for example in table 1.
Table 1 Transition table k=3 at rate
state
0
1
10
11
Next
Encoded
Next
Encoded
possible value for possible value for
Outcome Outcome Outcome Outcome
1
2
1
2
0
0
10
10
0
11
10
1
1
11
11
1
1
0
11
10
Branch metrics unite used to compare encoded inputs applied to Viterbi decoder and encoded values for
transition from one stage of trills to next stage based on this branch weight is calculated. It feed as input Add
compare and select unit.
Add Compare and select (ACS) works on every state of stage on trills. Two incoming branch of state is decided
based on transition table. ACS unit while update path metric for incoming branch and eliminate path with higher
path metric. ACS and BMU are clubbed together to form a butterfly module. So for 64 stages there will be 64
butterfly modules.
Best winner search unit works on stage of trills. Work of ACS unite is to find local winner on every
node (state) of trills. Work of Best winner search unit is find final winner at end of operation.
Finally trills is formed by integrate all above module together. In trills at first stage path metric set to non-zero
value for all states expect stage 0(path metric is set to zero). Similar if ACS unit want to delete path then path
www.iosrjournals.org
77 | Page
IV.
The Convolutional encoder for the constraint length of K=3 and code rate of r=1/2 has been developed
and the synthesis is carried out. It has been simulated and the simulation result is shown in fig. 11.The Viterbi
decoder has been developed using and the synthesis is carried out.
78 | Page
Used
Available
Number of Slices
3394
4656
4225
9312
4819
9312
232
Number of GCLKs
24
259996 kilobytes
Acknowledgements
The authors would like to thank the anonymous reviewers for their comments which were very helpful
in improving the quality and presentation of this paper.
References:
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
Bernard Sklar ,Digital communication Fundamentals and Applications, 2nd edition ,Prentice Hall, ISBN:81-7808-373-6, 2001.
http://www.vocal.com/data_sheets/ 802.11a5.html (last accessed on 12/11/08)
http://www.doe.carleton.ca/~jknight/ 97.48/97.478_01F/Conv1_2LabsB.html (last accessed on 21/12/08)
Michael Purser , Introduction to Error- correction codes, Artech House INC,ISBN: 0-89006-784-8 ,1996 .
Shu Lin and Daniel J. Costello, Error Control Coding Fundamentals And Applications, 2nd edition, Prentice Hall, 1984.
Fei Sun and Tong Zhang , Low-Power State-Parallel Relaxed Viterbi Decoder , IEEE Transactions on Circuits and systems , Vol.
54, Page(s)-1060-1069, No. 5, May 2007.
ftp://ftp.cs.man.ac.uk/pub/amulet/theses/Shao07_phd.html (last accessed on 2/2/09)
Rex Andrew Antony, An Adpative threshold strategy for soft decision Viterbi Decoder, Dalhouse university, December 2002
QIN Xiang-Ju'.', ZHU Mmg -Cheng', WEI Zhong-Yi2, CHAO Du , An Viterbi Decoder Based on FPGA Dynamic
Reconfiguration Technology, IEEE International Conference on Field-Programmable Technology 2004, Vol. 10, Page(s)-6-8
December , 2004.
Ming-Hwa Chan, Wen-Ta Lee, Mao-Chao Lin and Liang-Gee Chen , IC Design of an Viterbi Decoder, IEEE Transactions on
Consumer Electronics, Vol. 42, Page(s)-52-62 ,No. 1, February 1996
Man Guo, M. Omair Ahmad, M.N.S. Swamy, and Chunyan Wang , A Low-Power Systolic Array-Based Viterbi Decoder and its
FPGA Implementation, International Symposium on Field-Programmable Technology 2003, Vol 2, Page(s)- 276 - 279, 25-28 May
2003.
Abdulfattah M. Obeid, Alberto Garcia, Mihail Petrov, Manfred Glesner ,A Multi path high speed Viterbi decoder , Proceedings
of the 2003 10th IEEE International Conference on Electronics, Circuits and Systems, 2003. ICECS 2003, Vol 3, Issue, 14 -17
Page(s): 1160 1163, December 2003
http://asic-soc.blogspot.com/2007/10/physical-design-flow.html (last accessed on 1/02/08)
Samir Palnitkar, Verilog HDL A Guide to Design and Synthesis, 2nd edition, Prentice Hall, ISBN: 0-13-044911-5 2003.
Authors Profile:
KUMAR PARI is Pursuing his M. Tech from Chirala Engineering College, Chirala in the
department of Electronics & Communications Engineering (ECE) with specialization in VLSI &
Embedded systems.
B.RAGHAVAIAH is working as an Associate Professor in the department of Electronics &
Communication Engineering in Chirala Engineering College, Chirala. He has completed masters
from JNTUK. He has over 8 years of teaching experience.
www.iosrjournals.org
79 | Page