Digital Communications
Lecture # 22
Chapter 6: Channel Coding I
Structured Sequences
Linear Block Codes
Error Detecting and Correcting Capability
Cyclic Codes
Block Codes

Channel Coding Definition
Channel coding refers to the class of signal
transformation designed to improve
communication performance by enabling the
transmitted signals to better withstand effects
of various channel impairments, such as
noise, interference and fading.

Channel Coding: Part 1

6.2 Types of Error control
Error detection and retransmission
Forward error correction
Terminal Connectivity
Simplex
Half duplex
Full duplex
Figure 6.6: Terminal connectivity classifications (a) Simplex (b) Half-duplex
(c) Full-duplex

Automatic Repeat Request
ARQ vs. FEC
ARQ is much simpler than FEC and need no redundancy.
ARQ is sometimes not possible if
A reverse channel is not available or the delay with ARQ
would be excessive
The retransmission strategy is not conveniently implemented
(Video broadcasting)
The expected number of errors, without corrections, would
require excessive retransmissions

Figure 6.7: Automatic Repeat Request (ARQ) (a) Stop and wait ARQ (b)
Continuous ARQ with pullback (c) Continuous ARQ with selective repeat

6.3 Structured Sequences
Block codes
Convolutional codes
Turbo codes
In case of block codes, encoder transforms each
k-
bit data block
into a larger block of
n-
bits called code bits or or channel symbol
The
(n-k)-
bits added to each data block are called
redundant bits
,
parity bits
or
check bits
They carry no new information
Ratio of redundant bits to data bits:
(n-k)/k
is called
redundancy of
code
Ratio of data bits to total bits,
k/n
is called
code rate
6.3.2 Code Rate and Redundancy

6.3.3 Parity-Check Codes
Single-parity-Check Code
Parity check codes use linear sums of the information bits, called
parity symbols or parity bits, for error detection or correction.
Even Parity Example:

Rectangular Code
Also called a product code, can be thought of as a parallel code
structure. The rate of the code k/n is
(
1)(
1)
MN
k
n
M
N
=
+
+
Figure 6.8: Parity checks for parallel structure

6.3.4 Why Use Error-Correction Coding
Figure 6.9:Comparison of typical coded versus uncoded error performance
Trade-Off 1: Error Performance vs. Bandwidth (A to C rather than
B)
Trade-Off 2: Power versus Bandwidth (D to E)
Trade-Off 3: Data Rate versus Bandwidth (D to F and than to E)
Trade-Off 4: Capacity versus Bandwidth (like in CDMA)

6.4 Linear block Codes
6.4.1 Vector Spaces
The set of all binary n-tuples is called a vector space over the binary
field of 0 and 1
Addition
Multiplication
6.4.2 Vector Subspaces
A subset S of the vector space is called a subspace if
The all-zeros vector is in S
The sum of any two vectors in S is also in S ( Closure
property./Linear property) e.g. { 0000 0101 1010 1111 }
(the code will be linear only if condition 2 satisfied)
0
1
1
1
0
1
1
1
0
0
0
0
=
⊕
=
⊕
=
⊕
=
⊕
1
1
1
0
0
1
0
1
0
0
0
0
=
⋅
=
⋅
=
⋅
=
⋅

The subset chosen for the code should include as many as
elements to reduce the redundancy but they should be as apart as
possible to maintain good error performances
Figure 6.10: Linear block-code structure

6.4.3 A (6.3) Linear Block Code Examples