Chapter-4: Error Control Coding: (Digital Communication)
Chapter-4: Error Control Coding: (Digital Communication)
(Digital Communication)
Lecture on
Chapter-4: Error Control Coding
By
Dr. M. Golam Rashed
(golamrashed@ru.ac.bd)
08/10/2022 2
Why Channel Coding?
The design goal of channel coding is to increase the resistance of a digital
communication system to channel noise.
Specifically, channel coding consists of mapping the incoming data sequence into a
channel input sequence and inverse mapping the channel output sequence into an
output data sequence in such a way that the overall effect of channel noise on the
system is minimized.
08/10/2022 3
Why Channel Coding?
08/10/2022 4
Error Detection and Error Correction Techniques
• Channel coding protects digital data from errors by
selectively introducing redundancies in the transmitted
data.
• Channel codes that are used to detect errors are called error
detection codes.
• Channel codes that can detect and correct errors are called
error correction codes.
08/10/2022 5
Error Detection and Error Correction Techniques
• The basic purposes of error detection and correction
techniques is to introduce redundancies in the data to
improve wireless link performance.
• It increase the bandwidth requirement for a fixed source
data rate.
• This reduces the bandwidth efficiency of the link in high
SNR condition, but provides excellent BER performance at
low SNR values.
08/10/2022 6
Error Detection and Error Correction Techniques
• There are three basic types of error correction and
detection codes:
• Block Codes
• Convolutional codes. and
• Turbo codes.
08/10/2022 7
Block Codes
ICE M3011
08/10/2022 8
Block Codes (con’t)
• In block codes, parity bits are added to blocks of messages to make
codewords or code blocks.
• In a block encoder,
• K information bits are encoded into n code bits.
• A total n-k redundant bits are added to the k information
bits for the purpose of detecting and correcting errors.
• The block code is referred to as an (n,k) code, and
• The rate of the code is defined as Rc=k/n.
• The datawords can be encoded into codewords which consist of n
bits, where n = k+r.
• The additional r bits are derived from the message bits
but08/10/2022
are not part of the message. 9
Block Codes (con’t)
ICE M3011
08/10/2022 10
Block Codes (con’t)
ICE M3011
08/10/2022 11
Distance of a Code
• The distance between two codewords is the number of
elements in which two codewords Ci and Cj differ.
Where
• d is the distance between the codewords and q is the
total number of possible values of
• The length of each codeword is N elements or
characters.
08/10/2022 12
Distance of a Code (con’t)
• If the code used is BINARY, the distance is known as the
Hamming distance.
• The minimum distance is the smallest distance for the
given codeword set and is given as
08/10/2022 13
Weight of a Code
• The weight of a codeword of length N is given by the
number of nonzero elements in the codeword.
• For a binary code, the weight is basically the number of
1s in the codeword and is given as
08/10/2022 14
Properties of Block Codes
• Linearity
Suppose and are two codewords in an (n,k) block code. Let,
and be any two elements selected from the alphabet. Then
the code is said to be linear if and only if is also a code word.
• A linear code must contain the all-zero code word.
08/10/2022 15
Properties of Block Codes (con’t)
• Systematic
A systematic code is one in which the parity bits are
appended to the end of the information bits.
• For an (n,k) code, the first k bits are identical to the
information bits, and
• The remaining n-k bits of each code word are linear
combinations of the k information bits.
08/10/2022 16
Properties of Block Codes (con’t)
• cyclic
Cyclic codes are a subset of the class of linear codes, which
satisfies the following cyclic shift properties:
• If is a codeword of a cyclic code, then obtained by a
cyclic shift of the element of C, is also a code word.
08/10/2022 17
Example of Block Codes
Hamming Codes
• Hamming codes were the first error correction codes.
• These codes and their variations have been used for error
control in digital communication systems.
• There are both binary and nonbinary Hamming codes.
• A binary Hamming code has the properties that
(n,k)=(2m-1,2m-1-m)
Where k is the number of information bits used to form a
n bit codeword, and m is any positive integer. The number of
parity symbols are n-k=m
08/10/2022 18
Example of Block Codes (con’t)
Hadamard Codes
• Hadamard codes are obtained by selecting as codewords
the rows of a hadamard matrix.
• A hadamard matrix A is a N×N matrix of 1s and 0s, such
that each rows differs from any other rows in exactly N/2
ones.
• The minimum distance for these codes is N/2.
• For N=2, the Hadamard matrix A is
08/10/2022 19
Example of Block Codes (con’t)
Golay Codes
• Golay codes are linear binary (23,12) codes with a
minimum distance of seven and a error correction
capability of three bits.
08/10/2022 20
Example of Block Codes (con’t)
Cyclic Codes
• Cyclic codes are a subclass of linear block codes. They
possess the property that a cyclic shift of a codeword is
also a codeword.
• For example, if is a codeword of a cyclic code, then
obtained by a cyclic shift of the element of C, is also a
code word.
08/10/2022 21
Convolution Codes
Convolutional Encoder
• Convert any length message to a single
‘codeword’
• Consists of Two main sections-
1. Shift Register
2. Exclusive-OR Logic Circuits
08/10/2022 22
Convolutional Encoder (rate ½, m=3)
– 3 shift-registers, where the first one takes the incoming
data bit and the rest form the memory of the encoder.
XOR
Circuit
u1 First coded bit
08/10/2022 23
Convolution Codes
08/10/2022 24
Convolutional Encoder (rate ½, m=3)
Step: 1
11001 0 0 0
u1 , u 2
Input data bits
u2 Second coded bit
m
08/10/2022 26
Step: 2
u1 1
1 0 0
1100
u1 , u 2 11
Input data bits
u2
m 1
08/10/2022 27
Step: 3
u1 1
0 1 0
110
u1 , u 2 10
Input data bits
u2
m 0
08/10/2022 28
Step: 4
u1 1
0 0 1
11
u1 , u 2 11
Input data bits
u2
m 1
08/10/2022 29
Step: 5
u1 1
1 0 0
1
u1 , u 2 11
Input data bits
u2
m 1
08/10/2022 30
Step: 6
u1 0
1 1 0
u1 , u 2 01
Input data bits
u2
m 1
08/10/2022 31
Take a Look
First Bit Input
Input 1 0 0 1 1
State 10 01 00 10 11
Output 11 10 11 11 01
08/10/2022 32
State Input: 11001 1/10
Diagram:
11
1/01 0/01
0/10
10 01
1/00
0/11
1/11
00
0/00
08/10/2022 33
State Diagram
• The state diagram helps out to recover any of the
states the encoder.
• The number of total states is equal to 2^(m-1), as
the constraint length is 3, the total number of
states is 4.
• Also it provides the assumption of error, if the
output does not match with the expected
codeword.
08/10/2022 34
Why convolutional coding instead
of block codes?
• Block codes are based on
algebraic/combinational techniques.
08/10/2022 35