You are on page 1of 54

UNIVERSITY OF GONDAR

INSTITUTE OF TECHNOLOGY
Department of Electrical and Computer Engineering
Title: Performance analysis of error control codding techniques for unguided
media
Group members ID

1-Aragew Bayle……………………00172/09

2- Belete Tamrat ….……...………..00231/09

3- Biniyam Assefa… ………………0301/09

4- Getnet Nigatu……………………00526/09

A final year project report submitted to Electrical and Computer Engineering department, Institute of
Technology, University of Gondar in the partial fulfillment of the requirements for the degree of BSc
in Electrical and Computer Engineering (communication Engineering Focus area)

Advisor: Amanuel A

Gondar, Ethiopia

July,2021
UNIVERSITY OF GONDAR
INSTITUTE OF TECHOLOGY
ELECTRICAL AND COMPUTER ENGINEERING
DEPARTMENT
Title: Performance analysis of error control coding techniques for
unguided media
Name of the candidates
1-Aragew Bayle……………………00172/09

2- Belete Tamrat ….……...………..00231/09

3- Biniyam Assefa… ………………0301/09

4- Getnet Nigatu……………………00526/09

Advisor: Amanuel A

Approval by Committee
The undersigned certify that the above candidate/s has fulfilled the condition of the project paper
in partial fulfillment of the requirements for the degree of BSc in Electrical and Computer
Engineering (communication Engineering Focus area)

__________________ ___________

Examiner Signature Date

__________________ ___________

Advisor/Supervisor Signature Date

__________________ ___________

Dept. Head Signature Date


Declaration
We, the undersigned, declare that this project, “Performance analysis of error control coding
techniques for unguided media” is our own work, and has not been presented for in any other
place, and all sources of materials used for the project have been fully acknowledged.

Name of the candidates signature

1-Aragew Bayle ____________________


2- Belete Tamrat ____________________
3- Biniyam Assefa ____________________
4- Getnet Nigatu ____________________
Place: Gondar

Date of Submission: ________________

This project has been submitted for examination with my approval as a university advisor.

________________ ________________

Name of the Advisor Signature


Performance analysis of error coding techniques 2021 GC

Abstract
In digital communication, errors are introduced during the transmission of data from the
transmitter to receiver due to noise or environmental interference. These errors can become a
serious problem for achieving efficiency and performance of the system. Therefore, the
reliability of data transmission is required to be improved. To improve the reliability, it is
essential to detect and correct the error by applying error detection and correcting mechanisms
like hamming code, BCH code etc. To detect the error, additional bits are appended to the last
most bits during data be transmitted. These bits are used to detect the error at the receiver. These
extra bits are called parity bits. The data bits along with parity bits form codeword. This thesis is
mainly focus on the performance evaluation of error detection and correction techniques on
unguided media. It aimed at to detect and correct data transmission errors, to decrease errors that
occurs during transmission, to compare the performance of each error coding techniques and
designing a MATLAB simulation for the error coding techniques. Hamming code has high
efficiency for error detection as well as error correction and it is easy to implement, so that it
mostly used for computing memory, data compression, and other application in
telecommunication.

Key words: Hamming Code, Reed Solomon Code, Error Correction, Error Detection, BCH code

UoG, IoT, Electrical and Computer Engineering Department Page ii


Performance analysis of error coding techniques 2021 GC

Acknowledgment
First and foremost great thanks to God for his blessing and helps from the beginning to end.
Numerous individuals have contributed invaluable help and support to make this thesis Project
happens. We owe our debt of gratitude to our school administrators for preparing such a program
which we found it very useful to boost our confidence in making things by ourselves and
learning through practice.

Our fellow class mates also helped us by sharing their idea on our thesis project. A special thanks
to instructor Amanuel who supported us by advising and sharing ideas while doing our project.
His help and support were critical for making this thesis project successful. Finally we would
like to give credit for persons, listed in literature review and reference, who has work on this
project before, which we used as source for our paper.

UoG, IoT, Electrical and Computer Engineering Department Page iii


Performance analysis of error coding techniques 2021 GC

Contents
...................................................................................................................................................................... 1
Declaration ..................................................................................................................................................... i
Abstract ......................................................................................................................................................... ii
Acknowledgment ......................................................................................................................................... iii
List of figures ................................................................................................................................................ vi
List of abbreviation ..................................................................................................................................... vii
Chapter One .................................................................................................................................................. 1
Introduction ................................................................................................................................................... 1
1.1 Background ......................................................................................................................................... 1
1.2 Statement of problem......................................................................................................................... 3
1.3 Objective ............................................................................................................................................. 4
1.4 Methodology....................................................................................................................................... 4
1.5 Scope of the project ............................................................................................................................ 6
1.6 Significance of the project .................................................................................................................. 6
1.7 Organization of the project ................................................................................................................. 6
Chapter Two Literature Review .................................................................................................................... 7
2.1 What is a Telecommunication?........................................................................................................... 7
2.2 Types of telecommunications networks ............................................................................................. 8
2.3 Previous Work Overview..................................................................................................................... 9
2.4 our modification................................................................................................................................ 12
Chapter Three.............................................................................................................................................. 13
System Modeling and Design ..................................................................................................................... 13
3.1 Errors and Error Correcting Codes ................................................................................................... 13
3.1.1 Sources of errors ........................................................................................................................ 13
3.1.2 Types of Errors in Data Communication .................................................................................... 13
3.2 Error Control ..................................................................................................................................... 16
3.2.1 Error detection ........................................................................................................................... 16
3.2.2 Error correction .......................................................................................................................... 17
3.3 Hamming Code.................................................................................................................................. 17
3.3.1 General Algorithm of Hamming code ........................................................................................ 19

UoG, IoT, Electrical and Computer Engineering Department Page iv


Performance analysis of error coding techniques 2021 GC

3.4 Encoding a message by Hamming Code ........................................................................................... 21


3.5 Decoding a message in Hamming Code ............................................................................................ 21
3.6 BCH codes ......................................................................................................................................... 25
3.6.1 BCH Encoding algorithm ............................................................................................................ 26
3.6.2 BCH Decoding algorithm ............................................................................................................ 28
3.7 Reed-Solomon codes ........................................................................................................................ 30
3.7.1 Application areas of Reed-Solomon codes ................................................................................ 30
3.7.2 Properties of Reed-Solomon codes ........................................................................................... 31
3.7.3 System Architectures of Reed-Solomon code............................................................................ 32
3.7.4 Implementation of Reed-Solomon encoders and decoders ...................................................... 33
3.7.5 Parameters of Reed - Solomon Codes ........................................................................................... 34
3.7.6 Generator Polynomial of Reed Solomon Code .............................................................................. 34
3.7.7 Encoding using Reed Solomon Code .............................................................................................. 34
3.7.8 Decoding using Reed Solomon Code ............................................................................................. 35
Chapter Four ............................................................................................................................................... 36
Simulation result and discussion ................................................................................................................. 36
4.1 The search for robust codes.............................................................................................................. 36
4.2 Design Tradeoffs ............................................................................................................................... 37
4.3 Result and discussion ........................................................................................................................ 37
Chapter five ................................................................................................................................................. 41
Conclusion and recommendation ............................................................................................................... 41
5.1 Conclusion ......................................................................................................................................... 41
5.2 Recommendations ................................................................................................................................ 42
References ................................................................................................................................................... 44

UoG, IoT, Electrical and Computer Engineering Department Page v


Performance analysis of error coding techniques 2021 GC

List of figures

Figure 1.1 flow chart of the thesis .................................................Error! Bookmark not defined.
Figure 2.1 telecommunication satellite ........................................................................................... 7
Figure 3.2 channel noise [3].......................................................................................................... 14
Figure 3.2 A data link layer [1] ..................................................................................................... 18
Figure 3.3 an OSI physical layer [3] ............................................................................................. 20
Figure 3.4 block diagram of hamming algorithm ......................................................................... 21
Figure 3.5 Telecom coverage in metropolitan city [7] ................................................................. 25
Figure 3.6 A network tower [1] .................................................................................................... 27
Figure 3.7 block diagram of BCH algorithm ................................................................................ 29
Figure 3.8 cellular communication [3].......................................................................................... 31
Figure 3.9 block diagram of reed-Solomon code [3] .................................................................... 33
Figure 3.10 monalisa’s picture with and without RS code [9] ..................................................... 35
Figure 4.1 hamming code plot ...................................................................................................... 37
Figure 4.2 bch code plot................................................................................................................ 37
Figure 4.3 reed-Solomon code matlab plot ................................................................................... 38
Figure 4.4 turbo code matlab plot ................................................................................................. 38
Figure 4.5 codded and uncoded plot of hamming......................................................................... 38
Figure 4.6 codded and uncoded plot of Reed-Solomon ................................................................ 38
Figure 4.7 comparison of hamming, bch and RS codes ............................................................... 39

