data communications (under graduate course) lecture 5 of 5
TRANSCRIPT
Digital transmission systems introduce errorsCircuit 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
Applications require certain reliability level Data applications require error-free transfer Voice & video applications tolerate some errors
Error control used when transmission system does notmeet 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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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 vectorV2 + V3 = V4V3 + V4 = V1
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
Note: feedback control appends redundancy in the form of parity check without encoding the information, whereas, FEC redundantly encodesthe 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
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
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
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
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
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
Examples of block codes are Reed–Solomon codes, Hamming codes, Hadamard codes, Expander codes, Golay codes, and Reed–Muller codes.
Example: Hamming codesAs 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
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
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