Anda di halaman 1dari 22

Channel Coding

(Error Control Coding)

Prepared by:
Engr. I. J. Manguera
Introduction

Error Control Coding (ECC)


Extra bits are added to the data at the
transmitter (redundancy) to permit error
detection or correction at the receiver
Done to prevent the output of erroneous bits
despite noise and other imperfections in the
channel
The positions of the error control coding and
decoding are shown in the transmission model
Transmission Model

Error Modulator
Digital Source
Control
Line X()
(Transmit
Source Encoder Coding
Coding Filter, etc)
Hc() Channel
Transmitter
N() Noise
+
Error Demod
Digital Source Line
Control (Receive
Sink Decoder
Decoding
Decoding
Filter, etc)
Y()

Receiver
Error Models
Binary Symmetric Memoryless Channel
Assumes transmitted symbols are binary
Errors affect 0s and 1s with equal
probability (i.e., symmetric)
Errors occur randomly and are independent
from bit to bit (memoryless)
1-p
0 0 p is the probability of
p
bit error or the Bit
IN OUT Error Rate (BER) of
p
1 1 the channel
1-p
Error Models
Many other types
Burst errors, i.e., contiguous bursts of bit
errors
output from DFE (error propagation)
common in radio channels
Insertion, deletion and transposition errors
We will consider mainly random errors
Error Control Techniques
Error detection in a block of data
Can then request a retransmission, known as
automatic repeat request (ARQ) for sensitive
data
Appropriate for
Low delay channels
Channels with a return path
Not appropriate for delay sensitive data, e.g.,
real time speech and data
Error Control Techniques
Forward Error Correction (FEC)
Coding designed so that errors can be corrected
at the receiver
Appropriate for delay sensitive and one-way
transmission (e.g., broadcast TV) of data
Two main types, namely block codes and
convolutional codes. We will only look at block
codes
Block Codes
We will consider only binary data
Data is grouped into blocks of length k bits
(dataword)
Each dataword is coded into blocks of
length n bits (codeword), where in general
n>k
This is known as an (n,k) block code
Block Codes
A vector notation is used for the datawords
and codewords,
Dataword d = (d1 d2.dk)
Codeword c = (c1 c2..cn)
The redundancy introduced by the code is
quantified by the code rate,
Code rate = k/n
i.e., the higher the redundancy, the lower the
code rate
Block Code - Example
Dataword length k = 4
Codeword length n = 7
This is a (7,4) block code with code rate = 4/7
For example, d = (1101), c = (1101001)
Error Control Process
Source code Codeword
data chopped (n bits)
101101 1000 into blocks Channel
1000
Dataword coder
(k bits)

Codeword +
Dataword possible errors
(k bits) (n bits)
Channel Channel
decoder

Error flags
Error Control Process

Decoder gives corrected data


May also give error flags to
Indicate reliability of decoded data
Helps with schemes employing multiple layers
of error correction
Parity Codes
Example of a simple block code Single
Parity Check Code
In this case, n = k+1, i.e., the codeword is the
dataword with one additional bit
For even parity the additional bit is,
q i 1 d i (mod 2)
k

For odd parity the additional bit is 1-q


That is, the additional bit ensures that there are
an even or odd number of 1s in the
codeword
Parity Codes Example 1
Even parity
(i) d=(10110) so,
c=(101101)
(ii) d=(11011) so,
c=(110110)
Parity Codes Example 2
Coding table for (4,3) even parity code

Dataword Codeword
0 0 0 0 0 0 0
0 0 1 0 0 1 1
0 1 0 0 1 0 1
0 1 1 0 1 1 0
1 0 0 1 0 0 1
1 0 1 1 0 1 0
1 1 0 1 1 0 0
1 1 1 1 1 1 1
Parity Codes
To decode
Calculate sum of received bits in block (mod 2)
If sum is 0 (1) for even (odd) parity then the dataword is the
first k bits of the received codeword
Otherwise error
Code can detect single errors
But cannot correct error since the error could be in any
bit
For example, if the received dataword is (100000) the
transmitted dataword could have been (000000) or
(110000) with the error being in the first or second
place respectively
Note error could also lie in other positions including
the parity bit
Parity Codes
Known as a single error detecting code
(SED). Only useful if probability of getting
2 errors is small since parity will become
correct again
Used in serial communications
Low overhead but not very powerful
Decoder can be implemented efficiently
using a tree of XOR gates
Hamming Distance
Error control capability is determined by the
Hamming distance
The Hamming distance between two
codewords is equal to the number of
differences between them, e.g.,
10011011
11010010 have a Hamming distance = 3
Alternatively, can compute by adding
codewords (mod 2)
=01001001 (now count up the ones)
Hamming Distance
The Hamming distance of a code is equal to
the minimum Hamming distance between
two codewords
If Hamming distance is:
1 no error control capability; i.e., a single error
in a received codeword yields another valid
codeword
XXXXXXX X is a valid codeword
Note that this representation is diagrammatic
only.
In reality each codeword is surrounded by n
codewords. That is, one for every bit that
could be changed
Hamming Distance
If Hamming distance is:
2 can detect single errors (SED); i.e., a single
error will yield an invalid codeword
XOXOXO X is a valid codeword
O is not a valid codeword
See that 2 errors will yield a valid (but
incorrect) codeword
Hamming Distance
If Hamming distance is:
3 can correct single errors (SEC) or can detect
double errors (DED)
XOOXOOX X is a valid codeword
O in not a valid codeword
See that 3 errors will yield a valid but
incorrect codeword
Hamming Distance - Example
Hamming distance 3 code, i.e., SEC/DED
Or can perform single error correction (SEC)

10011011 X This code corrected this way


11011011 O
11010011 O This code corrected this way
11010010 X

X is a valid codeword
O is an invalid codeword

Anda mungkin juga menyukai