UoG, IoT, Electrical and Computer Engineering Department Page vi


Performance analysis of error coding techniques 2021 GC

List of abbreviation
AM…………………………………………...………..Amplitude modulation
ACK…………………………………………...………Acknowledgement
ASIC………………………………………….......…..Application Specific Integrated Circuit
AWGN……………………………………...………. Additive white Gaussian noise
BCH…………………………………………...……..Bose-Chaudhuri-Hocqunghem
BER…………………………………………...……. Bit Error Rate
CD……………………………………...…...………. Compact Disk,
DSL……………………………….………...………. Digital subscriber line
DVD………………………………………...………. Digital versatile disk
ECC…………………………………………...……….Error-correcting codes
FPGA…………………………………………...…….Field Programmable Gate Array
GF…………………………………………...……….Galois field
MPLS ………………………...………….…………. Multiprotocol Label Switching
NPAS…...…………………………………….……….Network Policy Access Services
NTT………………………………………….………. Nippon Telegraph and Telephone
PSK…………………………………….…...………. Phase shift keying
PSTN…………………………………………...……....Public Switched Telephone Network
RS……………………………………...…...………. Reed-Solomon
SECDED ……………………………………………Single-error correcting and double-error detecting
SNR…………………………………………...……. Signal to noise ratio
WAN…………………………………………..……. .Wide area networks

UoG, IoT, Electrical and Computer Engineering Department Page vii


Performance analysis of error coding techniques 2021 GC

Chapter One
Introduction

1.1 Background
In recent years in modern digital communication and storage systems design, there has been an
increasing demand for efficient and reliable digital data transmission. This demand has been
accelerated by the emergence of large scale, high speed data networks for the exchange and
processing of digital information in the military, governmental and private spheres. A major
concern is control of errors, so that reliable reproduction of data can be obtained. Recent
developments have contributed toward achieving the reliability required by today’s high speed
digital systems and the use of coding for error control has become an integral part in the design
of modern communication systems and digital computers [1].

Nowadays, the fastest growing area in the field of communication is Wireless Communication.
Whenever the communication takes place, the data need to be transmitted through the sender to
the recipient. The error is such a situation in which output information is not similar to the input
information. When digital signals are transmitted from the sender to the recipient, some errors
can introduce in the signals because of noise interference. That means a 0 bit may change to 1 or
vice versa [2].

In digital communication systems, environmental interference and physical defects can cause
random bit errors during data transmission. Error coding is a method of detecting and correcting
these errors in a wide range of communication systems in computer memory, magnetic and
optical data storage media, satellite and deep space communications, network communications,
cellular telephone networks, and almost any other form of digital data communication.

Digital data is transmitted over a channel and there is often noise in the channel. The noise may
distort the messages to be sent. Therefore, what the receiver receives may not be the same as
what the sender sends. The goal of error coding is to improve the reliability of digital
communication by error detection and error correction Error control coding (also referred to as
channel coding) is used to detect, and often correct, symbols which are received in error on
digital communications channels [3].
Performance analysis of error coding techniques 2021 GC

For the detection of error, we can use some redundancy codes. These redundancy codes are then
added to the data during transmission, such codes are termed as “Error detecting codes”.
Error Correction Code is a procedure of put in parity bits into real data in order to recover the
message by the receiver. We need error correcting code for good conveying message over a
noisy way that has an improper BER as well as SNR is lower. ReedSolomon codes, Golay codes,
Cyclic Hamming code, BCH codes, Goppa codes are used in error correction [4].

The low-cost, rapid deployment, ability of self-organization and cooperative data-processing,


have made wireless networks a practical solution for a wide range of application areas, including
military and homeland security, health, environment, industry and commercial, and home. The
most significant challenge in sensor networks is to overcome the energy constraints since each
node has limited energy to consume. Since data transmitted over the wireless media is vulnerable
to corruption by noise, error control schemes are necessary to keep the Bit Error Rate (BER) low
[5].

Due to the stringent energy constraint, it is impossible to increase the signal power of the
transmitted signal in wireless networks (unguided). Hence an alternative way is to use the error
control codes to reduce the BER. The encoding and decoding circuitry for error control codes
may consume a sizable amount of power. This motivates us to study energy-efficient error
detection/correction codes [6].

UoG, IoT, Electrical and Computer Engineering Department Page 2


Performance analysis of error coding techniques 2021 GC

1.2 Statement of problem


Ever since from the birth of a communication technology, transmission error had been inevitable.
The quality of data transferred from the transmitter to the receiver depends up on the amount of
noise presented in it. Engineers and technologists have been making such a great effort to combat
against all the unwanted signals presented in the transmitted data. For this reason a number of
techniques have been developed to detect and correct transmission errors. Hamming code,reed-
solomon code and BCH codes are among those techniques.in this paper we will examine the
performance analysis of the above error detection and correction codes in terms of signal to noise
ratio and bit error rate, to distinguish which one performs better.

UoG, IoT, Electrical and Computer Engineering Department Page 3


Performance analysis of error coding techniques 2021 GC

1.3 Objective
1.3.1 General Objective
The general objective of this thesis is Performance analysis of error codding techniques for
unguided media.
1.3.2 Specific objective
This thesis has the following specific objectives to accomplish:

 To compare the performance of different channel coding techniques


 To suggest how to choose the right channel coding technique for a given condition
 To show the advantage and disadvantage of different channel coding techniques
 To create simulation for the above codes
1.4 Methodology
For the success of this thesis project, different procedures have been conducted, which enables to
get full information about different error coding techniques. The mathematical formula of each
error coding techniques were explored, and then each error coding techniques analyzed by
MATLAB simulation software.

Methods involved during the whole project time are the following:
I. Literature review: referring the books, websites and other reference materials including
datasheet of components to understand how the system can work and know about each
component.
II. Design specifications: listing the required performance of the system
III. System modeling: formulating the relationship between different parts and components
of the system.
IV. Designing: the circuit design of the whole system using computer aided tools
V. Simulation: simulating the designed circuit

UoG, IoT, Electrical and Computer Engineering Department Page 4


Performance analysis of error coding techniques 2021 GC

Data collection Data Model


analysis and
Design

Simulation

Result

Report

Figure 1.1 flow chart of the thesis


Step 1. Data collection
In this step, any information about each error coding technique will be explored including the
mathematical representation of each error coding techniques from different source.
Step 2. Data analysis
In this step, the data which is collected from different source will be analyzed by simple
mathematics.
Step 3. System design
in this step, the system design model will be designed by MATLAB software.
Step 4. Simulation
In this step the designed system will be simulated and the error coding techniques will be
analyzed.

UoG, IoT, Electrical and Computer Engineering Department Page 5


Performance analysis of error coding techniques 2021 GC

1.5 Scope of the project


In this thesis project we are basically intended to demonstrate and test error control codes in
digital communication systems using the BCH, Hamming, and reed-Solomon and turbo channel
coding techniques. And also we will try to examine the performance of each coding techniques
using the matlab software.

1.6 Significance of the project


Messages that are transmitted over a communication channel can be damaged or distorted. Their
bits can be masked or inverted by noise. Detecting and correcting these errors is so important.
This thesis project is mainly engaged in the detection and correction of errors in digital
information using different types of coding techniques. The entire paper is focused on applying
this channel coding techniques to decrease communication errors that occur during transmission
of data and also comparing the performance of each coding techniques subjected to noise.

1.7 Organization of the project


This paper is a report for our project written after much effort made practically. It includes the
following chapters:

 First an introduction is discussed, which gives a general concept about this project
 Next a literature review will explain about reports of projects done before in areas
similar to our project
 Then the overall system design and analysis briefly discusses circuit components, design
analysis and system working principles.
 After the design and analysis, a simulation implementation of the project is discussed
 Finally, the paper talks about conclusion and the possible future scopes which gives a
generalized idea about our final points and future works to be made to develop more than
this

UoG, IoT, Electrical and Computer Engineering Department Page 6


Performance analysis of error coding techniques 2021 GC

Chapter Two
Literature Review
2.1 What is a Telecommunication?
Telecommunications, also known as telecom, is the exchange of information over significant
distances by electronic means, referring to all types of voice, data and video transmission.
Simply it is a science and practice of transmitting information by electromagnetic means.

Digital transmission is employed in order to achieve high reliability and because the cost of
digital switching systems is much lower than the cost of analog systems. In many cases, the
digitized signal is passed through a source encoder, which employs a number of formulas to
reduce redundant binary information. After source encoding, the digitized signal is processed in
a channel encoder, which introduces redundant information that allows errors to be detected and
corrected.
The encoded signal is made suitable for transmission by modulation onto a carrier wave and may
be made part of a larger signal in a process known as multiplexing. The multiplexed signal is
then sent into a multiple-access transmission channel. After transmission, the above process is
reversed at the receiving end, and the information is extracted.

Figure 2.1 telecommunication satellite

