Professional Documents
Culture Documents
Reliability
and
Channel Coding
1
The Three Main Sources of Transmission Errors
• Noise
– Thermal / white noise
• Interference
– electromagnetic radiation emitted from devices such as electric motors
– background cosmic radiation can cause noise that can disturb radio transmissions and
signals traveling across wires
• Cosmit radiation consists of energetic charged particles, such as protons and Helium ions, moving
through space
• When these particles enter the Earth's atmosphere they collide with, and disrupt, atoms in our
atmosphere, producing secondary, less intense, radiation
• Distortion
– All physical systems distort signals
– As a pulse travels along an optical fiber, the pulse disperses
– Wires have properties of capacitance and inductance
• that block signals at some frequencies while admitting signals at other frequencies
– Placing a wire near a large metal object can change the set of frequencies that can
pass through the wire
• Metal objects can block some frequencies of radio waves, while passing others
• Attenuation
– As a signal passes across a medium, the signal becomes weaker
• signals on wires or optical fibers become weaker over long distances, just as a radio signal
becomes weaker with distance
Ways to Improve Noise
• Increase the signal-to-noise ratio (either by increasing the
signal or lowering noise if possible)
– Physical transmission system is always susceptible to errors
– It may not be possible to change the signal-to-noise ratio
• Mechanisms like shielded wiring can help lower noise
• Increase capacity by reducing BER
– Reducing noise improves SNR and thus BER
Types of Error
• An error occurs when a bit is altered between
transmission and reception
• Single bit errors
– only one bit altered Higher data rate
à more errors
– caused by white noise
• Burst errors
– contiguous sequence of B bits in which first last and any
number of intermediate bits in error
– caused by impulse noise or by fading in wireless
– effect greater at higher data rates
• Erasure
• Sometimes a signal is neither clearly 1 nor clearly 0, but falls in an
ambiguous region, which is known as an erasure
6
Two Strategies for Handling Channel
Errors
• A variety of mathematical techniques have been developed
that overcome errors during transmission and increase
reliability
– Known collectively as channel coding
• The techniques can be divided into two broad categories:
– Forward Error Correction (FEC) mechanisms
– Automatic Repeat reQuest (ARQ) mechanism
• In either case we are adding overhead
– There is always a tradeoff - adding redundancy vs. error detection
• What is the impact of channel error?
ARQ Mechanism
• Not appropriate for wireless applications
– bit error rate is high causing lots of retransmissions
– when propagation delay long (satellite) compared with frame
transmission time, resulting in retransmission of frame in error
plus many subsequent frames
Block and Convolutional Error Codes
• The two types of FEC techniques satisfy separate needs:
• Block Error Codes
– It divides the data to be sent into a set of blocks
– It attaches extra information known as redundancy to each block
– The encoding for a given block of bits depends only on the bits
themselves, not on bits that were sent earlier
– They are memoryless in the sense that the encoding mechanism
does not carry state information from one block of data to the next
• Convolutional Error Codes
– It treats data as a series of bits, and computes a code over a
continuous series
– Thus, the code computed for a set of bits depends on the current
input and some of the previous bits in the stream
– Convolutional codes are said to be codes with memory
9
Error Correction Motivation
• Errors can be detected and corrected
– Error correction is more complex
• Correction of detected errors usually requires data
block to be retransmitted
• Instead need to correct errors on basis of bits received
Error Correction Basic Idea
• Adds redundancy to transmitted message
• Can deduce original despite some errors
– Errors are detected using error-detecting code
– Error-detecting code added by transmitter
– Error-detecting code are recalculated and checked by receiver
• Basic idea
– Errors are detected using error-detecting code
– Error-detecting code added by transmitter
– error-detecting code are recalculated and checked by receiver
• Parity bit
– Odd (odd parity)
• If it had an even number of ones, the parity bit is set to a one, otherwise
it is set to a zero
• (P=0 if odd ones)à always odd number of ones in the frame
• Asynchronous applications and Standard in PC memory
– Even (even parity)
• Synchronous applications
F(1110001)à
odd parity 1 111 000 1
Parity Bit + Data Block
Error Detection – Parity Check
An Example Block Error Code:
Single Parity Checking
15
Error Detection Basic Mechanism
11100111
11011101
00111001
10101001
10101010
18
Hamming Distance:
A Measure of a Code's Strength
• Hardware implementation
– One way to compute the Hamming distance consists of taking the
exclusive or (xor) between two strings
– Then, counting the number of 1 bits in the answer
• For example, consider the Hamming distance between
strings 110 and 011
– The xor of the two strings is:
19
The Tradeoff Between Error Detection
and Overhead
• A large value of dmin is desirable
– because the code is immune to more bit errors, if fewer than dmin bits
are changed, the code can detect that error(s) occurred
• The maximum number of bit errors that can be detected:
20
Error Detection and Correction
22
transmits n bits which is exactly divisible by
CRC generator and checker some number (predetermined divisor)
receiver divides frame by that number
n-k bit
k + (n-k) bits
predetermined n-k+1 bit
divisor
n-k bit
24
CRC generator and checker
predetermined divisor
CRC generator and checker
• At the Receiver:
– Example : Division in CRC Decoder
Known
divisor
Another CRC Example
Message: 1010001101
Pattern (divisor): 110101
F ( x) 0
= Q( x) +
P( x) P( x)
Example of CRC
• Send • Receive
– M(x) = 110011 à x5+x4+x+1 (6 bits)
– P(x) = 11001 à x4+x3+1 (5 bits, n = 4) 11001 1100111001
à 4 bits of redundancy
11001
– Form xnM(x) à 110011 0000
à x9+x8+x5+x4 11001
– Divide xnM(x) by P(x) to find C(x)
11001
100001 00000
11001 1100110000
11001 No remainder
10000 à Accept
11001
1001 à C(x)
F ( x) 0
Send the block 110011 1001 = Q( x) +
P( x) P( x)
CRC Example
Message: 1010001101
Pattern (divisor): 110101
Transmit: 1010001101 + 01110
1010001101 + 01110
1010001101
n-k bit
k + (n-k) bits
1010001101 + 01110
n-k bit
00000
01110
Block Code –
Error Detection and Correction
Table1
• Hamming Distance
– The Hamming distance between two words is the number of differences
between corresponding bits.
– Easily found by applying the XOR operation on the two words and count the
number of 1s in the result.
– Ex : Hamming distance d (000,011) = 2
– Ex : Hamming distance d (10101, 11110) = 3
Sol: = 2
Block Code –
Error Detection and Correction
t= 1
⎢ d − 1⎥
t = ⎢ min ⎥
⎣ 2 ⎦
Error Detection and Correction
• The larger the dmin the better
• The code should be relatively easy to encode/decode
• We like n-k to be small à reduce bandwidth
• We like n-k to be large à reduce error rate
• Assume n=4, k=2 à Code System
rate ½ Performance
• Given BER, coding can
improve Eb/No
– Lower Eb/No is required
– Code gain is the reduction in
dB in Eb/No for a given BER
• E.g., for BER=10^-6 à
code gain is 2.77 dB
• Energy per coded bit (Eb) =
½ data bit (Eb)
– Hence, BER will be 3dB less Channel bit error rate
– This is because Ebit=2xEdata
• For very high BER, adding 10^-6
coding requires higher Eb
– Not due to overhead
Error Correction with Row and Column
(RAC) Parity
• Imagine an array of 3-rows and 4-columns, with a parity bit
added for each row and for each column
– this arrangement is known as a Row and Column (RAC) code
• Example RAC has n= 20, which means that it is a (20, 12) code
• Total of 20 bits; 12 data bits
37
Error Correction with Row and Column
(RAC) Parity
• How error correction works? Assume that one of the bits in
the figure below is changed during transmission:
– When the receiver arranges the bits into an array and parity bits are
recalculated
• two of the calculations will disagree with the parity bits received
• a single bit error will cause two calculated parity bits to disagree with the
parity bit received