SlideShare a Scribd company logo
1 of 36
ET 351
Information Theory and Coding
Lecture 06
Unit V: Channel Coding
Single parity–check codes, linear systematic codes,
forward Error correction codes, cyclic codes, decoding
Semester I, 2022|2023
24 October, 2022 ~ 05 February, 2023
07 January, 2023
2
Channel Coding
 Why? To increase the resistance of digital
communication systems to channel noise
via error control coding
 How? By 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
 Redundancy is introduced in the channel
encoder so as to reconstruct the original
source sequence as accurately as possible.
3
Error Control Coding
 Error control for data integrity may be
exercised by means of forward error
correction (FEC).
4
Error Control Coding
 The discrete source generates information
in the form of binary symbols.
 The channel encoder accepts message bits
and adds redundancy to produce encoded
data at higher bit rate.
 The channel decoder uses the redundancy
to decide which message bits were
actually transmitted.
 What is the implication?
5
The implication of Error Control Coding
 Addition of redundancy implies the need for
increased transmission bandwidth
 It also adds complexity in the decoding
operation
 Therefore, there is a design trade-off in the
use of error-control coding to achieve
acceptable error performance considering
bandwidth and system complexity.
 Types of Error Control Coding
• Block codes
• Convolutional codes
6
Block Codes
 Usually in the form of (n, k) block code where
n is the number of bits of the codeword and k
is the number of bits for the binary message
 To generate an (n,k) block code, the channel
encoder accepts information in successive k-
bit blocks
 For each block add (n-k) redundant bits to
produce an encoded block of n-bits called a
codeword
 The (n-k) redundant bits are algebraically
related to the k message bits
7
Block Codes
 The channel encoder produces bits at a rate
called the channel data rate, R0
s
R
k
n
R 






0
Where
Rs is the bit rate of the information source
and
n/k is the code rate
8
 The channel encoder accepts information in
successive k-bit blocks and for each block it
adds (n-k) redundant bits to produce an
encoded block of n-bits called a code-word.
 The channel decoder uses the redundancy to
decide which message bits were actually
transmitted.
 In this case, whether the decoding of the
received codeword is successful or not, the
receiver does not perform further processing.
 In other words, if an error is detected in a
transmitted codeword, the receiver does not
request for retransmission of the corrupted
code word.
Forward Error-Correction (FEC)
9
 Automatic-Repeat Request (ARQ) scheme
• Upon detection of error, the receiver
requests a repeat transmission of the
corrupted code word
• There are 3 types of ARQ scheme
• Stop-and-Wait
• Continuous ARQ with pullback
• Continuous ARQ with selective repeat
Forward Error-Correction (FEC)
10
Types of ARQ Scheme
 Stop-and-wait
• A block of message is encoded into a codeword
and transmitted
• The transmitter stops and waits for feedback
from the receiver either an acknowledgement of
a correct receipt of the codeword or a
retransmission request due to error in decoding
• The transmitter resends the codeword before
moving onto the next block of message
What is the implication of this?
 Idle time during stop-and-wait is wasted and
will reduce the data throughput
11
Types of ARQ Scheme
 Continuous ARQ with pullback (or go-back-N)
 Allows the receiver to send a feedback signal while
the transmitter is sending another codeword
 The transmitter continues to send a succession of
codewords until it receives a retransmission
request.
 It then stops and pulls back to the particular
codeword that was not correctly decoded and
retransmits the complete sequence of codewords
starting with the corrupted one.
 What is the implication of this?
 Code words that are successfully decoded are also
retransmitted. This is a waste of resources
12
•Retransmits the codeword that was
incorrectly decoded only.
•Thus, eliminates the need for
retransmitting the successfully decoded
code words.
Continuous ARQ with Selective Repeat
13
 An (n, k) block code indicates that
the codeword has n number of bits
and k is the number of bits for the
original binary message
 A code is said to be linear if any two
