Professional Documents
Culture Documents
Information and Coding Theory
Information and Coding Theory
INFORMATION AND
CODING THEORY
COMMUNICATION SYSTEM
OBJECTIVES
The answer is
Entrophy (average information)< Capacity of channel
Uncertainty
• Randomness
• Lack of Predictability in message
• (Eg;-)probability=1 or 0-event is possible or
not possible
• probability=0.5-event is uncertain
• Property 1
1. Entropy is zero, if the event is sure or its impossible
Cont…
Property 2
2. Entropy H= log2 K when the symbols are equally likely for K
symbols PK= 1/K
Cont…
Property 3
3. Maximum upper bound on entropy is
Cont…
Cont…
Cont..
RATE OF INFORMATION
• RATE OF INFORMATION
* SOURCECODING THEOREM
* CHANNEL CODING THEOREM
SOURCE CODING
• An important problem in communication system is the
efficient representation of data generated by a source, which
can be achieved by source encoding (or) source coding
process
• The device which performs source encoding is called source
encoder
EFFICIENCY OF SOURCE ENCODER
L>= H
• According to source coding theorem the entropy H represents as the
fundamental limit on the average number of bits per source symbol
necessary to represent a discrete memoryless source
• It can be made as small as, but not smaller than the entropy H thus, with
Lmin=H, then η is represented as
η= H/ L
SHANONS SECOND THEOREM
• Why channel coding?
• Goal of channel coding
• Process
Cont…
• Approach
The code rate is given as
Signal power
Noise power
* SHANON FANO
CODING
* HUFFMAN CODING
SOURCE CODING
The various source coding algorithms for data
compaction are
• Prefix coding
• Shanon Fano coding
• Huffman coding
• Lempel Ziv coding
Prefix coding
.
SHANON FANO CODING
• If the probablity of occurance of all the messages
are not equally likely, then average information or
entropy is reduced which in turn reduces
information rate (R)
• This can be solved by coding the message with
different number of bits according to their
occurance
• High probable-less no of bits and less probable-
more no of bits
Problem- Shanon fano coding
.
Cont…
For calculating entropy
Cont…
• For calculating number of messages and
efficiency
HUFFMAN CODING
• Huffman coding also uses the same principle as shanon fano
coding i.e assigning different number of binary digits to the
messages according to their probablities of occurance
• Redundancy
TYPES OF CHANNEL
• NOISELESS CHANNEL
• NOISY CHANNEL WITH NON OVER LAPPING
OUTPUT
• SYMMETRIC CHANNEL
• NOISY CHANNEL (OR) USELESS CHANNEL
Binary Symmetric Channel
Calculation of P(Y/X)
H(Y/X)
To Find H(y)
Channel capacity with rs=1 sec
Binary Erasure Channel(BEC)
Error Control Coding
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 Line X(w)
Control (Transmit
Source Encoder Coding
Coding Filter, etc)
Hc(w) Channel
Transmitter
N(w) Noise
+
Error Demod
Digital Source Line
Control (Receive
Sink Decoder Decoding Y(w)
Decoding Filter, etc)
Receiver
Error Models
• Binary Symmetric Memoryless Channel
– Assumes transmitted symbols are binary
– Errors affect ‘0’s and ‘1’s 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 bit error
p
or the Bit Error Rate (BER) of
IN OUT the channel
p
1 1
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
• 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
101101 1000
data chopped (n bits)
into blocks Channel
1000 coder
Dataword
(k bits)
Codeword +
Dataword possible errors
(k bits) Channel (n bits)
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
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 in 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
X is a valid codeword
O is an invalid codeword
Hamming Distance
• The maximum number of detectable errors is
d min 1
• That is the maximum number of correctable
errors is given by,
d min 1
t
2
where dmin is the minimum Hamming distance
between 2 codewords and . means the smallest
integer
Linear Block Codes
c3 c1 c 2
Linear Block Codes
Notice that,k 1
C m j g 1 ; where m j 0, if j 0 or j k 1
j 0
Example:
m( x ) m0 m1 x m2 x 2
g ( x ) g 0 g1 x
m( x ) g ( x ) (m0 g 0 ) (m1 g1 )x (m2 0)x 2
addition
• For the (7,4) code given in the Table, the nonzero code
polynomial of minimum degree is g(X) = 1 + X + X3
Generator Polynomial
• Since the code is cyclic: Xg(X), X2g(X),…., Xn-r-1g(X) are
code polynomials in C. (Note that deg[Xn-r-1g(X)] = n-1).
• Since the code is linear:
(a0 + a1X + …. + an-r-1 Xn-r-1)g(X) is also a code
polynomial, where ai = 0 or 1.
• A binary polynomial of degree n-1 or less is a code
polynomial if and only if it is a multiple of g(X).
(First part shown. Second part: if a code polynomial c(X) is not a
multiple of g(X), then Rem[c(X)/g(X)] must be a code polynomial of
degree less than the minimum. Contradiction)
Generator Polynomial (cont’d)
• All code polynomials are generated from the
multiplication c(X) = a(X)g(X).
deg[c(x)] n-1, deg[g(X)] = r, ==> deg[a(x)] n-r-1
# codewords,(2k) = # different ways of forming a(x),2n-r
Therefore, r = deg[g(X)] = n-k
• Since deg[a(X)] k-1, the polynomial a(X) may be taken to
be the information polynomial u(X) (a polynomial whose
coefficients are the information bits). Encoding is
performed by the multiplication c(X) = u(X)g(X).
• g(X), generator polynomial, completely defines the code.
(7,4) Code Generated by 1+X+X 3
+ + + + Output
gr gr-1 gr-2 g1 g0
Input
Circuit for Multiplying Polynomials (2)
+ + + +
Output
g0 g1 g2 gr-1 gr
Input
Systematic Cyclic Codes
Systematic: b0 b1 b2 …. bn-k-1 u0 u1 u2 …. uk-1
b(X) = b0 + b1X+….+bn-k-1Xn-k-1, u(X) = u0+u1X+ ….+uk-1Xk-1
thenc(X) = b(X) + Xn-k u(X)
a(X)g(X) = b(X) + Xn-k u(X)
Xn-k u(X)/g(X) = a(X) + b(X)/g(X)
Or b(X) = Rem[Xn-k u(X)/g(X)]
Encoding Procedure:
1. Multiply u(X) by Xn-k
2. Divide Xn-k u(X) by g(X), obtaining the remainder b(X).
3. Add b(X) to Xn-k u(X), obtaining c(X) in systematic form.
Systematic Cyclic Codes (cont’d)
Example
Consider the (7,4) cyclic code generated by
g(X) = 1 + X + X3. Find the systematic codeword for
the message 1001.
u(X) = 1 + X3
X3u(X) = X3 + X6
b(X) = Rem[X3u(x)/g(X)] = X3u(x) |g(X) = 0 = X3u(x) |X3 = X+1
= X3 (X3 +1) = (1 + X)X = X + X2
Therefore, c = 0111001
Circuit for Dividing Polynomials
Output
g0 g1 g2 gr-1 gr
+ + + +
Input
Encoder Circuit
Gate
g1 g2 gr-1
+ + +
+
• Gate ON. k message bits are shifted into the channel. The
parity bits are formed in the register.
• Gate OFF. Contents of register are shifted into the channel.
(7,4) Encoder Based on 1 + X + X 3
Gate
+
+
Input 1 1 0 1
Register : 000 110 101 100 100
initial 1st shift 2nd shift 3rd shift 4th shift
Codeword: 1 0 0 1 0 1 1
Parity-Check Polynomial
• Xn +1 = g(X)h(X)
• deg[g(x)] = n-k, deg[h(x)] = k
• g(x)h(X) mod (Xn +1) = 0.
• h(X) is called the parity-check polynomial. It
plays the rule of the H matrix for linear codes.
• h(X) is the generator polynomial of an (n,n-k)
cyclic code, which is the dual of the (n,k) code
generated by g(X).
Decoding of Cyclic Codes
• STEPS:
(1) Syndrome computation
(2) Associating the syndrome to the error pattern
(3) Error correction
Syndrome Computation
Gate
r = 0010110
+
+
Shift Input Register contents
0 0 0 (initial state) • What is g(x)?
1 0 000 • Find the syndrome using
2 1 100 long division.
3 1 110 • Find the syndrome using
4 0 011 the shortcut for the
remainder.
5 1 011
6 0 111
7 0 1 0 1 (syndrome s)
Association of Syndrome to Error Pattern
+
r = 0010110 Gate +
Let c = 1 0 0 1 0 1 1 and r = 1 0 1 1 0 1 1
Cyclic Decoding of the (7,4) Code
.
Error Correction Capability
• Theorem:
If g(X) has l roots (out of it n-k roots) that are consecutive
powers of a, then the code it generates has a minimum
distance d = l + 1.
• To design a cyclic code with a guaranteed minimum distance
of d, form g(X) to have d-1 consecutive roots. The parameter
d is called the designed minimum distance of the code.
• Since roots occur in conjugates, the actual number of
consecutive roots, say l, may be greater than d-1. dmin = l + 1
is called the actual minimum distance of the code.
Design Example
X15 + 1 has the roots 1= a 0, a1 , …., a14.
Conjugate group Corresponding polynomial
(a0) f1(X)=1 + X
(a, a2 , a4 , a8) f2(X)= 1 + X + X4
(a3 , a6 , a9 , a12) f3(X)= 1 + X + X2 + X3 + X4
(a5 , a10) f4(X)= 1 + X + X2
(a7, a14 , a13 , a11) f5(X)= 1 + X3 + X4
Design Example (cont’d)
• Find g(X) that is guaranteed to be a double error
correcting code.
The code must have a, a2 , a3 and a4 as roots.
g(X) = f2(X)f3(X) = 1 + X4 + X6 + X7 + X8
This generator polynomial generates a (15, 7) cyclic code
of minimum distance at least 5.
Roots of g(X) = a, a2, a3 , a4 , a6, a8 , a9 , a12.
Number of consecutive roots = 4.
The actual minimum distance of the code is 5.
Cyclic Codes
Some Standard Cyclic BCH Codes
Linear
Block Codes Hamming Codes
Codes
n k b g(X) (octal)
7 3 2 35 (try to find dmin!)
15 10 2 65
15 9 3 171
31 25 2 161
63 56 2 355
63 55 3 711
511 499 4 10451
1023 1010 4 22365
Cyclic Redundancy Check Codes
• Shortened cyclic codes
• Error-detecting codes
• used in automatic repeat request (ARQ)
systems.
• Usually concatenated with error correcting code
Error Correction Error Correction CRC
CRC To
Encoder Decoder Syndrom
To Info Sink
Encoder e Checker
Transmitter
Performance of CRC Codes
• CRC are typically evaluated in terms of their
– error pattern coverage
– Burst error detection capability
– Probability of undetected error
• For a (n,k) CRC the coverage, λ, is the ratio of the number of invalid
blocks of length n to the total number of blocks of length n.
• This ratio is a measure of the probability that a randomly chosen block is
not a valid code block. By definition,
•
1 2 r
where r is the number of check bits Code Coverage
• For some near-optima CRC codes, CRC-12 0.999756
see table 5.6.5 CRC-ANSI 0.999985
CRC-32A 0.99999999977
Basic Definitions
This is the
survival
path in
this
example
Decoded
sequence is
m=[10 1110]
Compute the two possible paths at
Add the weight of the each state and select the one This is called the
path at each state with less cumulative Hamming survival path
weight
Distance Properties of Conv. Codes
• Def: The free distance, dfree, is the minimum Hamming
distance between any two code sequences.
• Criteria for good convolutional codes:
– Large free distance, dfree.
– Small Hamming distance (i.e. as few differences as possible )
between the input information sequences that produce the
minimally separated code sequences. dinf
• There is no known constructive way of designing a conv.
code of given distance properties. However, a given code
can be analyzed to find its distance properties.
Distance Prop. of Conv. Codes (cont’d)
• Convolutional codes are linear. Therefore, the Hamming
distance between any pair of code sequences
corresponds to the Hamming distance between the all-
zero code sequence and some nonzero code sequence.
Thus for a study of the distance properties it is possible
to focus on the Hamming distance between the all-zero
code sequence and all nonzero code sequences.
• The nonzero sequence of minimum Hamming weight
diverges from the all-zero path at some point and
remerges with the all-zero path at some later point.
Distance Properties: Illustration
Sequence 2:
code sequence: .. 00 11 10 11 00 ..
state sequence: a0 b c a1
Labeled: (D2LN)(DL)(D2L) = D5L3N
Prop. : w =5, dinf =1, diverges from the allzero path by 3 branches.
Sequence 3:
code sequence: .. 00 11 01 01 00 10 11 00 ..
state sequence: a0 b d c b c a 1
Labeled: (D2LN)(DLN)(DL)(DL)(LN)(D2L) = D7L6N3
Prop. : w =7, dinf =3, diverges from the allzero path by 6 branches.
Transfer Function
• Input-Output relations:
a0 =1
b = D2LN a0 + LNc
c = DLb + DLNd
d = DLNb + DLNd
a1 = D2Lc
• The transfer function DT(D,L,N)
L 5 = a1 /a0
3
T(D, L, N)
1 DNL(1 L)
Transfer Function (cont’d)
• Performing long division:
T = D5L3N + D6L4N2 + D6L5N2 + D7L5N3 + ….
• If interested in the Hamming distance property of
the code only, set N = 1 and L = 1 to get the
distance transfer function:
T (D) = D5 + 2D6 + 4D7
There is one code sequence of weight 5. Therefore dfree=5.
There are two code sequences of weight 6,
four code sequences of weight 7, ….
Decoding of Convolutional Codes
Let Cm be the set of allowable code sequences of length m.
dH y,
c mdH y,
c
c p
Pr y |
.(1 p )
max
cCm
c min
Pr y,
d y, c
cCm H
Choose the code sequence through the trellis which has the
smallest Hamming distance to the received sequence!
The Viterbi Algorithm
The Viterbi Algorithm (Viterbi, 1967) is a clever way of
implementing Maximum Likelihood Decoding.
Computer Scientists will recognize the Viterbi Algorithm as an
example of a CS technique called “ Dynamic Programming”
s
ci
Let be the state from which the code segment c
i
emerged
For each state j, we assume that c is the path leading into
i
state j if:
ci i d
Zs c ,y
H i
is the smallest of all the code segments leading into state j.
The Viterbi Algorithm (continued)
Iteration:
• Let
Z i 1 Z i d c i , y
• Let i=i+1 j s
ci
H
• Repeat previous step
• Incorrect paths drop out as i approaches infinity.
Viterbi Algorithm Decoding Example
r =1/2, K = 3 code from previous example
c = (0 0 1 1
01 00 10 10 1 1) is sent
y
= (0 1 1 1 01 00 10 10 1 1) is received.
What path through the trellis does the Viterbi Algorithm choose?
Viterbi Algorithm Decoding Example
(continued)
SUMMARY
• Learnt about the concepts of Entropy and the
source coding techniques
• Statement and the theorems of Shanon
• Concepts about mutual information and channel
capacity
• Understand error control coding techniques and
the concepts about linear block codes, cyclic
codes, convolution codes & viterbi decoding
algorithm
END OF 4th UNIT