UoG, IoT, Electrical and Computer Engineering Department Page 7


Performance analysis of error coding techniques 2021 GC

2.2 Types of telecommunications networks


The simplest form of telecommunications takes place between two stations, but it is common for
multiple transmitting and receiving stations to exchange data among them. Such an arrangement
is called a telecom network. The internet is the largest example of a telecommunications
network. On a smaller scale, examples include the following:

 corporate and academic wide area networks (WANs);

 telephone networks;

 cellular networks;

 police and fire communications systems;

 taxi dispatch networks;

 groups of amateur (ham) radio operators; and

 Broadcast networks etc

Data is transmitted in a telecommunications circuit by means of an electrical signal called


the carrier or the carrier wave. In order for a carrier to convey information, some form
of modulation is required. The mode of modulation can broadly be categorized as either analog
or digital.
In analog modulation, some aspect of the carrier is varied in a continuous fashion. The oldest
form of analog modulation is amplitude modulation (AM), which is still used in radio
broadcasting at some frequencies. Digital modulation actually predates AM; the earliest form
was Morse code. Modern telecommunications use internet protocols to carry data across
underlying physical transmissions.

Large global service providers include the following:

❖ AT&T
❖ Verizon
❖ Nippon Telegraph and Telephone (NTT)
❖ China Mobile Limited
❖ Deutsche Telekom AG

UoG, IoT, Electrical and Computer Engineering Department Page 8


Performance analysis of error coding techniques 2021 GC

❖ SoftBank Group
❖ China Telecom
❖ Telefónica SA
❖ Vodafone
❖ Qualcomm
❖ América Móvil

2.3 Previous Work Overview


Vraj Kishan Dugar, Manan Godha Transferred information may get damaged many-a-times during
signal transmission. Therefore, the signals received by the receiver are erroneous and different to
what the sender had originally sent. This paper provides a comparison between three different
types of error detecting codes, all based on the basic hamming code principle. Each code has its
own efficiency in the way it functions, its power/area consumption etc., and its own correction
capabilities. In this paper they focus on the working of these three error detecting codes and try
to find out the more effective one.

Limitation: this paper made a comparison based on average power consumption of each error
detecting codes.it doesn’t include probability of bit error rate of each decoding techniques.

Mohamed Elghayyaty, Omar Mouhib Error correcting codes constitutes one of the core
technologies in telecommunications field, especially digital communication applications. The
objective of this paper is to compare performance among new designs of chien search block on
the one hand and syndrome architectures on the other hand in error correcting codes. All
comparison of all designs is made by computing the number of logic, bit error rate values and
number of iteration in the case of syndrome architectures Analysis results show that the
performances of the new designs based on both second factorization method and Three-Parallel
Syndrome architecture are superior to the performances of traditional designs.

Limitation: this paper only made an intracomparision only inside a bch code.it didn’t include
neither hamming nor reed Solomon codes.

Elghayyaty Mohamed, H. Abdelkader The quality of a digital transmission is mainly dependent on


the amount of errors introduced into the transmission channel. The codes BCH are widely used
in communication systems and storage systems. In this paper a Performance study of BCH error

UoG, IoT, Electrical and Computer Engineering Department Page 9


Performance analysis of error coding techniques 2021 GC

correcting codes is proposed. This paper presents a comparative study of performance between
the Bose-Chaudhuri-Hocquenghem codes using the bit error rate term (BER). The channel and
the modulation type are respectively AWGN and PSK where the order of modulation is equal to
2. First, they generated and simulated the error correcting codes using Math lab simulator.
Second, they compare the two codes using the bit error rate term (BER), finally they conclude
the coding gain for a BER.

Limitation: this paper also made a unilateral comparison only inside a bch code.it didn’t include
neither hamming nor reed Solomon codes.

Priyanka Shrivastava, U. Singh In the present world, communication system which includes
wireless, satellite and space communication, reducing error is being critical. During message
transferring the data might get corrupted, so high bit error rate of the wireless communication
system requires employing to various coding methods for transferring the data. Channel coding
for detection and correction of error helps the communication systems design to reduce the noise
effect during transmission. The purpose of this paper is to study and analyze the performance and
efficiency of Reed-Solomon (RS) Codes. In coding theory, Reed-Solomon (RS) codes are the
subset of BCH codes that are one of the most powerful known classes of linear cyclic block
codes. Reed-Solomon (RS) codes are very efficient and best for correction of burst errors and
have a wide range of applications in digital communication and data storage. Reed-Solomon
(RS) is the most powerful technique used for error detection and correction at present.

Limitation: in this research paper the researchers were only focused on making a performance
analysis only on a reed-Solomon code.it did not include either hamming or the rest.

D.M.I.E.T.R. Sawangi The BCH code is the essential class of multiple-error-correcting linear cyclic
code. In actually, Bose-Chaudhuri-Hocqunghem code is an abstraction of the cyclic hamming
code for multiple-error correction. The finding of errors made by noise during transmission from
the sender to the recipient is called as Error Detection. The finding of errors and renewal of the
original data is called as Error Correction. In this review paper shows that the studies about fixed
block length and message length of the BCH code and Reed Solomon code. In addition, the
various techniques for decoding the codes are studied.

UoG, IoT, Electrical and Computer Engineering Department Page 10


Performance analysis of error coding techniques 2021 GC

Limitation: the algorithm suggested on this research paper only work for a codeword having
only a fixed block length.

D. Azinovic, K. Tittelbach-Helmrich, Z. Stamenkovic This paper investigates the performance of the


BCH encoder and decoder for different error-correcting capabilities. The focus is on BCH codes
of length 255. The motivation for this research is a project where data symbols of this length are
transmitted over an error-prone wireless channel. The paper presents a mathematical introduction
into encoding for cyclic codes and decoding of the BCH code. The code was implemented in
both software and hardware and the performance and cost of both implementations were
measured for different code parameters.

Limitation: the scholars in this paper chose to focus only on BCH codes of length 255.

M. Grassl, T. Beth After a brief introduction to both quantum computation and quantum error
correction, we show how to construct quantum error-correcting codes based on classical BCH
codes. With these codes, decoding can exploit additional information about the position of errors.
This error model - the quantum erasure channel - is discussed. Finally, parameters of quantum
BCH codes are provided.

Limitation: since quantum computing is still on its infantry stage, the technique proposed on
this research paper is not fulfilling.

Sweta Thakur, Tabassum Nasrat and Soumyasree Bera studied the performance of two
channel coding techniques, i.e., BCH and Reed Solomon. Using MATLAB software the process
of simulation has been done. Here, compared the BER and SNR value of the BCH and Reed
Solomon code, also compared the uncoded and coded transmission. The result was similar in
both software and hardware.

Limitation: this research journal doesn’t consider hamming code in its performance analysis.

Saeideh Nabipour, Javad Javidan, Gholamreza Zare Fatin this paper proposed a method
using the Berlekamp Rumsey-Solomon algorithm through the Chiensearch process, to get the
roots of error locator polynomial for BCH decoder. The new algorithm was implemented in C++
programming language to show the performance. The algorithm was improved to 1.5 times faster
than the Chien search method.

UoG, IoT, Electrical and Computer Engineering Department Page 11


Performance analysis of error coding techniques 2021 GC

Limitation: the researchers choose to use C++ programming language while making the
algorithm, but C++ is weaker when compared with matlab.

Gnana Prakash, M.MuthamizhanIn author has designed a (15,7) BCH encoder and decoder.
By utilizing algorithms, two errors have been acknowledged and adjusted in the BCH code
which is worked at the single cycle. The result showed the area and delay were reduced. The
author in proposed a new method for compressing the LUT and reduces the requirement that was
compared to prior design. The throughput of the decoder was greater and the area has been
reduced by 19% for (1023, 993) BCH code over GF(210).

Limitation: the scholars on this paper mainly focused on making a compressing algorithm rather
than making a comparison among the ECCs.

2.4 our modification


In our final project we are mainly focused on making a performance analysis on error detection
and correction techniques. The main thing that makes our project different from previous works
done by other scholars on the same subject is, all the previous works were done on linear block
codes only (hamming, BCH and reed-Solomon), but our final project includes a convolutional
code (the so-called turbo code).

UoG, IoT, Electrical and Computer Engineering Department Page 12


Performance analysis of error coding techniques 2021 GC

Chapter Three
System Modeling and Design
3.1 Errors and Error Correcting Codes
When bits are transmitted over the computer network, they are subject to get corrupted due to
interference and network problems. The corrupted bits lead to spurious data being received by
the receiver and are called errors.

Error-correcting codes (ECC) are a sequence of numbers generated by specific algorithms for
detecting and removing errors in data that has been transmitted over noisy channels. Error
correcting codes ascertain the exact number of bits that has been corrupted and the location of
the corrupted bits, within the limitations in algorithm.

ECCs can be broadly categorized into two types:

• Block codes − the message is divided into fixed-sized blocks of bits, to which redundant
bits are added for error detection or correction.
• Convolutional codes − the message comprises of data streams of arbitrary length and
parity symbols are generated by the sliding application of a Boolean function to the data
stream.
3.1.1 Sources of errors
a) Electromagnetic distortion of signal: - “noise” on the line.
b) Error in sampling pulse relative to neighbor pulse: - “inter-symbol interference”
c) Energy coupling due to nearby links: - “cross-talk”.
d) The storage of information on the magnetic devices is prone to errors due to uneven
Magnetic surface, dust etc.

3.1.2 Types of Errors in Data Communication


Data communication is the length of time it takes for computer information, or data, to travel to
another place. This may include a computer system sending data to another server in a building
or another server across the world. With data communications, there are some errors that may
occur when the data travels through the computer channels.

UoG, IoT, Electrical and Computer Engineering Department Page 13


Performance analysis of error coding techniques 2021 GC

Figure 3.2 channel noise [3]


a) Noise or Electrical Distortion
Depending on the length data travels, outside influences like sound waves or electrical signals
can disrupt the flow of data in a computer system. This may be the result of the conductors that
transmit the data across computers or software systems. Old conductors may be unable to handle
heavy data traffic and physical interference from the environment in the form of noise or
electricity that comes from nearby devices, like motors or power switches. One type of noise is
especially harmful. Known as impulse noise, it is when energy surges through the transmission
line, destroying most or all of the data communication.

b) Random Bit Errors


Random bit errors are complications that occur in the transmission of data. Bits are units of
computer data, usually in the form of binary codes. A general definition of random bit errors is
that these errors come in the form of disorganized bits in the transmission. For example,
computer data sent over a transmission might have several thousand bits forming a long line of
computer data bits to explain a computer command or information. However, there is a chance
that the bits may be rearranged by accident in the transmission process. These random issues are
the most common issues associated with random bit errors.

c) Burst Errors
Burst errors are considered large clumps of bit errors. Burst errors are similar to random bit
errors; however, all random bit errors are isolated strains on a computer data code. Burst errors
take place when there are several, inter-connected bit errors at once. The entire data chain in the
computer communication may have several hundred- or thousand-bit errors, such as wrong
placement order, throughout the chain. Because the error is interconnected, meaning there are

UoG, IoT, Electrical and Computer Engineering Department Page 14


Performance analysis of error coding techniques 2021 GC

several error codes throughout the chain, the data communication error is more complex than a
simple random bit error.

d) Cross Talk and Echo


Cross talk is a term to describe how two different data communications may be synthesized
together in a computer transmission. Usually, how this error occurs is when a computer line is
sending data through a transmission cable that is surrounded by other transmission cables. As
other data communication codes and bits go through the neighboring transmission lines, there is
a high likelihood that data from other neighboring lines may cross into another line. Another type
of error similar to cross talk is an echo. Like cross-talk, it is formed when conflicting data
communications are merged together. However, echo is usually from a single transmission line
where multiple computer ports are sending data communications through at once. Someone's
data communication would echo into another's, resulting in a corruption of data.

In terms of number of bits corrupted there may be three types of errors:


• Single bit error

In a frame, there is only one bit, anywhere though, which is corrupt.


• Multiple bits error

Frame is received with more than one bits in corrupted state [6].
• Burst error

Frame contains more than1 consecutive bits corrupted. [5]

UoG, IoT, Electrical and Computer Engineering Department Page 15


Performance analysis of error coding techniques 2021 GC

3.2 Error Control


When data-frame is transmitted, there is a probability that data-frame may be lost in the transit or
it is received corrupted. In both cases, the receiver does not receive the correct data-frame and
sender does not know anything about any loss. In such case, both sender and receiver are
equipped with some protocols which help them to detect transit errors such as loss of data-frame.
Hence, either the sender retransmits the data-frame or the receiver may request to resend the
previous data-frame.

Error control mechanism may involve two possible ways:


• Error detection
• Error correction
Error detection and correction are implemented either at the data link layer or the transport layer
of the OSI model.

Requirements for error control mechanism:

 Error detection - The sender and receiver, either both or any, must ascertain that there is
some error in the transit.

 Positive ACK - When the receiver receives a correct frame, it should acknowledge it.

 Negative ACK - When the receiver receives a damaged frame or a duplicate frame, it
sends a NACK back to the sender and the sender must retransmit the correct frame.

 Retransmission- The sender maintains a clock and sets a timeout period. If an


acknowledgement of a data-frame previously transmitted does not arrive before the
timeout the sender retransmits the frame, thinking that the frame or its acknowledgement
is lost in transit.

3.2.1 Error detection


Error detection means to decide whether the received data is correct or not without having a
copy of the original message. In error detection technique, it can only determine whether error
has occurred or not but it cannot correct it. Error detection uses the concept of redundancy,
which means adding extra bits for detecting errors at the destination.

UoG, IoT, Electrical and Computer Engineering Department Page 16


Performance analysis of error coding techniques 2021 GC

Whenever a message is transmitted, it may get scrambled by noise or data may get corrupted. To
avoid this, we use error-detecting codes which are additional data added to a given digital
message to help us detect if any error has occurred during transmission of the message.

3.2.2 Error correction


➢ Error correction is the detection of errors and reconstruction of the original error free
data or signal.
➢ To correct an error, the receiver reverses the value of the altered bit. To do so, it must
know which bit is in error.

It can be handled in two ways:


1) receiver can have the sender retransmit the entire data unit.
2) The receiver can use an error-correcting code, which automatically corrects certain errors

Key points:
1.These error detecting and correcting codes help us to trace out the errors in the digital data and
to correct that error.
2. There are many types of codes for error detection and correction e.g. parity bit is a kind of
error detection code that can find only one bit error in the data.
3. Hamming code is an error detection and correction code.
4. These codes are used in detecting and correcting error in the transmitted digital data and it
helps in the error free transmission of the data.

3.3 Hamming Code


In computer science and telecommunication, Hamming codes are a family of linear error-
correcting codes. Hamming code is a set of error-correction codes that can be used to detect and
correct the errors that can occur when the data is moved or stored from the sender to the receiver.
It is technique developed by R.W. Hamming in 1950 as a way of automatically correcting errors
introduced by punched card readers. In his original paper, Hamming elaborated his general idea,
but specifically focused on the Hamming (7, 4) code which adds three parity bits to four bits of
data.

Hamming codes can detect up to two-bit errors or correct one-bit errors without detection of
uncorrected errors. By contrast, the simple parity code cannot correct errors, and can detect only

UoG, IoT, Electrical and Computer Engineering Department Page 17


Performance analysis of error coding techniques 2021 GC

an odd number of bits in error. Hamming codes are perfect codes, that is, they achieve the
highest possible rate for codes with their block length and minimum distance of three.

Figure 3.2 A data link layer [1]


In mathematical terms, Hamming codes are a class of binary linear code. For each integer r ≥
2 there is a code with block length n = 2r − 1 and message length k = 2r − r − 1. Hence the rate of
Hamming codes is R = k / n = 1 − r / (2r − 1), which is the highest possible for codes with
minimum distance of three (i.e., the minimal number of bit changes needed to go from any code
word to any other code word is three) and block length 2r − 1. The parity-check matrix of a
Hamming code is constructed by listing all columns of length r that are non-zero, which means
that the dual code of the Hamming code is the shortened Hadamard code. The parity-check
matrix has the property that any two columns are pairwise linearly independent.

Due to the limited redundancy that Hamming codes add to the data, they can only detect and
correct errors when the error rate is low. This is the case in computer memory (usually RAM),
where bit errors are extremely rare and Hamming codes are widely used, and a RAM with this
correction system is an ECC RAM (ECC memory). In this context, an extended Hamming code
having one extra parity bit is often used. Extended Hamming codes achieve a Hamming distance
of four, which allows the decoder to distinguish between when at most one one-bit error occurs
and when any two-bit errors occur. In this sense, extended Hamming codes are single-error
correcting and double-error detecting, abbreviated as SECDED.

UoG, IoT, Electrical and Computer Engineering Department Page 18


Performance analysis of error coding techniques 2021 GC