codewords in the code can be added
in modulo-2 arithmetic to produce a
third codeword in the code
Linear Block Codes
14
 The encoding and decoding functions involve the
binary arithmetic operation of modulo-2
 Rules for modulo-2 operations are:
Modulo-2 addition
0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0
Modulo-2 multiplication
0 x 0 = 0
1 x 0 = 0
0 x 1 = 0
1 x 1 = 1
Modulo-2 Operations
15
 The additional (redundancy) bits (n-k) are identical to k
 Example : A (5,1) repetition code.
 The original binary message has 1 bit. (5-
1=4) bits are added to the binary message to
form a code word and the 4 additional bits
are identical to the 1 bit binary message.
 So, you have 2 code words either 11111 or
00000.
 In the case of error, 1 will changed to 0
and/or vice versa and the decoder will know
that it has wrongly received a code word.
Linear Block Code – Example : The Repetition Code
16
 Codes are based on the notion of parity.
 The parity of a binary word is said to be even
when the word contains and even number of 1s
and odd parity when it has odd number of 1s.
 A group of n-bits codewords are constructed from
a group of n-1 message bits.
 One check bit is added to the n-1 message bits
such that all the codewords have the same parity
 When the received codeword has different parity,
we know that an error has occurred
Example : n=3 and even parity
 The binary messages are 00,01,10,11
 The check bit is added such that all the code words have even parity
 So, the resulting code words are 000,011,101 and 110
Parity-check Codes
17
Codes in which the message bits are transmitted in an unaltered form.
Example : Consider an (n,k) linear block code
There are 2k number of distinct message blocks and 2n number of distinct code
words
Let m0,m1,….mk-1 constitute a block of k-bits binary message
By applying this sequence of message bits to a linear block encoder, it adds n-k
bits to the binary message
Let b0,b1,….bn-k-1 constitute a block of n-k-bits redundancy
This will produce an n-bits code word
Let c0,c1,….cn-1 constitute a block of n-bits code word
Using vector representation they can be written in a row vector notation
respectively as
(c0 c1 …. cn ) , (m0 m1 …. mk-1 ) and (b0 b1 …. bn-k-1 )
Systematic Block Codes
18
Systematic Block Codes
Using matrix representation, we can define
c, the 1-by-n code vector = [c0 c1 …. cn ]
m, the 1-by-k message vector =[m0 m1 …. mk-1 ]
b, the 1-by-(n-k) parity vector = [b0 b1 …. bn-k-1 ]
With a systematic structure, a code word is divided into 2 parts. 1 part occupied
by the binary message only and the other part by the redundant (parity) bits.
The (n-k) left-most bits of a code word are identical to the corresponding parity
bits
The k right-most bits of a code word are identical to the corresponding message
bits
19
Systematic Block Codes
 In matrix form, we can write the code
vector,c as a partitioned row vector in terms
of vectors m and b
c=[b m]
 Given a message vector m, the
corresponding code vector, c for a
systematic linear (n,k) block code can be
obtained by a matrix multiplication
c=m.G
 Where G is the k-by-n generator matrix.
1 0 …. 0
0 1 …. 0
0 0 …. 1
EEE377 Lecture Notes
20
Systematic Block Codes – The generator matrix, G
G, the k-by-n generator matrix has the general structure
G = [Ik P]
Where Ik is the k-by-k identity matrix and
P is the k-by-(n-k) coefficient matrix
Ik=
P00 P01 ….. P0,n-k-1
P10 P11 ….. P1,n-k-1
Pk-1, 0 Pk-1,1 ….. Pk-1,n-k-1
P =
The identity matrix simply reproduces the message vector for the first
k elements of c
The coefficient matrix generates the parity vector,b via b=m.P
The elements of P are found via research on coding.
21
 A type of (n, k) linear block codes with the
