2. Introduction
• The noise present in a channel creates unwanted errors between the
input and the output sequences of a digital communication system
• The error probability should be very low, nearly ≤ 10-6 for a reliable
communication
• In 1948, Shannon demonstrated that by proper encoding of the
information, error induced by a noisy channel can be reduced to any
desired level without sacrificing the rate of information transmission
• Hence, use of coding for error control has become an integral part in
the design of modern communication system
4. Rationale for coding
• The two key parameters for designing a cost effective and reliable digital
communication system are
• Signal power
• Channel bandwidth
• These two along with PSD of noise ‘η’ determine bit signal energy to noise
power ratio (𝐸𝑏 𝑁)
• This ratio in turn determines the bit error rate for various digital
modulation schemes
• Practical aspects place limit on the value of (𝐸𝑏 𝑁)
• In practice, it is impossible to provide the acceptable data quality with
whatever modulation scheme we adopt
• Hence, the only practical option available to improve the data quality is
“Error Control Coding”
5. Error control coding
• Error control coding is the coding procedure done to control the
occurrences of errors
• Error control coding is nothing but calculated use of redundancy.
• These techniques help in error detection and error correction
• The functional blocks that accomplish error control coding are the
“channel encoder” at the transmitter and “channel decoder” at the
receiver
• Hence error control coding is also termed as “channel encoding”
6. Channel encoder
• Channel encoder at the transmitter systematically adds digits to the
transmitted message digits.
• These additional digits carry no information but makes it possible for
the channel decoder to detect and correct errors in the information
bearing digits
• This reduces the overall probability of errors
• The additional digits which carry no information are called ‘redundant
digits’ or ‘check bits’
11. Types of channel codes
• There are several error correcting codes
• These codes are classified under two basic categories
• Block codes
• Convolutional codes
16. Linear block codes
• In any error correcting coding scheme a number of redundant bits
must be included in the original message inorder to recover that
message at the receiver
• These redundant bits are determined by algebraic methods
17. Linear block codes
• All block codes are defined by their codeword length ‘n’ and message
length ‘k’.
• When referring to block code it is written as a (n, k) block code
18. Linear block codes
• n-digit codeword is made up of k-information digits and (n-k)
redundant parity check digits.
• The rate or efficiency for this code is k/n.
19. Systematic block codes
• A systematic block code consists of vectors whose 1st k elements (or
last k-elements) are identical to the message bits, the remaining (n-k)
elements being check bits.
21. Linear block codes
• The most common and least expensive type of block code is the
simple parity check code.
• In this technique, a redundant bit called parity bit, is appended to
every data unit so that the number of 1s in the unit (including the
parity becomes even).
24. Linear block codes
• Error detection and correction of a block code can be improved by
increasing the number of redundant bits
25. Linear Block Codes
• Systematic code: information digits are explicitly transmitted together
with the parity check bits.
• For the code to be systematic, the k-information bits must be
transmitted contiguously as a block, with the parity check bits making
up the code word as another contiguous block.
26. Linear Block Codes
• A systematic linear block code will have a generator matrix of the
form:
28. Parity check matrix (H)
• Will enables decoding the received vectors.
• For each (kxn) generator matrix G, there exists an (n-k)xn matrix H,
such that rows of G are orthogonal to rows of H i.e., GHT = 0, where
HT is the transpose of H.
• To fulfil the orthogonal requirements for a systematic code, the
components of H matrix are written as:
47. Syndrome decoding
• Let c be transmitted and r be received, where
r = c + e
e = error pattern = e1e2..... en, where
Consider the (7,4) code.
(1) Let 1101000 be transmitted and 1100000 be received.
Then: e = 0001000 ( an error in the fourth location)
e i
i
th
1 if the error has occured in the location
0 otherwise
+
c
e
r
48. Syndrome decoding
• Let c be transmitted and r be received, where
r = c + e
e = error pattern = e1e2..... en, where
The weight of e determines the number of errors.
If the error pattern can be determined, decoding can be achieved by:
c = r + e
e i
i
th
1 if the error has occured in the location
0 otherwise
+
c
e
r
50. • Consider a (6,3) LBC parity matrix is given 𝑃 =
1 0 1
0 1 1
1 1 0
received
code vector is R=[1 1 0 0 1 0]. Detect and correct the single error that
has occurred due to noise
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74. For a linear lock code, the generator matrix is
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
G
•Compute the syndrome for the received vector [0110100]
•Correct the error if any
Realize the syndrome calculation circuit
75. • If C is a valid code vector as calculated from C=DG, then prove that,
CHT=0, where HT is the transpose of parity check matrix
Consider the generator matrix
76. Let i=3, then third row of [G] is given by
G3=[ 0 0 1 0 1 1 1]
3rd element (4+2)th element
77. • And parity check matrix
j=2, then second row of [H] is given by
H2=[ 1 1 1 0 0 1 0]
3rd element (4+2)th element
83. • For the systematic (6,3) code, the code vector is given in table. Find
the hamming weight of each code vector and the minimum distance
dmin
84.
85. Types of errors
Single-bit Error
The term single-bit error means that only one bit of given data is
changed from 1 to 0 or from 0 to 1 as shown in Fig
86. Types of errors
Burst Error
The term burst error means that two or more bits in the data unit have
changed from 0 to 1 or vice-versa.
Note that burst error doesn’t necessary means that error occurs in
consecutive bits.
The length of the burst error is measured from the first corrupted bit to
the last corrupted bit. Some bits in between may not be corrupted.