Parity bit
A parity bit is a bit appended to a data of binary bits to ensure that the total number of 1’s in the
data is even or odd. Parity bits are used for error detection. There are two types of parity bits:
1. Even parity bit :
In the case of even parity, for a given set of bits, the number of 1’s is counted. If that count is
odd, the parity bit value is set to 1, making the total count of occurrences of 1’s an even
number. If the total number of 1’s in a given set of bits is already even, the parity bit’s value is
0.
2. Odd Parity bit :
In the case of odd parity, for a given set of bits, the number of 1’s is counted. If that count is
even, the parity bit value is set to 1, making the total count of occurrences of 1’s an odd
number. If the total number of 1’s in a given set of bits is already odd, the parity bit’s value is
0.
3.3.1 General Algorithm of Hamming code
The Hamming Code is simply the use of extra parity bits to allow the identification of an error.
1. Write the bit positions starting from 1 in binary form (1, 10, 11, 100, etc).
2. All the bit positions that are a power of 2 are marked as parity bits (1, 2, 4, 8, etc).
3. All the other bit positions are marked as data bits.
4. Each data bit is included in a unique set of parity bits, as determined its bit position in binary
form.
a. Parity bit 1 covers all the bits positions whose binary representation includes a 1 in the
least significant position (1, 3, 5, 7, 9, 11, etc).
b. Parity bit 2 covers all the bits positions whose binary representation includes a 1 in the
second position from the least significant bit (2, 3, 6, 7, 10, 11, etc).
c. Parity bit 4 covers all the bits positions whose binary representation includes a 1 in the
third position from the least significant bit (4–7, 12–15, 20–23, etc).
d. Parity bit 8 covers all the bits positions whose binary representation includes a 1 in the
fourth position from the least significant bit bits (8–15, 24–31, 40–47, etc).
e. In general, each parity bit covers all bits where the bitwise AND of the parity position and
the bit position is non-zero.

UoG, IoT, Electrical and Computer Engineering Department Page 19


Performance analysis of error coding techniques 2021 GC

5. Since we check for even parity set a parity bit to 1 if the total number of ones in the positions
it checks is odd.
6. Set a parity bit to 0 if the total number of ones in the positions it checks is even.

Figure 3.3 an OSI physical layer [3]


Hamming codes have a minimum distance of 3, which means that the decoder can detect and
correct a single error, but it cannot distinguish a double bit error of some codeword from a single
bit error of a different codeword. Thus, some double-bit errors will be incorrectly decoded as if
they were single bit errors and therefore go undetected, unless no correction is attempted.

To remedy this shortcoming, Hamming codes can be extended by an extra parity bit. This way, it
is possible to increase the minimum distance of the Hamming code to 4, which allows the
decoder to distinguish between single bit errors and two-bit errors. Thus the decoder can detect
and correct a single error and at the same time detect (but not correct) a double error.

If the decoder does not attempt to correct errors, it can reliably detect triple bit errors. If the
decoder does correct errors, some triple errors will be mistaken for single errors and "corrected"
to the wrong value.

Error correction is therefore a trade-off between certainty (the ability to reliably detect triple bit
errors) and resiliency (the ability to keep functioning in the face of single bit errors).

This extended Hamming code (SECDED ) is popular in computer memory systems, Particularly
popular is the (72,64) code, a truncated (127,120) Hamming code plus an additional parity bit
,which has the same space overhead as a (9,8) parity code.

UoG, IoT, Electrical and Computer Engineering Department Page 20


Performance analysis of error coding techniques 2021 GC

Figure 3.4 block diagram of hamming algorithm

3.4 Encoding a message by Hamming Code

The procedure used by the sender to encode the message encompasses the following steps:

• Step 1 − Calculation of the number of redundant bits.

• Step 2 − Positioning the redundant bits.

• Step 3 − Calculating the values of each redundant bit.

Once the redundant bits are embedded within the message, this is sent to the user.

3.5 Decoding a message in Hamming Code

Once the receiver gets an incoming message, it performs recalculations to detect errors and
correct them. The steps for recalculation are:

• Step 1 − Calculation of the number of redundant bits.

• Step 2 − Positioning the redundant bits.

• Step 3 − Parity checking.

UoG, IoT, Electrical and Computer Engineering Department Page 21


Performance analysis of error coding techniques 2021 GC

• Step 4 − Error detection and correction

Family of (n, k) block error-correcting codes with parameters:


o Block length: n = 2m – 1
o Number of data bits: k = 2m – m – 1
o Number of check bits: n – k = m
o Minimum distance: dmin = 3

Determining the position of redundant bits:


These redundancy bits are placed at the positions which correspond to the power of 2.
For example let:
1. The number of data bits = 7
2. The number of redundant bits = 4
3. The total number of bits = 11
4. The redundant bits are placed at positions corresponding to power of 2- 1, 2, 4, and 8

Suppose the data to be transmitted is 1011001, the bits will be placed as follows:

Determining the Parity bits:

1. R1 bit is calculated using parity check at all the bits positions whose binary representation
includes a 1 in the least significant position.
R1: bits 1, 3, 5, 7, 9, 11

UoG, IoT, Electrical and Computer Engineering Department Page 22


Performance analysis of error coding techniques 2021 GC

To find the redundant bit R1, we check for even parity. Since the total number of 1’s in all
the bit positions corresponding to R1 is an even number the value of R1 (parity bit’s value)
=0

2. R2 bit is calculated using parity check at all the bits positions whose binary representation
includes a 1 in the second position from the least significant bit.
R2: bits 2,3,6,7,10,11

To find the redundant bit R2, we check for even parity. Since the total number of 1’s in all
the bit positions corresponding to R2 is odd the value of R2(parity bit’s value)=1

3. R4 bit is calculated using parity check at all the bits positions whose binary representation
includes a 1 in the third position from the least significant bit.
R4: bits 4, 5, 6, 7

UoG, IoT, Electrical and Computer Engineering Department Page 23


Performance analysis of error coding techniques 2021 GC

To find the redundant bit R4, we check for even parity. Since the total number of 1’s in all
the bit positions corresponding to R4 is odd the value of R4 (parity bit’s value) = 1

4. R8 bit is calculated using parity check at all the bits positions whose binary representation
includes a 1 in the fourth position from the least significant bit. R8: bit 8,9,10,11.

To find the redundant bit R8, we check for even parity. Since the total number of 1’s in all
the bit positions corresponding to R8 is an even number the value of R8(parity bit’s
value)=0.Thus, the data transferred is:

Error detection and correction:


Suppose in the above example the 6th bit is changed from 0 to 1 during data transmission, then
it gives new parity values in the binary number:

UoG, IoT, Electrical and Computer Engineering Department Page 24


Performance analysis of error coding techniques 2021 GC

The bits give the binary number as 0110 whose decimal representation is 6. Thus, the bit 6
contains an error. To correct the error the 6th bit is changed from 1 to 0.

3.6 BCH codes


The information revolution is in full swing, having matured for the last thirty years, it is
estimated that there are hundreds of millions to several billion web pages on computers
connected to the internet.as of this writing the google.com search engine listed:
 There are 4.54 billion internet users worldwide.
 More than 1.5 billion websites on the internet are inactive.
 There are 56.5 billion web pages indexed through Google. and
 There are about 200 million active websites in its data base.
With all these terabytes per second flying around the world over copper cable, optical fiber, and
microwave links, the question arises ‘how reliable are these networks?

Figure 3.5 Telecom coverage in metropolitan city [7]


In theory, the BCH codes or Bose–Chaudhuri–Hocquenghem codes form a class of cyclic error-
correcting codes that are constructed using polynomials over a finite field (also called Galois
field).BCH codes were invented in 1959 by French mathematician Alexis Hocquenghem, and
independently in 1960 by Raj Bose and D. K. Ray-Chaudhuri The name Bose–Chaudhuri–
Hocquenghem (and the acronym BCH) arises from the initials of the inventors surnames.

One of the key features of BCH codes is that during code design, there is a precise control over
the number of symbol errors correctable by the code. In particular, it is possible to design binary
BCH codes that can correct multiple bit errors. Another advantage of BCH codes is the ease with

UoG, IoT, Electrical and Computer Engineering Department Page 25


Performance analysis of error coding techniques 2021 GC

which they can be decoded, namely, via an algebraic method known as syndrome decoding. This
simplifies the design of the decoder for these codes, using small low-power electronic hardware.

BCH codes are used in applications such as:

 satellite communications,

 compact disc players,

 DVDs,

 disk drives,

 solid-state drives quantum-resistant cryptography and

 Two-dimensional bar codes.

The BCH abbreviation stands for the discoverers, Bose and Chaudhuri (1960), and independently
Hocquenghem (1959). These codes are multiple error correcting codes and a generalization
of the hamming codes. They are classes of linear and cyclic block codes that can be designed for
any value of the error-correction capability up to any size error or less. That is, they provide a
maximum of t error correction among the n length received information. All their behavior is
described above on the block codes definition.

In coding theory, the BCH codes form a class of cyclic error correcting codes that are
constructed using finite fields. We will develop a random error correcting code here called the
BCH code. This code handles randomly located errors. It has minimal hamming distance at least
3 and corrects up to one error.

BCH codes are a generalization of Hamming codes, and they can be designed to be able to
correct any error pattern of size t. In this sense the generalization of the Hamming codes extends
the design of codes for t = 1(Hamming codes) to codes for any desired higher value of t (BCH
codes). The design method is based on taking an LCM of appropriate minimal polynomials.

3.6.1 BCH Encoding algorithm