following parameters
• Block length, n = 2m - 1
• Number of message bits, k = 2m – m -1
• Number of parity bits : n-k=m
• m >= 3
Hamming Code
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
22
A (7,4) Hamming code with the following
parameters
n=7; k=4, m=7-4=3
The k-by-(n-k) (4-by-3) coefficient matrix, P =
The generator matrix, G is, G =
1 1 0
0 1 1
1 1 1
1 0 1
P =
G =
Hamming Code
23
Hamming Code – Example
The parity vector,b is generated by b=m.P
For a given block of message bits m = (m1 m2 m3 m4), we can work out
the parity vector, b and hence the code word, c = mG for the (7,4)
Hamming Code.
Exercise: Try to work out the codewords for the (7,4) Hamming Code.
Hamming Code
Codewords for (7,4) Hamming Code
Message Word Parity bits Code words
0000 000 0000000
0001 101 1010001
0010 111 1110010
0011 010 0100011
0100 011 0110100
0101 110 1100101
0110 100 1000110
0111 001 0010111
1000 110 1101000
1001 011 0111001
1010 001 0011010
1011 100 1001011
1100 101 1011100
1101 000 0001101
1110 010 0101110
1111 111 1111111
24
25
Cyclic Codes
A subclass of linear codes having a cyclic structure.
The code vector can be expressed in the form
c = ( cn-1 cn-2 ……c1 c0 )
A new code vector in the code can be produced by cyclic shifting of
another code vector.
For example, a cyclic shift of all n bits one position to the left gives
c’ = ( cn-2 cn-3 ……c1 c0 cn-1)
c” = ( cn-3 cn-4 ……c1 c0 cn-1 cn-2)
A second shift produces another code vector, c”
Cyclic Code
26
The cyclic property can be treated mathematically by associating a
code vector, c with the code polynomial, c(X)
c(X) = c0 + c1X + c2X2+……cn-1Xn-1
The power of X denotes the positions of the codeword bits.
The coefficients are either 1s and 0s.
An (n,k) cyclic code is defined by a generator polynomial, g(X)
g(X) = Xn-k + gn-k-1Xn-k-1 + ……. + g1X + 1
The coefficient g are such that g(X) is a factor of Xn + 1
Cyclic Codes
27
To encode an (n,k) cyclic code
1. Multiply the message polynomial , m(X) by Xn-k
2. Divide Xn-k.m(X) by the generator polynomial, g(X) to obtain the
remainder polynomial, b(X)
3. Add b(X) to Xn-k.m(X) to obtain the code polynomial
Cyclic Codes – Encoding Procedure
28
The (7,4) Hamming Code
For message sequence 1001
The message polynomial, m(X) = 1 + X3
1. Multiply by Xn-k (X3) gives X3 + X6
2. Divide by the generator polynomial, g(X) that is a factor of Xn + 1
For the (7,4) Hamming code is defined by its generator polynomials,
g(X) that are factors of X7 + 1
With n =7, we can factorize X7 + 1 into three irreducible polynomials
X7 + 1 = (1 + X)(1 + X2 + X3)(1 + X + X3)
Cyclic Codes - Example
29
For example we choose the generator polynomial, 1 + X + X3 and
perform the division we get the remainder, b(X) as X2 + X
3. Add b(X) to obtain the code polynomial, c(X)
c(X) = X + X2 + X3 + X6
So the codeword for message sequence 1001 is 0111001
Cyclic Codes - Example
Find the codeword for (7,4) cyclic
Hamming Code using the
generator polynomial, 1 + X + X3
for the message sequence 0011
30
 The Cyclic code is implemented by the shift-
register encoder with (n-k) stages
rn-k-1
 Encoding starts with the feedback switch closed, the output switch in the
message bit position, and the register initialized to the all-zero state.
 The k message bits are shifted into the register and delivered to the transmitter.
 After k shift cycles, the register contains the b check bits.
 The feedback switch is now opened and the output switch is moved to the check
bits to deliver them to the transmitter.
Cyclic Codes - Implementation
31
 The shift-register encoder for the (7,4) Hamming Code has (7-4=3)
