ITC Project
ITC Project
ITC Project
Engineering
Bharati Vidyapeeth
(Deemed to be University)
College of Engineering,
Pune – 411043
1
Project Based Learning Report
on
Bharati Vidyapeeth
(Deemed to be University)
College of Engineering,
Pune – 4110043
2
Bharati Vidyapeeth
(Deemed to be University)
College of Engineering,
Pune – 411043
DEPARTMENT OF ELECTRONICS & COMMUNICATION
ENGINEERING
CERTIFICATE
Certified that the Project Based Learning report entitled, “Compute SER of Convolutionally
Encoded Signal” is work by
2014111027 Ashish Anand
2014111038 Kartik Devarde
2014111032 Krishna Bella
in partial fulfillment of the requirements for the award of credits for Project Based Learning
(PBL) in Information Theory Coding of Bachelor of Technology Semester V, in
Electronics and communication engineering.
Date:
3
Index Page
Sr no Topics Page number
4
Description/Problem Statement of the project Based Learning:
Convolutional codes are applied in applications that require good performance with low
implementation cost. It is a finite state machine, processing information bits in a series manner.
Viterbi algorithm [1] can be applied to a host of problems encountered in digital
communication systems. The Viterbi algorithm cannot detect any error but can sometimes
correct it, while calculating one survivor path with minimum metric value. The maximum
likelihood decoding of convolutional encoder with Viterbi algorithm is a good forward error
correction [3] method suitable for single- and double-bit error correction by means of finding
the code branch in the code trellis that was most likely to transmit. The modified decoding
process proposed in this paper, we shall use a different approach to derive the exact bit, double
bit, burst error and a symbol error correction process. It will detect and correct the errors by
means of connecting and comparing the metric values at the present, previous and next states
of the Viterbi decoding. also, it is offering 30-36% better than the Viterbi and 99.9% of error
correction, but the computational complexity is decreases and time are increases about 20-40%
Convolutional coding, Constraint length, Path metric value, Additive white Gaussian noise (AWGN).
Tree diagram, Trellis diagram, Hamming distance, Survivor path, Code rate, FEC, finite state machine
The Viterbi algorithm was proposed by Andrew Viterbi in 1967 as a decoding algorithm for
convolutional codes over noisy communication channel. It is a good forward error correcting (FEC)
method used in cellular, wireless digital communication, modem, space communication and
speech recognition systems. Later this algorithm was shown to be a maximum likelihood
decoding algorithm equivalent to a dynamic programming solution to the problem of finding
the shortest path through a weighted graph. To protect modern digital communication system
from errors, block codes are often used. The data stream is segmented in to block of k
information symbols and each block is encoded in to n code words. The successive code words
are not coupled in anyway by the encoder. Convolutional codes are tree codes that satisfy
additional linearity and time invariant properties, which is proposed by Elias For the purpose
of decoding of convolutional codes, let us consider the Viterbi algorithm. The Viterbi decoding
algorithm is based on maximum likelihood decoding . And the most important concept is to
aid in understanding the Viterbi algorithm is the trellis diagram . There are two stages of
algorithm development.
1. When a binary symmetric channel is selected, show the maximum likelihood decoder which
reduces to the minimum hamming distance decoder.
2.Trellis diagram is used to establish the basic concepts of Viterbi algorithm.
5
Convolutional codes are usually described using two parameters: the code rate and the
constraint length. The code rate, k/n, is expressed as a ratio of the number of bits into the
convolutional encoder (K) to the number of channel symbols output by the convolutional
encoder (N) in a given encoder cycle. The constraint length parameter, ‘K’ denotes the length
of the convolutional encoder i.e. how many K-bit stages are available to feed the combinational
logic that produces the output
symbols. Closely related to K is the parameter m, which indicates how many encoder cycles
an input bit is retained and used for encoding after it first appears at the input to the
convolutional encoder. The M parameter can be thought of as the memory length of the
encoder. Viterbi decoding has the advantage that it has a fixed decoding time. It is well suited
to hardware decoder implementation. But its computational requirements grow exponentially
as a function of the constraint length, so it is usually limited in practice to constraint lengths of
K = 9 or less [11], [9]. Consider a (2, 1, 2) convolutional encoder [8], [10] with g1 = (1 1 1)
and g2 = (1 0 1). The hardware representation of the above is implemented by using two shift
registers and two modulo 2 adders. There are two flip flops in the shift registers and hence there
are 22 =4 states which are represented as S0, S1, S2, and S3. The output sequences are given
as C1 =1+X+X2 and C2=1+X2 .The trellis diagram and their processing steps are shows in
figure 01. The convention used in the construction of trellis is that code branch produced by
input ‘0’ is drawn as solid lines and ‘1’ is drawn as broken line.
Consider the input message 10001, as per the trellis rule we have to add minimum of two
dummy bits as 00 to meet the requirement is, total length of the message is equal to N (L+M).
Where M is the number of Flip flop, L is the length of the message and N is the number of O/P.
The trellis encoded the output sequence as “11 10 11 00 11” with tail”10 11” and the trellis
path is noted in red color in figure 02.
6
Decoding of Convolution code Viterbi algorithm:
Viterbi algorithm is a maximum likelihood
decoder, which is optimum for white Gaussian noise [1], [6]. For a convolutional encoder
having M number of shift registers and L number of input message bits, the algorithm proceeds
as following steps. 1. Starting at level j=m find the metric for the single path entering each state
of the encoder is computed. The survivor path and metric values are stored. 2. The level j is
incremented by one and the metric for each state is computed and the path with lowest metric
is identified as survivor path 3. If level
process the survivor path of the two states are equally arising in conflict as shown in figure 04.
Examination of the Viterbi process we can conclude that there are two survivor path with
smallest metric value. The decoded messages are ’1001001’ and ‘1000100’, (shown in red and
green colours) because there are two survivor paths with minimum metric value. So in this
situation the Viterbi algorithm is failed and took forward to modify the algorithm with
improvement in the error correcting capability.
7
The improved Viterbi decoder will removes the redundancies and also implement one bit, one
symbol, and two bit error correction capability. The entire structure of Viterbi decoder consists
of encoder unit, decision logic, metric computation unit and survivor path unit The decision
logic choose the correct path by using the next received symbol metric computation unit will
compute the hamming distance between the receive data and the reference data from the branch
values.
MATLAB Code:
model = 'doc_conv';
open_system(model)
%% Run simulation
sim (model)
EsN0 = get_param([model,'/AWGN Channel'],'EsNodB');
ser = yout(end,1);
numerr = yout(end,2);
numsym = yout(end,3);
sprintf(['Filtering the signal through an AWGN channel with the EsN0 ' ...
'set to %s dB, the computed SER is %f.'],EsN0,ser)
sprintf(['For %d transmitted symbols, there were %d symbols errors.'], ...
numsym,numerr)
8
Results and Analysis:
Outcome: From this project we must use MATLAB also learn about the Viterbi coding
and implement Simulink to decoding convolution sequence. And thus, we have Implemented
Viterbi decoding algorithm satisfying C05.
Conclusion:
In this project we learn about implementation convolution encode the message
signal and decode that message using Viterbi algorithm and calculate SER and error between
transmitted signal and received signal.