Undergraduate course content:
Introduction: Types and sources of data, communication models, standards.
Data transmission: techniques, transmission media and characteristics.
Information theory: Information sources, information measure, entropy, source codes.
Line codes: characteristics, return-to-zero and non-return-to-zero signaling, bipolar alternate mark inversion, code (radix, redundancy and efficiency), important codes in current use, frequency spectra characteristics of common line codes, receiver clock synchronization, optical fiber systems, scramblers.
Modems: characteristics, modulation, equalization, control, V-standards.
Error Control: Transmission impairments, forward error control, linear block codes, feedback error control.
2. Digital transmission systems introduce errors
Circuit Errors:
Background noise (electrical phenomenon)
Impulse noise (spike)
White noise
Attenuation
Envelope delay distortion (different propagation
delay)
Phase jitter
Echo
Crosstalk
Data Communications Dr. Randa Elanwar 2012-2013 2
3. Applications require certain reliability level
Data applications require error-free transfer
Voice & video applications tolerate some errors
Error control used when transmission system does not
meet application requirement
Error control ensures a data stream is transmitted to a
certain level of accuracy despite errors
Two basic approaches:
Error detection & retransmission (ARQ)
Forward error correction (FEC)
Data Communications Dr. Randa Elanwar 2012-2013 3
5. Signal received may differ from signal
transmitted
Analog signals suffer from degradation of
signal quality
Digital signals suffer from bit errors
Caused by
Attenuation
Delay distortion
Noise
Data Communications Dr. Randa Elanwar 2012-2013 5
6. Signal strength falls off with distance
Depends on medium
Received signal strength:
must be enough to be detected
must be sufficiently higher than noise to be received
without error
Attenuation is an increasing function of
frequency; higher frequencies suffer from more
attenuation. Can distort the signal.
Solution: Equalization. Boost higher frequency
components.
Data Communications Dr. Randa Elanwar 2012-2013 6
7. Only in guided media
Propagation velocity varies with frequency
Velocity highest near center frequency
Results in phase shift at different frequencies
“Overlapping” bits
Solution: Equalization
Data Communications Dr. Randa Elanwar 2012-2013 7
8. Additional signals inserted between transmitter and
receiver
Thermal
Due to thermal agitation of electrons
Uniformly distributed
White noise
Intermodulation
Signals that are the sum and difference of original frequencies
sharing a medium
Crosstalk
A signal from one line is picked up by another
Impulse
Irregular pulses or spikes
e.g. External electromagnetic interference
Short duration
High amplitude
Data Communications Dr. Randa Elanwar 2012-2013 8
10. There are many ways to prevent errors:
Shielding (adding insulation)
Moving cables away from noise sources
Changing multiplexing type (FDMTDM)
Tuning transmission equipment and improving
connection quality
Using amplifiers and repeaters (attenuation)
Equalization (delay distortion)
Adaptive protocols: adaptive size packet protocol &
dynamic speed shift
Echo suppressor
Data Communications Dr. Randa Elanwar 2012-2013 10
11. Can be called: feedback error control and can
be done by different methods:
Echo checking every character
Vertical redundancy checking (VRC) or parity
checking
Longitudinal redundancy checking (LRC) or block
check character (BCC)
Checksum
Cyclic redundancy checking (CRC)
CRC-16 or CRC-32
Data Communications Dr. Randa Elanwar 2012-2013 11
14. Redundancy: Single parity check code adds 1
redundant bit per k information bits:
overhead = 1/(k + 1)
Coverage: all error patterns with odd # of errors
can be detected. Is it possible to detect more errors
if we add more check bits?
Yes, with the right codes
If codewords close to each other (slight differences)
then detection failures will occur. Good codes
should maximize separation between codewords
Data Communications Dr. Randa Elanwar 2012-2013 14
17. The receiver computes the parity check from
the received code word and compare them to
the received parity bits (redundancy).
If the computed parity is equal to the received
parity then data is accepted. Otherwise, a feed
back control signal is sent to the transmitter
indicating that undetectable error has
happened and re-transmission is required. This
is called “Automatic Repeat Request: ARQ”
Data Communications Dr. Randa Elanwar 2012-2013 17
18. In telecommunication, information theory, and
coding theory, forward error correction (FEC)
or channel coding is a technique used for
controlling errors in data transmission over
unreliable or noisy communication channels.
The central idea is the sender encodes their
message in a redundant way by using an error-
correcting code (ECC).
Data Communications Dr. Randa Elanwar 2012-2013 18
19. Data Communications Dr. Randa Elanwar 2012-2013 19
Taxonomy of coding in telecommunications
Automatic repeat request
(ARQ) coding
to correct errors by using a
feedback channel
20. A basic FEC digital communication system:
Data Communications Dr. Randa Elanwar 2012-2013 20
Source coding (data
compression): the process of
efficiently converting the
output of a source into a
sequence of binary digit.
Channel coding The
introduction of redundancy
in the information sequence
for the purpose of combating
the effects of noise and
interference in the channel.
21. A basic FEC digital communication system:
Data Communications Dr. Randa Elanwar 2012-2013 21
Modulation A process that converts
the digital information sequences
into waveforms that are compatible
with the characteristics of the
channel.
Channel estimation Generally,
channels may introduce distortion
to the source signal, and the
characteristics of the
channel/distortion need to be
estimated or identified at the
receiver end, in order to reduce or
eliminate the distortion and recover
the original signal. This is called
channel estimation or identification.
22. Answer: The redundancy allows the
receiver to detect a limited number of
errors that may occur anywhere in the
message, and often to correct these
errors without retransmission.
FEC gives the receiver the ability to
correct errors without needing a reverse
channel to request retransmission of
data, but at the cost of a fixed, higher
forward channel bandwidth.
FEC is then applied in situations where
retransmissions are costly or impossible,
such as one-way communication links
and when broadcasting to multiple
receivers in multicast.
FEC information is added to mass storage
devices to enable recovery of corrupted
data, and is widely used in modems.
Data Communications Dr. Randa Elanwar 2012-2013 22
23. The maximum fractions of errors or of missing bits that
can be corrected is determined by the design of the
FEC code, so different forward error correcting codes
are suitable for different conditions.
A channel coding taxonomy:
Data Communications Dr. Randa Elanwar 2012-2013 23
24. Block codes work on fixed-size blocks (packets) of
bits or symbols of predetermined size. Practical
block codes can generally be decoded in
polynomial time to their block length.
Convolutional codes work on bit or symbol
streams of arbitrary length. They are most often
decoded with the Viterbi algorithm, though other
algorithms are sometimes used. Viterbi decoding
allows optimal decoding, but at the expense of
exponentially increasing complexity.
Data Communications Dr. Randa Elanwar 2012-2013 24
25. In coding theory, a linear code is an error-correcting
code for which any linear combination of codewords is
also a codeword. Linear codes are traditionally
partitioned into block codes and convolutional codes.
Linear codes allow for more efficient encoding and
decoding algorithms than other codes.
Example:
(Modular addition: 0 + 0 = 0, 1 + 1 = 0, 0 + 1 = 1)
Data Communications Dr. Randa Elanwar 2012-2013 25
V1 = 0 0 0 0
V2 = 1 0 0 0
V3 = 1 1 0 0
V4 = 0 1 0 0
V1 + any vector = same vector
V2 + V3 = V4
V3 + V4 = V1
26. We will only consider one of the two main categories of FEC
codes: block codes
Error-correcting codes are used to reliably transmit digital data
over unreliable communication channels subject to channel noise.
When a sender wants to transmit a possibly very long data stream
using a block code, the sender breaks the stream up into pieces of
some fixed size.
Each such piece is called message (k bits) and the procedure given
by the block code encodes each message individually into a
codeword (n bits), also called a block in the context of block codes.
n > k i.e., the codewords in a linear block code are blocks of
symbols which are encoded using more symbols than the original
message to be sent (redundancy).
Data Communications Dr. Randa Elanwar 2012-2013 26
27. Note: feedback control appends redundancy in the
form of parity check without encoding the
information, whereas, FEC redundantly encodes
the information message to a larger block of
information.
Note: in feedback control receiver eliminates
redundant bits to recover information, whereas, in
FEC receiver uses some decoding mechanism to
recover the original messages from the received
blocks.
In FEC the performance and success of the overall
transmission depends on the parameters of the
channel and the block code.
Data Communications Dr. Randa Elanwar 2012-2013 27
28. The rate R
The rate of a block code is defined as the ratio between its
message length and its block length:
R = k / n
The number k is called the message length or dimension of a
block code or number of bases (rank). The block length n of
a block code is the number of symbols in a block.
A large rate means that the amount of actual message per
transmitted block is high. In this sense, the rate measures the
transmission speed and the quantity (1-R) measures the
overhead that occurs due to the encoding with the block
code.
Data Communications Dr. Randa Elanwar 2012-2013 28
29. The distance d
The distance or minimum distance of a block
code is the minimum number of positions in
which any two distinct codewords differ.
Since any two codewords will disagree in at
least one position, so the distance of any code is
at least 1.
A larger distance allows for more error
correction and detection.
Data Communications Dr. Randa Elanwar 2012-2013 29
30. The weight of a codeword is the number of its
elements that are nonzero and the distance
between two codewords is the Hamming distance
between them, that is, the number of elements in
which they differ.
The distance d of a code is minimum weight of its
nonzero codewords, or equivalently, the minimum
distance between distinct codewords. A linear
code of length n, dimension k, and distance d is
called an [n,k,d] code.
Data Communications Dr. Randa Elanwar 2012-2013 30
31. The entire code C (which may be very large) may
be represented as the span of a minimal set of
codewords (known as a basis). These basis
codewords are often collected in the rows of a
matrix G known as a generating matrix for the
code C.
A code of length n and of rank k (i.e., having k
code words in its basis and k rows in its generating
matrix) is generally referred to as an (n, k) code.
Linear block codes are frequently denoted as [n, k,
d] codes, where d refers to the code's minimum
Hamming distance between any two code words.
Data Communications Dr. Randa Elanwar 2012-2013 31
32. Block codes error detection and correction rules:
A code with distance d allows the receiver to detect up
to d-1 transmission errors since changing d-1 positions
of a codeword can never accidentally yield another
codeword.
Furthermore, if no more than (d-1)/2 transmission
errors occur, the receiver can uniquely decode the
received word to a codeword. This is because every
received word has at most one codeword at distance
(d-1)/2 .
If more than (d-1)/2 transmission errors occur, the
receiver cannot uniquely decode the received word in
general as there might be several possible codewords.
Data Communications Dr. Randa Elanwar 2012-2013 32
33. Examples of block codes are Reed–Solomon codes,
Hamming codes, Hadamard codes, Expander codes,
Golay codes, and Reed–Muller codes.
Example: Hamming codes
As the first class of linear codes developed for error
correction purpose, the Hamming codes has been
widely used in digital communication systems.
For example, the [7,4,3] Hamming code is:
a linear binary code which represents 4-bit messages using 7-bit
codewords.
Two distinct codewords differ in at least three bits (d).
As a consequence, up to two errors per codeword can be
detected (d-1) and a single error can be corrected ([d-1]/2).
This code contains 24=16 codewords
Data Communications Dr. Randa Elanwar 2012-2013 33
34. For any positive integer r2 , there exists a [2r-
1,2r-r-1,3]2 Hamming code. Since d = 3, this
Hamming code can correct 1-bit error.
Example : The linear block code with the
following generator matrix is a [7,4,3]2
Hamming code
Data Communications Dr. Randa Elanwar 2012-2013 34
35. To compose the code V corresponding to any
information message U, all we have to do is to multiply
the message vector to the generator matrix G.
V = U.G
If U = 1010
then, V = 0 0 1 1 0 1 0
Similarly for the whole 16 messages we can get the
corresponding 16 linear block codes
Weight(V) = 3
If V2 = 1 0 1 1 0 0 1, then distance between V and V2 =
d(V,V2) = 3
Data Communications Dr. Randa Elanwar 2012-2013 35