stages
 When the input message is 0011, after 4 shift cycles the redundancy bits
are delivered
Cyclic Codes – Implementation Example
32
• The shift-register encoder for the (7,4) Hamming Code has (7-4=3) stages
• When the input message is 1001, after 4 shift cycles the redundancy bits are
delivered
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
The check bits
is 011
Cyclic Codes – Implementation Exercise
33
• The shift-register encoder for the (7,4) Hamming Code has (7-4=3) stages
When the input message is 1100?
Cyclic Codes – Implementation Exercise
Code Parameters
• The Hamming distance
– The Hamming distance between a pair of code vectors, c1 and c2 that have
the same number of elements is defined as the number of locations in which
their respective elements differ
• The Hamming weight
– The Hamming weight of a code vector c is defined as the number of nonzero
elements in that code vector
– Equivalent to the distance between a code vector and an all-zero code vector
• The minimum distance
– The minimum distance of a linear block code is defined as the smallest
Hamming distance between any pair of code vectors in the code.
– Equivalent to the smallest Hamming weight of the difference between any pair
of code vectors
– Equivalent to the smallest Hamming weight of the nonzero code vectors in
the code
• Code rate
– The ratio between the number of original message bits and the number of bits
of the codeword
– For (n,k) code , code rate = k/n.
34
Codewords for (7,4) Hamming Code
Message Word Parity bits Code words Hamming weight
0000 000 0000000
0001 101 1010001
0010 111 1110010
0011 010 0100011
0100 011 0110100
0101 110 1100101
0110 100 1000110
0111 001 0010111
1000 110 1101000
1001 011 0111001
1010 001 0011010
1011 100 1001011
1100 101 1011100
1101 000 0001101
1110 010 0101110
1111 111 1111111
35
Min dist=?
Code Parameters
 The minimum distance of a code determines the error
detecting and correcting capability of the code
 Error detection is always possible when the number
of transmission errors in a codeword is less than the
minimum distance so that the erroneous word may
not be seen as another valid code vector
 Various degrees of error control capability
– Detect up to l errors per word , dmin >= l + 1
– Correct up to t errors per word, dmin >= 2t + 1
– Correct up to t errors and detect l > t errors per word,
dmin >= t + l + 1
 Code rate is a measure of the code efficiency
36
Next  Unit VI: Information and Channel Capacity

More Related Content

Similar to 06 ET 351_Lecture_06_January_07_2023.ppt

Survey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesSurvey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesIJTET Journal
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codesijwmn
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codesijwmn
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codesijwmn
 
Error Control Coding -Introduction
Error Control Coding -IntroductionError Control Coding -Introduction
Error Control Coding -IntroductionBurdwan University
 
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit Model
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit ModelSingle-Bit Parity Detection and Correction using Hamming Code 7-Bit Model
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit ModelUniversitas Pembangunan Panca Budi
 
Channel Coding .pptx
Channel Coding .pptxChannel Coding .pptx
Channel Coding .pptxMortadha96
 
DCN Error Detection & Correction
DCN Error Detection & CorrectionDCN Error Detection & Correction
DCN Error Detection & CorrectionRohan Bhatkar
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...IJECEIAES
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514IJRAT
 
BLOCK CODES,STBCs & STTCs.pptx
BLOCK CODES,STBCs & STTCs.pptxBLOCK CODES,STBCs & STTCs.pptx
BLOCK CODES,STBCs & STTCs.pptxFAIZAN SHAFI
 
Coding theory.pdf
Coding theory.pdfCoding theory.pdf
Coding theory.pdf230231060
 
Reed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and CorrectionReed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and Correctioninventionjournals
 

Similar to 06 ET 351_Lecture_06_January_07_2023.ppt (20)

Unit-4.pptx
Unit-4.pptxUnit-4.pptx
Unit-4.pptx
 
