LECTURE:
CHANNEL CODING
INFO 3180 – WIRELESS NETWORKS
HAO MA
DIGITAL WIRELESS SYSTEM
Transmitter Antenna
Digital Power
Encode Modulation
Data Amplifier
Receiver
Digital Power
Decode Demodulation
Data Amplifier
Antenna
CHANNEL CODING
• 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 the message in
a redundant way by using an error-correcting
code (ECC).
ERROR DETECTION
• A transmits bit to B
• B retrieves bits
• Are they the same as what A sent?
• Did error occur?
• Retransmit the information?
ERROR CORRECTION
• Fix the error in the transmitted message
• Need to know not only that error occurred but which bits were
affected
• Needed if the overhead to retransmit data is very high or is not
likely to result in an improvement.
BIT ERROR
• one bit is damaged
• Less likely
• With Gbps speeds, one bit requires about 1
nanosecond. Most interference lasts longer than a
nanosecond, creating burst error.
INTERLEAVING
Interleaving is frequently used in digital communication and storage systems
to improve the performance of FEC codes. In many communication systems,
errors typically occur in bursts rather than independently. If the number of
errors within a code word exceeds the error-correcting code’s capability, it
fails to recover the original code word. Interleaving ameliorates this problem
by shuffling source symbols across several code words, thereby creating a
more uniform distribution of errors. Therefore, interleaving is widely used
for burst error-correction. [1]
INTERLEAVING
CODE WORD
Usual approach
• Data word: group of k bits
• Code word: data word followed by more bits calculated from the
data.
Data word Extra bits
Code word
• How many more depends on the approach
REPETITION CODE
A simplistic example of FEC is to transmit each data bit n times,
which is known as a (n,1) Repetition code.
For (3,1) repetition code, through a noisy channel, a receiver might
see 8 versions of the output, see table below.
Triplet received Interpreted as
000 0 (error free)
001 0
010 0
100 0
111 1 (error free)
110 1
101 1
011 1
REPETITION CODE
This allows an error in any one of the three samples to be corrected
by “majority vote” or “democratic voting”. The correcting ability of
this (3,1) repetition code is:
•Up to 1 bit of triplet in error, or
•up to 2 bits of triplet omitted (cases not shown in table).
Triplet received Interpreted as
000 0 (error free)
001 0
010 0
100 0
111 1 (error free)
110 1
101 1
011 1
1-BIT PARITY-CHECK CODE
• Even parity:
• add one bit to the end of a string to make the total number of
1s even
• Odd parity:
• similar but total is odd
• We’ll assume even parity from this point and beyond
EXAMPLE FOR EVEN PARITY
BIT
data is 0101101100101100
Add a 0 for parity.
Transmitted message is 0101101100101100 0
data is 0101101110101100
Add a 1 for even parity.
Transmitted message is 0101101110101100 1
XORING
EVEN PARITY BIT
Bit string is b1b2b3b4…..bn
P (parity bit) = b1Åb2 Å b3 Å b4 Å … Å bn
Where Å is the exclusive-OR operation
Receiver performs an ex-or operation among all bits in the code word
• Result is 1 Þ an error
• Result is 0 Þ no error detected
• This is not the same as no error.
Parity detects any errors affecting an odd number of bits.
Assuming random noise, this is about 50% of all errors.
TWO-DIMENSIONAL PARITY-
CHECK CODE
Example: Two-dimensional parity-check code
TWO-DIMENSIONAL PARITY-
CHECK CODE
Example: Two-dimensional parity-check code. From the figure, we
can see that two-dimensional parity-check code can correct 1 error.
TWO-DIMENSIONAL PARITY-
CHECK CODE
Example: Two-dimensional parity-check code