for any positive integer m ≥ 3 & t < -1, there exists a binary BCH code CBCH (n, k) with
the following properties:

UoG, IoT, Electrical and Computer Engineering Department Page 26


Performance analysis of error coding techniques 2021 GC

 Code length n= 2m- 1


Number of parity bits n-k ≤ mt
Minimum Hamming distance ≥ 2t+ 1
Error-correction capability t errors in a received vector

BCH codes are a family of cyclic codes, which gives them an algebraic structure that is useful in
simplifying their encoding and decoding procedures. Cyclic codes are a class of error correcting
codes that can be efficiently encoded and decoded using simple shift-registers and combinational
logic elements, based on their representation using polynomials.

The encoding of an (n, k) cyclic code in systematic form consists of three steps:
1. With the gate turned on, the k information digits shifted into the circuit and simultaneously
into the communication channel. Shifting the message U(x) into the circuit from the front end is
equivalent to pre multiplying U(x) by X(n-k). As soon as the complete message has entered the
circuit, the n-k digits in the register from the remainder and thus they are the parity check
digits.

2. Break the feedback connection by turning off the gate.

3. Shift the parity check digits out and send them into the channel. These n-k parity check digits
together with the information digits, form a complete code word. All the three steps can be
accomplished with a division circuit which is a linear (n-k) stage shift register with feedback
connection based on the generator polynomial g(x). Significantly large. Puncturing of linear
block code consists of removal of the parity check bits to obtain a linear block.

Figure 3.6 A network tower [1]

UoG, IoT, Electrical and Computer Engineering Department Page 27


Performance analysis of error coding techniques 2021 GC

3.6.2 BCH Decoding algorithm


The decoding procedure consists of three major parts. These are
1. A syndrome registers
2. An error pattern detector, and
3. A buffer registers to hold the received vector.

The received polynomial is shifted into the syndrome register from the left end. To remove the
effect of an error digit on the syndrome, we simply feed the error digit into the shift register from
the left end through an exclusive or gate. The decoding operation is as follows:

1. The syndrome is formed by shifting the entire received vector into the syndrome register.
At the same time the received vector is stored into the buffer register.

2. The syndrome is read into the detector and is tested for the corresponding error pattern.
The detector is a combinational logic circuit which is designed in such a way that its output is 1
if and only if the syndrome in the syndrome register corresponds to a Correctable error pattern
with an error at the highest order position. That is if a 1.

3. Appears at the output of the detector, the received symbol in the right most stage of the buffer
register is assumed to be erroneous and must be corrected; if the ‘0’ appears at the output of the
detector, the received symbol in the right most stage of the buffer register is assumed to be
correct and no correction is necessary.

4. The first received symbol is read out of the buffer. At the same time, the syndrome
register is shifted once. If the received symbol is detected to an erroneous symbol, it is
then corrected by the output of the decoder. The output of the detector is also feedback to
the syndrome registers to modify the syndrome. These results in a new syndrome, which
corresponds to the altered received vector, shifted one place to the right.

5. The new syndrome formed in step 3 is used to detect whether or not the second received
symbol is an erroneous symbol. The second received symbol is corrected in exactly the same
manner as the first received symbol was corrected.

6. The decoder decodes the received vector symbol by symbol in the manner outlined
above until the entire received vector is read out of the buffer register.

UoG, IoT, Electrical and Computer Engineering Department Page 28


Performance analysis of error coding techniques 2021 GC

How do we modify a Hamming code to correct two errors? In other words, how can we increase
its minimum distance from 3 to 5? We will either have to lengthen the code words or eliminate
some of them from our code. Correcting two errors in a long word may not be much better than
correcting one error in a short one. So, we will try to produce a double error correcting subcode
of the Hamming code by removing some code words to make a new code.

BCH codes is a generalization of Hamming codes for multiple error correction. Binary BCH
codes were first discovered by A. Hocquenghem in 1959 and independently by R.C. Bose and
D.K. Ray-Chaudhuri in 1960.

How do we reduce the set of word of a Hamming code?


“Introduce further checks, i.e., add new rows to the Hamming check matrix H”.
Problem:
i. Additional checks may be a linear combination of the ones that we have. In that
case, the set of code words will not be changed.
ii. Although the set of code words may be reduced, the minimum distance may
not be increased.
Trick: Gather bits together in groups of k and consider the groups to represent
the elements of the field GF (2k)

Figure 3.7 block diagram of BCH algorithm

UoG, IoT, Electrical and Computer Engineering Department Page 29


Performance analysis of error coding techniques 2021 GC

3.7 Reed-Solomon codes


Reed–Solomon codes are a group of error-correcting codes that were introduced by Irving S.
Reed and Gustave Solomon in 1960, who were then staff members of MIT Lincoln Laboratory.
Their seminal article was titled "Polynomial Codes over Certain Finite Fields". (Reed &
Solomon 1960).

The original encoding scheme described in the Reed & Solomon article used a variable
polynomial based on the message to be encoded where only a fixed set of values (evaluation
points) to be encoded are known to encoder and decoder.

This theoretical decoder generated potential polynomials based on subsets of k (unencoded


message length) out of n (encoded message length) values of a received message, choosing the
most popular polynomial as the correct one, which was impractical for all but the simplest of
cases. This was initially resolved by changing the original scheme to a BCH code.

3.7.1 Application areas of Reed-Solomon codes


Reed-Solomon codes are block-based error correcting codes with a wide range of applications in
digital communications and storage.
 Storage devices (including tape, Compact Disk, DVD, barcodes, Blu-ray discs etc)

 Wireless or mobile communications (including cellular telephones, microwave links, etc)

 Digital television / DVB

 data transmission technologies such as DSL and WiMAX,

 High-speed modems such as ADSL, xDSL

 QR Codes

 Broadcast systems such as satellite communications

 SD systems such as RAID 6 etc.

Reed–Solomon codes operate on a block of data treated as a set of finite-field elements called
symbols. Reed–Solomon codes are able to detect and correct multiple symbol errors. By
adding t = n − k check symbols to the data, a Reed–Solomon code can detect (but not correct)

UoG, IoT, Electrical and Computer Engineering Department Page 30


Performance analysis of error coding techniques 2021 GC

any combination of up to t erroneous symbols, or locate and correct up to ⌊t/2⌋ erroneous


symbols at unknown locations

As an erasure code, it can correct up to t erasures at locations that are known and provided to the
algorithm, or it can detect and correct combinations of errors and erasures. Reed–Solomon codes
are also suitable as multiple-burst bit-error correcting codes, since a sequence of b + 1 consecutive
bit errors can affect at most two symbols of size b. The choice of t is up to the designer of the
code and may be selected within wide limits.

Figure 3.8 cellular communication [3]


There are two basic types of Reed–Solomon codes

 original view and

 BCH view – with BCH view being the most common, as BCH view decoders are
faster and require less working storage than original view decoders.

In 1977, Reed–Solomon codes were implemented in the Voyager program in the form
of concatenated error correction codes. The first commercial application in mass-produced
consumer products appeared in 1982 with the compact disc.

3.7.2 Properties of Reed-Solomon codes


 Reed Solomon codes are a subset of BCH codes and are linear block codes. It is specified as
RS (n, k) with s-bit symbols.
 The Reed-Solomon encoder takes a block of digital data and adds extra "redundant" bits.
Errors occur during transmission or storage for a number of reasons (for example noise or
interference, scratches on a CD, etc).

UoG, IoT, Electrical and Computer Engineering Department Page 31


Performance analysis of error coding techniques 2021 GC

 The Reed-Solomon decoder processes each block and attempts to correct errors and recover
the original data.
 The number and type of errors that can be corrected depends on the characteristics of the
Reed-Solomon code.
 Reed-Solomon codes are particularly well suited to correcting burst errors (where a series of
bits in the codeword are received in error).

The Reed-Solomon encoder takes k data symbols of s bits each and adds parity symbols to make
an n symbol codeword. There are n-k parity symbols of s bits each. A Reed-Solomon decoder
can correct up to t symbols that contain errors in a codeword, where 2t = n-k.

3.7.3 System Architectures of Reed-Solomon code


Reed-Solomon encoding and decoding can be carried out in software or in special-purpose
hardware. Reed-Solomon codes are based on a specialist area of mathematics known as Galois
fields or finite fields. A finite field has the property that arithmetic operations (+, -, x, / etc.) on
field elements always have a result in the field. A Reed-Solomon encoder or decoder needs to
carry out these arithmetic operations. These operations require special hardware or software
functions to implement.
A Reed-Solomon codeword is generated using a special polynomial. All valid codewords are
exactly divisible by the generator polynomial.

Finding the Symbol Error Locations involves solving simultaneous equations with t unknowns.
Several fast algorithms are available to do this. These algorithms take advantage of the special
matrix structure of Reed-Solomon codes and greatly reduce the computational effort required.