Survey on Error Control Coding Techniques
Survey on Error Control Coding TechniquesSurvey on Error Control Coding Techniques
Survey on Error Control Coding Techniques
 
error control coding
error control coding error control coding
error control coding
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
C04922125
C04922125C04922125
C04922125
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codes
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codes
 
New Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar CodesNew Structure of Channel Coding: Serial Concatenation of Polar Codes
New Structure of Channel Coding: Serial Concatenation of Polar Codes
 
Y03301460154
Y03301460154Y03301460154
Y03301460154
 
Error Control Coding -Introduction
Error Control Coding -IntroductionError Control Coding -Introduction
Error Control Coding -Introduction
 
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit Model
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit ModelSingle-Bit Parity Detection and Correction using Hamming Code 7-Bit Model
Single-Bit Parity Detection and Correction using Hamming Code 7-Bit Model
 
Channel Coding .pptx
Channel Coding .pptxChannel Coding .pptx
Channel Coding .pptx
 
DCN Error Detection & Correction
DCN Error Detection & CorrectionDCN Error Detection & Correction
DCN Error Detection & Correction
 
Turbo Code
Turbo Code Turbo Code
Turbo Code
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...
 
Paper id 312201514
Paper id 312201514Paper id 312201514
Paper id 312201514
 
BLOCK CODES,STBCs & STTCs.pptx
BLOCK CODES,STBCs & STTCs.pptxBLOCK CODES,STBCs & STTCs.pptx
BLOCK CODES,STBCs & STTCs.pptx
 
Coding theory.pdf
Coding theory.pdfCoding theory.pdf
Coding theory.pdf
 
Reed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and CorrectionReed Solomon Coding For Error Detection and Correction
Reed Solomon Coding For Error Detection and Correction
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

