Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
102 views

Chapter-4: Error Control Coding: (Digital Communication)

The document provides information about error control coding. It discusses why channel coding is used to make reliable digital communication possible over noisy channels. Channel coding involves mapping data sequences to channel inputs and back to reduce the effects of channel noise. Block codes and convolutional codes are two main types of error correction codes discussed. Block codes add parity bits to message blocks to form codewords. Convolutional codes use a shift register and XOR logic to continuously encode message bits into codewords.

Uploaded by

gfdsa jkl
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views

Chapter-4: Error Control Coding: (Digital Communication)

The document provides information about error control coding. It discusses why channel coding is used to make reliable digital communication possible over noisy channels. Channel coding involves mapping data sequences to channel inputs and back to reduce the effects of channel noise. Block codes and convolutional codes are two main types of error correction codes discussed. Block codes add parity bits to message blocks to form codewords. Convolutional codes use a shift register and XOR logic to continuously encode message bits into codewords.

Uploaded by

gfdsa jkl
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 35

ICE-3212

(Digital Communication)

Lecture on
Chapter-4: Error Control Coding
By
Dr. M. Golam Rashed
(golamrashed@ru.ac.bd)

Department of Information and Communication Engineering (ICE)


University of Rajshahi, Rajshahi-6205, Bangladesh
Why Channel Coding?

 A reliable digital communication over a noisy channel is


possible if the transmission rate is less than channel capacity.
 Reliable communication is made possible through channel
coding, i.e., assigning messages to blocks of channel inputs and
using only a subset of all possible blocks.

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?

 The first mapping operation is performed in the transmitter by a


channel encoder, whereas the inverse mapping operation is
performed in the receiver by a channel decoder.

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

• A block code requires that the message stream be


partitioned into blocks of bits (considering only binary
messages at this stage).
• There is no redundancy in the system, meaning
that even a single bit error in transmission would convert
one dataword into another, which of course would
constitute an error.

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

• Block codes are forward error correction (FEC) codes that


enables a limited number of errors to be detected and
corrected without retransmission.
• Block codes can be used to improve the performance of a
communications systems when other means of
improvement are impractical.
• Such as increasing transmitter power
• Using a more sophisticated demodulator.

08/10/2022 10
Block Codes (con’t)
ICE M3011

• Besides the code rate, other important parameters are:


• the code distance and
• the weight of particular codewords.

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

Input data bits S1 S2 S3 Output coded bits


m u1 , u 2
u2 Second coded bit

08/10/2022 23
Convolution Codes

• A convolutional code is specified by THREE parameters.


• Number of bits produced at encoder output at each
time unit, n
• Number of bits input to encoder at each time unit, k
• m = constraint length
= max. no. of bits in a single output stream that can be affected by
any input bit

08/10/2022 24
Convolutional Encoder (rate ½, m=3)

How does it work?


08/10/2022 25
Let, the input is 11001

Step: 1

u1 First coded bit

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.

• Convolution codes are based on


construction techniques. So, it is easy to
implement.

08/10/2022 35

You might also like