Find an error locator polynomial we use the Berlekamp-Massey algorithm or Euclid’s algorithm.
Euclid’s algorithm tends to be more widely used in practice because it is easier to implement.
however, the Berlekamp-Massey algorithm tends to lead to more efficient hardware and software
implementations.

Finding the roots of this polynomial is done using the Chien search algorithm and finding the
Symbol Error Values, again, involves solving simultaneous equations with t unknowns. A
widely-used fast algorithm is the Forney algorithm.

UoG, IoT, Electrical and Computer Engineering Department Page 32


Performance analysis of error coding techniques 2021 GC

3.7.4 Implementation of Reed-Solomon encoders and decoders


Hardware Implementation

A number of commercial hardware implementations exist. Many existing systems use "off-the-
shelf" integrated circuits that encode and decode Reed-Solomon codes. These ICs tend to support
a certain amount of programmability.

A recent trend is towards VHDL or Verilog designs (logic cores or intellectual property cores).
These have a number of advantages over standard ICs. A logic core can be integrated with other
VHDL or Verilog components and synthesized to an FPGA (Field Programmable Gate Array) or
ASIC (Application Specific Integrated Circuit).

This enables so-called "System on Chip" designs where multiple modules can be combined in a
single IC. Depending on production volumes, logic cores can often give significantly lower
system costs than "standard" ICs. By using logic cores, a designer avoids the potential need to do
a "lifetime buy" of a Reed-Solomon IC.

Software Implementation

Until recently, software implementations in "real-time" required too much computational power
for all but the simplest of Reed-Solomon codes.

The major difficulty in implementing Reed-Solomon codes in software is that general purpose
processors do not support Galois field arithmetic operations. For example, to implement a Galois
field multiply in software requires a test for 0, two log table look-ups, modulo add and anti-log
table look-up. However, careful design together with increases in processor performance means
that software implementations can operate at relatively high data rates.

Figure 3.9 block diagram of reed-Solomon code [3]

UoG, IoT, Electrical and Computer Engineering Department Page 33


Performance analysis of error coding techniques 2021 GC

3.7.5 Parameters of Reed - Solomon Codes


 A Reed-Solomon code is specified as RS(n,k).
 Here, n is the block length which is recognizable by symbols, holding the relation,
n = 2m - 1.
 The message size is of k bits.
 So the parity check size is (n - k) bits
 The code can correct up to (t) errors in a codeword, where (2t = n - k).

3.7.6 Generator Polynomial of Reed Solomon Code


In coding systems with block codes, valid code words consist of polynomials that are divisible
by another fixed polynomial of short length. This fixed polynomial is called generator
polynomial.

In Reed Solomon code, generator polynomial with factors is constructed where each root is a
consecutive element in the Galois field. The polynomial is of the form :g(x) = (x - α) (x - α2) (x -
α3) ......(x - α2t)where α is a primitive element.

3.7.7 Encoding using Reed Solomon Code

The method of encoding in Reed Solomon code has the following steps −

 The message is represented as a polynomial p(x), and then multiplied with the generator
polynomial g(x).

 The message vector [x1,x2,x3.....xk] is mapped to a polynomial of degree less than k such
that px(αi) = xi for all i = 1,...k

 The polynomial is evaluated using interpolation methods like Lagrange Interpolation.

 Using this polynomial, the other points αk + 1....αn, are evaluated.

UoG, IoT, Electrical and Computer Engineering Department Page 34


Performance analysis of error coding techniques 2021 GC

 The encoded message is calculated as s(x) = p(x) * g(x). The sender sends this encoded
message along with the generator polynomial g(x).
3.7.8 Decoding using Reed Solomon Code
At the receiving end, the following decoding procedure done −

 The receiver receives the message r(x) and divides it by the generator polynomial g(x).

 If r(x)/g(x)=0, then it implies no error.

 If r(x)/g(x)≠0, then the error polynomial is evaluated using the expression: r(x) = p(x) *
g(x) + e(x)

 The error polynomial gives the error positions.

Figure 3.10 monalisa’s picture with and without RS code [9]

UoG, IoT, Electrical and Computer Engineering Department Page 35


Performance analysis of error coding techniques 2021 GC

Chapter Four
Simulation result and discussion
A couple of performance metrics are commonly used in assessing different types of error
detecting codes performance. These include bit error rates, (BER) and signal to noise ratio
(SNR). Both performance metrics relate to the digital channel. Both metrics depend on the
instantaneous power ratio between the received signal power, and the noise and interference
power, for any channel where data is transmitted without retransmissions, error rates are
critically important. Error rates are typically low for wired connections, but vary enormously for
wireless links.

 The bit error rate (BER) is the number of bit errors per unit time. The bit error
ratio (also BER) is the number of bit errors divided by the total number of transferred bits
during a studied time interval. Bit error ratio is a unit less performance measure, often
expressed as a percentage.

 In terms of definition, SNR or signal-to-noise ratio is the ratio between the desired
information or the power of a signal and the undesired signal or the power of the
background noise.

4.1 The search for robust codes


The word robust is used here not only to refer to codes that perform well under ordinary
conditions, but also under unusual conditions that stress the designer’s assumption. Here we
address the problem of robust channel coding in which the signal information should be
preserved in spite of intrinsic noise and fading phenomena experienced by the signal.
Qualities that we need from robust codes include:
 better Efficiency
 less Cost of transmitting data
 better Error detection and correction capabilities
 less bandwidth requirement
 less power consumption
 high throughput

UoG, IoT, Electrical and Computer Engineering Department Page 36


Performance analysis of error coding techniques 2021 GC

The performance of a given channel code will depend on:

 the size of the input message or frame size,


 the number of decoding iterations,
 and the design and size of interleavers

4.2 Design Tradeoffs


Performance optimization usually involves a judicious trade-off to be made between the power, the
bandwidth and the complexity of the signal processing required, maintaining the transmission errors
of the source data below some given data. The most suitable channel coding and modulation
techniques for a given application must, as a rule, take into account the characteristics of the
channel through which the transmission occurs.

4.3 Result and discussion

Figure 4.1 hamming code plot Figure 4.2 bch code plot

 From figure 4.1 for high SNR value, errors are difficult to correct by hamming code. But
for small SNR hamming code is accurate technique rather than the others.
 This makes hamming code suitable for short communication systems.
 As we can see From figure 4.2 as the SNR ratio increases, the error correcting capacity of
BCH code also increases.
 We can conclude from the above plots; BCH code is very good for long distance
communication systems.

UoG, IoT, Electrical and Computer Engineering Department Page 37


Performance analysis of error coding techniques 2021 GC

Figure 4.3 reed-Solomon code matlab plot Figure 4.4 turbo code matlab plot

 As depicted on figure 4.3 Reed Solomon code is better for correcting and detecting errors
at medium communication systems. Reed Solomon code is better than hamming but
lower than BCH codes.
 There is no significant reduction in BER or it is nearly constant on increasing of values of
S/N in case of BCH system while in RS system BER values significantly reduce on
increase on increasing S/N ratio which makes it a better coding scheme.

Figure 4.5 codded and uncoded plot of hamming Figure 4.6 codded and uncoded plot of Reed-Solomon

 Hamming code For a BER of 10–2, the improvement of SNR is roughly 1 dB, which
means less than half the signal strength is needed to achieve the same reliability in

UoG, IoT, Electrical and Computer Engineering Department Page 38


Performance analysis of error coding techniques 2021 GC

decoding error. This factor of improvement means less transmission power is needed
over a given distance, or that the transmission range can be increased and still achieves
the same BER as at a much closer range without the code.
 RS code For a BER of 10–2, the improvement in SNR is 1.5 dB This almost doubles the
improvement seen by the (7,4) Hamming code. Since RS codes are extremely effective
against burst-errors and offer significant improvements in the SNR needed to achieve a
given BER,
 RS code is very powerful yet still relatively simple to implement in terms of hardware
(due to relatively less number of iteration). RS codes may not compare to turbo codes in
their performance in the very low SNR values encountered— for example in deep space
missions,—but for many other applications such as data storage and internet data
transmission, they are a very attractive option.

Figure 4.7 comparison of hamming, bch and RS codes


 Figure 4.4 shows achievable BER for turbo codes using different numbers of decoding
iterations. By performing more iteration during decoding, the BER drops dramatically,
even for extremely low SNR values. However, the law of diminishing returns is clearly
evident, as the number of iterations is increased.
 Our matlab iteration shows that a bit error rate (BER) of 10–5 can be achieved for an
SNR of 0.8 after 10 iterations by the turbo decoder. This is a very good BER for a signal

UoG, IoT, Electrical and Computer Engineering Department Page 39


Performance analysis of error coding techniques 2021 GC

level that is, in fact, weaker than the noise over an AWGN channel. In fact, to achieve a
BER of 10–6, a SNR of 1 dB is all that is needed for 10 iterations, where even the (31,16)
RS code needed a SNR of 4.5 dB.
 The ability to achieve such low BER for extremely low SNR is what makes turbo codes