06 ET 351_Lecture_06_January_07_2023.ppt

  • 1. ET 351 Information Theory and Coding Lecture 06 Unit V: Channel Coding Single parity–check codes, linear systematic codes, forward Error correction codes, cyclic codes, decoding Semester I, 2022|2023 24 October, 2022 ~ 05 February, 2023 07 January, 2023
  • 2. 2 Channel Coding  Why? To increase the resistance of digital communication systems to channel noise via error control coding  How? By 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  Redundancy is introduced in the channel encoder so as to reconstruct the original source sequence as accurately as possible.
  • 3. 3 Error Control Coding  Error control for data integrity may be exercised by means of forward error correction (FEC).
  • 4. 4 Error Control Coding  The discrete source generates information in the form of binary symbols.  The channel encoder accepts message bits and adds redundancy to produce encoded data at higher bit rate.  The channel decoder uses the redundancy to decide which message bits were actually transmitted.  What is the implication?
  • 5. 5 The implication of Error Control Coding  Addition of redundancy implies the need for increased transmission bandwidth  It also adds complexity in the decoding operation  Therefore, there is a design trade-off in the use of error-control coding to achieve acceptable error performance considering bandwidth and system complexity.  Types of Error Control Coding • Block codes • Convolutional codes
  • 6. 6 Block Codes  Usually in the form of (n, k) block code where n is the number of bits of the codeword and k is the number of bits for the binary message  To generate an (n,k) block code, the channel encoder accepts information in successive k- bit blocks  For each block add (n-k) redundant bits to produce an encoded block of n-bits called a codeword  The (n-k) redundant bits are algebraically related to the k message bits
  • 7. 7 Block Codes  The channel encoder produces bits at a rate called the channel data rate, R0 s R k n R        0 Where Rs is the bit rate of the information source and n/k is the code rate
  • 8. 8  The channel encoder accepts information in successive k-bit blocks and for each block it adds (n-k) redundant bits to produce an encoded block of n-bits called a code-word.  The channel decoder uses the redundancy to decide which message bits were actually transmitted.  In this case, whether the decoding of the received codeword is successful or not, the receiver does not perform further processing.  In other words, if an error is detected in a transmitted codeword, the receiver does not request for retransmission of the corrupted code word. Forward Error-Correction (FEC)
  • 9. 9  Automatic-Repeat Request (ARQ) scheme • Upon detection of error, the receiver requests a repeat transmission of the corrupted code word • There are 3 types of ARQ scheme • Stop-and-Wait • Continuous ARQ with pullback • Continuous ARQ with selective repeat Forward Error-Correction (FEC)
  • 10. 10 Types of ARQ Scheme  Stop-and-wait • A block of message is encoded into a codeword and transmitted • The transmitter stops and waits for feedback from the receiver either an acknowledgement of a correct receipt of the codeword or a retransmission request due to error in decoding • The transmitter resends the codeword before moving onto the next block of message What is the implication of this?  Idle time during stop-and-wait is wasted and will reduce the data throughput
  • 11. 11 Types of ARQ Scheme  Continuous ARQ with pullback (or go-back-N)  Allows the receiver to send a feedback signal while the transmitter is sending another codeword  The transmitter continues to send a succession of codewords until it receives a retransmission request.  It then stops and pulls back to the particular codeword that was not correctly decoded and retransmits the complete sequence of codewords starting with the corrupted one.  What is the implication of this?  Code words that are successfully decoded are also retransmitted. This is a waste of resources
  • 12. 12 •Retransmits the codeword that was incorrectly decoded only. •Thus, eliminates the need for retransmitting the successfully decoded code words. Continuous ARQ with Selective Repeat
  • 13. 13  An (n, k) block code indicates that the codeword has n number of bits and k is the number of bits for the original binary message  A code is said to be linear if any two codewords in the code can be added in modulo-2 arithmetic to produce a third codeword in the code Linear Block Codes
  • 14. 14  The encoding and decoding functions involve the binary arithmetic operation of modulo-2  Rules for modulo-2 operations are: Modulo-2 addition 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 0 Modulo-2 multiplication 0 x 0 = 0 1 x 0 = 0 0 x 1 = 0 1 x 1 = 1 Modulo-2 Operations
  • 15. 15  The additional (redundancy) bits (n-k) are identical to k  Example : A (5,1) repetition code.  The original binary message has 1 bit. (5- 1=4) bits are added to the binary message to form a code word and the 4 additional bits are identical to the 1 bit binary message.  So, you have 2 code words either 11111 or 00000.  In the case of error, 1 will changed to 0 and/or vice versa and the decoder will know that it has wrongly received a code word. Linear Block Code – Example : The Repetition Code
  • 16. 16  Codes are based on the notion of parity.  The parity of a binary word is said to be even when the word contains and even number of 1s and odd parity when it has odd number of 1s.  A group of n-bits codewords are constructed from a group of n-1 message bits.  One check bit is added to the n-1 message bits such that all the codewords have the same parity  When the received codeword has different parity, we know that an error has occurred Example : n=3 and even parity  The binary messages are 00,01,10,11  The check bit is added such that all the code words have even parity  So, the resulting code words are 000,011,101 and 110 Parity-check Codes
  • 17. 17 Codes in which the message bits are transmitted in an unaltered form. Example : Consider an (n,k) linear block code There are 2k number of distinct message blocks and 2n number of distinct code words Let m0,m1,….mk-1 constitute a block of k-bits binary message By applying this sequence of message bits to a linear block encoder, it adds n-k bits to the binary message Let b0,b1,….bn-k-1 constitute a block of n-k-bits redundancy This will produce an n-bits code word Let c0,c1,….cn-1 constitute a block of n-bits code word Using vector representation they can be written in a row vector notation respectively as (c0 c1 …. cn ) , (m0 m1 …. mk-1 ) and (b0 b1 …. bn-k-1 ) Systematic Block Codes
  • 18. 18 Systematic Block Codes Using matrix representation, we can define c, the 1-by-n code vector = [c0 c1 …. cn ] m, the 1-by-k message vector =[m0 m1 …. mk-1 ] b, the 1-by-(n-k) parity vector = [b0 b1 …. bn-k-1 ] With a systematic structure, a code word is divided into 2 parts. 1 part occupied by the binary message only and the other part by the redundant (parity) bits. The (n-k) left-most bits of a code word are identical to the corresponding parity bits The k right-most bits of a code word are identical to the corresponding message bits
  • 19. 19 Systematic Block Codes  In matrix form, we can write the code vector,c as a partitioned row vector in terms of vectors m and b c=[b m]  Given a message vector m, the corresponding code vector, c for a systematic linear (n,k) block code can be obtained by a matrix multiplication c=m.G  Where G is the k-by-n generator matrix.
  • 20. 1 0 …. 0 0 1 …. 0 0 0 …. 1 EEE377 Lecture Notes 20 Systematic Block Codes – The generator matrix, G G, the k-by-n generator matrix has the general structure G = [Ik P] Where Ik is the k-by-k identity matrix and P is the k-by-(n-k) coefficient matrix Ik= P00 P01 ….. P0,n-k-1 P10 P11 ….. P1,n-k-1 Pk-1, 0 Pk-1,1 ….. Pk-1,n-k-1 P = The identity matrix simply reproduces the message vector for the first k elements of c The coefficient matrix generates the parity vector,b via b=m.P The elements of P are found via research on coding.
  • 21. 21  A type of (n, k) linear block codes with the following parameters • Block length, n = 2m - 1 • Number of message bits, k = 2m – m -1 • Number of parity bits : n-k=m • m >= 3 Hamming Code
  • 22. 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 22 A (7,4) Hamming code with the following parameters n=7; k=4, m=7-4=3 The k-by-(n-k) (4-by-3) coefficient matrix, P = The generator matrix, G is, G = 1 1 0 0 1 1 1 1 1 1 0 1 P = G = Hamming Code
  • 23. 23 Hamming Code – Example The parity vector,b is generated by b=m.P For a given block of message bits m = (m1 m2 m3 m4), we can work out the parity vector, b and hence the code word, c = mG for the (7,4) Hamming Code. Exercise: Try to work out the codewords for the (7,4) Hamming Code. Hamming Code
  • 24. Codewords for (7,4) Hamming Code Message Word Parity bits Code words 0000 000 0000000 0001 101 1010001 0010 111 1110010 0011 010 0100011 0100 011 0110100 0101 110 1100101 0110 100 1000110 0111 001 0010111 1000 110 1101000 1001 011 0111001 1010 001 0011010 1011 100 1001011 1100 101 1011100 1101 000 0001101 1110 010 0101110 1111 111 1111111 24
  • 25. 25 Cyclic Codes A subclass of linear codes having a cyclic structure. The code vector can be expressed in the form c = ( cn-1 cn-2 ……c1 c0 ) A new code vector in the code can be produced by cyclic shifting of another code vector. For example, a cyclic shift of all n bits one position to the left gives c’ = ( cn-2 cn-3 ……c1 c0 cn-1) c” = ( cn-3 cn-4 ……c1 c0 cn-1 cn-2) A second shift produces another code vector, c” Cyclic Code
  • 26. 26 The cyclic property can be treated mathematically by associating a code vector, c with the code polynomial, c(X) c(X) = c0 + c1X + c2X2+……cn-1Xn-1 The power of X denotes the positions of the codeword bits. The coefficients are either 1s and 0s. An (n,k) cyclic code is defined by a generator polynomial, g(X) g(X) = Xn-k + gn-k-1Xn-k-1 + ……. + g1X + 1 The coefficient g are such that g(X) is a factor of Xn + 1 Cyclic Codes
  • 27. 27 To encode an (n,k) cyclic code 1. Multiply the message polynomial , m(X) by Xn-k 2. Divide Xn-k.m(X) by the generator polynomial, g(X) to obtain the remainder polynomial, b(X) 3. Add b(X) to Xn-k.m(X) to obtain the code polynomial Cyclic Codes – Encoding Procedure
  • 28. 28 The (7,4) Hamming Code For message sequence 1001 The message polynomial, m(X) = 1 + X3 1. Multiply by Xn-k (X3) gives X3 + X6 2. Divide by the generator polynomial, g(X) that is a factor of Xn + 1 For the (7,4) Hamming code is defined by its generator polynomials, g(X) that are factors of X7 + 1 With n =7, we can factorize X7 + 1 into three irreducible polynomials X7 + 1 = (1 + X)(1 + X2 + X3)(1 + X + X3) Cyclic Codes - Example
  • 29. 29 For example we choose the generator polynomial, 1 + X + X3 and perform the division we get the remainder, b(X) as X2 + X 3. Add b(X) to obtain the code polynomial, c(X) c(X) = X + X2 + X3 + X6 So the codeword for message sequence 1001 is 0111001 Cyclic Codes - Example Find the codeword for (7,4) cyclic Hamming Code using the generator polynomial, 1 + X + X3 for the message sequence 0011
  • 30. 30  The Cyclic code is implemented by the shift- register encoder with (n-k) stages rn-k-1  Encoding starts with the feedback switch closed, the output switch in the message bit position, and the register initialized to the all-zero state.  The k message bits are shifted into the register and delivered to the transmitter.  After k shift cycles, the register contains the b check bits.  The feedback switch is now opened and the output switch is moved to the check bits to deliver them to the transmitter. Cyclic Codes - Implementation
  • 31. 31  The shift-register encoder for the (7,4) Hamming Code has (7-4=3) stages  When the input message is 0011, after 4 shift cycles the redundancy bits are delivered Cyclic Codes – Implementation Example
  • 32. 32 • The shift-register encoder for the (7,4) Hamming Code has (7-4=3) stages • When the input message is 1001, after 4 shift cycles the redundancy bits are delivered 1 0 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 The check bits is 011 Cyclic Codes – Implementation Exercise
  • 33. 33 • The shift-register encoder for the (7,4) Hamming Code has (7-4=3) stages When the input message is 1100? Cyclic Codes – Implementation Exercise
  • 34. Code Parameters • The Hamming distance – The Hamming distance between a pair of code vectors, c1 and c2 that have the same number of elements is defined as the number of locations in which their respective elements differ • The Hamming weight – The Hamming weight of a code vector c is defined as the number of nonzero elements in that code vector – Equivalent to the distance between a code vector and an all-zero code vector • The minimum distance – The minimum distance of a linear block code is defined as the smallest Hamming distance between any pair of code vectors in the code. – Equivalent to the smallest Hamming weight of the difference between any pair of code vectors – Equivalent to the smallest Hamming weight of the nonzero code vectors in the code • Code rate – The ratio between the number of original message bits and the number of bits of the codeword – For (n,k) code , code rate = k/n. 34
  • 35. Codewords for (7,4) Hamming Code Message Word Parity bits Code words Hamming weight 0000 000 0000000 0001 101 1010001 0010 111 1110010 0011 010 0100011 0100 011 0110100 0101 110 1100101 0110 100 1000110 0111 001 0010111 1000 110 1101000 1001 011 0111001 1010 001 0011010 1011 100 1001011 1100 101 1011100 1101 000 0001101 1110 010 0101110 1111 111 1111111 35 Min dist=?
  • 36. Code Parameters  The minimum distance of a code determines the error detecting and correcting capability of the code  Error detection is always possible when the number of transmission errors in a codeword is less than the minimum distance so that the erroneous word may not be seen as another valid code vector  Various degrees of error control capability – Detect up to l errors per word , dmin >= l + 1 – Correct up to t errors per word, dmin >= 2t + 1 – Correct up to t errors and detect l > t errors per word, dmin >= t + l + 1  Code rate is a measure of the code efficiency 36 Next  Unit VI: Information and Channel Capacity