ITC Project

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Department of Electronics & Communication

Engineering

Bharati Vidyapeeth
(Deemed to be University)
College of Engineering,
Pune – 411043

Academic Year: 2022-23

1
Project Based Learning Report
on

Compute SER of Convolutionally Encoded Signal

Submitted in the partial fulfillment of the requirements


For the Project based learning in (Information and theory coding)
in
Electronics & Communication Engineering
By

2014111027 Ashish Anand


2014111038 Kartik Devarde
2014111032 Krishna Bella

Under the guidance of Course In-charge

Prof. Tanuja Dhope

Department of Electronics & Communication Engineering

Bharati Vidyapeeth
(Deemed to be University)
College of Engineering,
Pune – 4110043

Academic Year: 2022-23

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:

Prof. Tanuja Dhope Dr. Arundhati A. Shinde

Course In-charge Professor & Head

3
Index Page
Sr no Topics Page number

1. Description/Problem Statement of the project 4 to 5


Based Learning:

2. Block Diagram & explanation 5 to 7

3. Software flowchart /Hardware diagram/circuit 7 to 8


diagram

4. Results and Analysis with photograph 8 to 9

5. Conclusion & Outcome 9

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.

Solution of problem statement:


The doc_conv model generates a binary signal by using a Bernoulli Binary Generator block.
The Convolutional Encoder block encodes the signal. The BPSK Modulator Baseband block
modulates the signal. The AWGN Channel block adds noise to the signal. To demodulate the
BPSK modulated signal with zero phase shift, simply extract the value of the real component
of the complex symbol demodulation by using the Complex to Real-Imag (Simulink) block.
The Viterbi Decoder block decodes the signal. The Error Rate Calculation block computes the
SER.

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.

You might also like