so attractive for applications such as deep space satellites. This type of application also
provides the liberty to introduce as much delay as is needed at the decoder because it is
not a real-time data application. Therefore, more iteration could be performed to achieve
a low BER for signals coming in under 1 dB SNR.
 Another way to improve the achievable BER for low SNR is to decrease the code rate.
This means using more parity bits and less information bits in a codeword. When the
code rate is decreased, the information throughput is sacrificed because there are less
information bits being sent per transmission. But in an application like deep space
satellites, this may be an acceptable tradeoff to increase BER at astronomical distances.
 Decreasing the code rate can achieve even better results for turbo codes. At a code rate of
one-fifth a BER of 10–6 is achievable at an SNR of 0.6 dB for 14 decoding iterations. At
this point a receiver can receive a transmission whose power is far below the noise floor
and still achieve an acceptable BER.
 more iterations will get lower BER, but the decoding delay is also longer
 A higher coding rate needs more bandwidth.
 Turbo codes are part of a class known as convolutional codes Turbo Codes are well
suited for long distance and low power wireless communications because they achieve a
very low bit error rate (BER) at very low SNR. This means that data is still transmitted
nearly error-free with a low energy signal, and this characteristic has lead turbo codes to
be implemented in applications such as deep space communications and third generation
cellular standards.
 This could potentially give a large cost benefit because it reduces the amount of power
needed for the transmission of data.
 Though the encoding and decoding processes outlined previously lowers the BER,
implementing these practices is costly, and may not be desirable. Furthermore, the
decoding algorithm is complex, and more iteration requires greater amounts of memory,
causing the implementation of robust codes to be more expensive than linear block codes.

UoG, IoT, Electrical and Computer Engineering Department Page 40


Performance analysis of error coding techniques 2021 GC

Chapter five
Conclusion and recommendation
5.1 Conclusion
Forward Error detection and Correction code is a powerful tool in combating transmission errors
caused by a noisy channel. Using FEC codes allows communications to achieve the same level
of transmission reliability, quantified by the BER, at lower output power levels. This could
potentially give a large cost benefit because it reduces the amount of power needed for the
transmission of data.

There are tradeoffs for every code that have to be weighed against the application they are being
Used for. There is no single FEC code that is an optimum solution for every application, and
many factors must be weighed before a decision is made on which code to use.

In general, the more effective a FEC code is at combating transmission errors, the more
expensive it is to implement in terms of hardware, and the more complicated its encoding and
decoding process become. Things like decoding delay and decreased throughput must also be
considered when choosing between the different FEC codes that are available.

In emerging digital wireless communication systems, the purpose of channel coding is to add
redundancy to the binary data stream to combat the effect of signal degradation of the channel.
Signal degradation is usually due to noise and fading phenomena.

Ideally, channel codes should meet the following requirements:

 Channel codes should be high rate to maximize data throughput.


 Channel codes should have good bit error rate (BER) performance at the desired signal-
to-noise ratios (SNR) to minimize the energy needed for transmission.
 Channel codes should have low encoder/decoder complexity to limit the size and cost of
the transceivers.
 Channel codes should only introduce minimal delays, especially in voice transmission, so
that no degradation in signal quality is detectable.

UoG, IoT, Electrical and Computer Engineering Department Page 41


Performance analysis of error coding techniques 2021 GC

5.2 Recommendations
 The major disadvantage of bringing additional complexity and delay of Forward Error
detection and Correction has to be dealt with in order to achieve desirable objectives
through better hardware and software design approaches.
 From the error performance analysis and results, it is evident that Forward Error detection
and Correction are quite suitable for the emerging wireless communications technologies
and applications, assuming that the disadvantages mentioned above could be minimized
with other developments in hardware design.
 Random coding theory states that almost all randomly designed codes are good, as
long as they are sufficiently long. However, just a few of them in terms of the
parity check bits make decoding simple to implement. They were for some period in
the 1960s, and even in the 1980s still rather too complex to implement. The early
1990s saw the discovery of turbo codes by Berrou, et al whose performance is built
on large random interleavers, and iterative decoding.
 Recently, Neal and McKay “rediscovered” the low density parity check codes employing
iterative decoding to achieve turbo-like performance. To design a good LDPC code,
efficient use of modern random access memory (RAM) architecture is the key. Design
alternatives of LDPC codes that have sufficient structure to allow efficient read/write
operations, while retaining sufficient “randomness” to retain coding gain are still needed.
 Convolutional codes (turbo codes) are better than block codes (hamming, BCH and RS)
but, again LDPC codes are preferred to turbo codes in some applications because of their
more efficient implementation as well as better performance.

UoG, IoT, Electrical and Computer Engineering Department Page 42


Performance analysis of error coding techniques 2021 GC

5.3 Future Research aspiration


The future research directions proposed here for the furtherance of robust code performance
research are as follows:

 Our SNR-to-BER performance simulations have been limited to AWGN and Rayleigh
models. Future researchers could examine the BER performance on other more channel
models, such as the Jake’s model.

 Investigating the use of other modulation techniques or signal constellations. Our


research has been limited to BPSK modulation systems and 8 signal constellations.

 Performing simulations to obtain the BER performance curves for BERs below 10-5 in
order to study the “error floor” area of the BER curves. It is suspected that the
performance in this area of the BER curves might oscillate slightly when the symbol size
is increased.

 Our research back then has revealed several fundamental channel code performance
bounds and capacity limits at various levels, and the need for considering several design
alternatives.

 Examples of these performance bounds and limits include:

▪ The Shannon capacity limit and bound

▪ The Singelton bound

▪ The Gilbert-Varshamov bound, and

▪ The Hamming bound.

There is a need for clarifying on the convergence or divergence of these concepts to a similar
point and their comparative advantages with reference to established channel code performance
metrics.

UoG, IoT, Electrical and Computer Engineering Department Page 43


Performance analysis of error coding techniques 2021 GC

References

[1] E. R. Berlkamp, Algebric Coding theory, McGraw-hill, 2000.

[2] Berlkamp, Algebraic Coding Theory, chicago: Mc Graw-hill, 2000.

[3] M. W. F.J, The Theory of Error-Correcting Codes, NorthHalland: Mc Graw-hill, 2009.

[4] W. a. W. J. Peterson, Error-Correcting Codes,", NorthHalland: MITpress, 2004.

[5] "Codes correcteurs d’erreurs," Chiffers, vol. ii, no. 12, pp. 157-169, 2006.

[6] I. R. a. G.Solomon, "Polynomial codes over certain finite fields," Applied Math, vol. ii, no.
1, pp. 50-59, 2000.

[7] M. U. S. M. Y. A. a. A. A. K. Ramasamy, "Performance comparison of Convolution and


block turbo codes," IEICE Electron, vol. v, no. 2, pp. 28-36, 2005.

[8] a. J. S. M.C. Valenti, "“The UMTS Turbo Code and an Efficient Decoder Implementation
Suitable for Software-Defined Radios," International Journal of Wireless Information
Networks, vol. 8, no. 4, pp. 50-65, October,2001.

[9] A. R. H. J. F.-W. S. a. M. E. Lin-Nan Lee, "“Application and Standardization of Turbo


Codes in Third-Generation High-Speed Wireless Data Services," EEE Trans. On Vehicular
Technology, vol. ii, no. 4, pp. 69-89, November,2000.

[10] I. C. I. W. a. R. C. M.R.D. Rodrigues, "On the Performance of Turbo Codes in quasi-Static


Fading Channels. ,," in Laboratory for Communication Engineering, University of
Cambridge, U.K., Mc Graw-hill, 2008, pp. 150-200.

[11] J.P. Woodard and L. Hanzo, "Comparative study of turbo decoding techniques: An
overview," IEEE Transactions on Vehicular Technology, vol. 49, no. 4, pp. 208-233, 2000.

[12] F. Dowla, Handbook of RF and Wireless Technologies, Newnes 2004, ISBN 0750676957,
Newns: Mc Graw-hill, 2004.

[13] R. G. Gallager, "Low density parity-check codes," in IRE Transactions Information Theory,,
Chicago, Mc Graw-hill, 1999, pp. 209-200.

[14] K. D. Rao, Channel coding techniques for wireless communication, Tokyo: Mc Graw-hill,
2000.

UoG, IoT, Electrical and Computer Engineering Department Page 44


Performance analysis of error coding techniques 2021 GC

[15] M. H., Performance evalution of BCH coding technique, Tiyland: Mc Graw-hill, 2008.

[16] J. K, Performance evalution of Reed Solomon code, Tokyo: Prentic-hill, 2001.

[17] G. a. Nikolas, "performance evalution of hamming code," communication media, vol. i, no.
1, pp. 16-48, 2007.

UoG, IoT, Electrical and Computer Engineering Department Page 45

You might also like