You are on page 1of 15

Advanced Digital Communication Systems

EE-851

11. Channel Coding (Continued)

Dr. Shahzad Rasool


RESEARCH CENTER FOR MODELING & SIMULATION (RCMS)
20-11-2017
Convolutional Codes – Tabular Representation
• Look up Table Input State Output
– Input bits 0 00 10
– State of the encoder 1 00 01
– Output bits and any required parameter 0 01 11
1 01 00
0 10 10
1 10 01
0 11 11
1 11 00
Input bit Stage Output1 Output2 Output3
- 000 - - -
1 100 1 1 1
0 010 0 0 1
0 001 0 1 1

EE-851 2
Convolutional Codes
• Look up table
• State machine
– Easy for tracking all transitions
– Disadvantage being no time dimension
• Trellis diagram
– Incorporates time dimension
• Tree structure
• Generator polynomial
• Generator Matrix

EE-851 3
Convolutional Codes
• Trellis construction
– Row wise representation of states
– Column wise time representation

• Encode 𝑢 = 01001
– 𝑥 = 0011010011

EE-851 4
Convolutional Codes – Example
(1)
𝑥𝑖

𝑢𝑖

(2)
𝑥𝑖

EE-851 5
Convolutional Codes – Example
(1)
𝑥𝑖

𝑢𝑖 (2)
𝑥𝑖

(3)
𝑥𝑖

EE-851 6
Convolutional Codes
• Encode 1 0 0

EE-851 7
Convolutional Codes – Example

𝑢𝑖 (1)
𝑥𝑖

(2)
𝑥𝑖

EE-851 8
Convolutional Codes – Example
• Input bit stream is considered to be structured as
1 2 1 2 1 2
… 𝑢𝑖+1 , 𝑢𝑖+1 , 𝑢𝑖 , 𝑢𝑖 , 𝑢𝑖−1 , 𝑢𝑖−1 , …
• The generated output is structured as
1 2 3 1 2 3 1 2 3
… 𝑥𝑖+1 , 𝑥𝑖+1 , 𝑥𝑖+1 , 𝑥𝑖 , 𝑥𝑖 , 𝑥𝑖 , 𝑥𝑖−1 , 𝑥𝑖−1 , 𝑥𝑖−1 , …

EE-851 9
Convolutional Codes – Example

(1) (1)
𝑢𝑖 𝑥𝑖

(2)
𝑥𝑖
(2)
𝑢𝑖
(3)
𝑥𝑖

EE-851 10
Decoding of Convolutional Codes
• Viterbi Principle
– Compute the distance between the received sequence and all possible
trellis paths
– At each time step, keep only ‘most likely’ (surviving path) for each
state
– Essentially performs max. likelihood decoding
– Calculates measure of similarity (distance) between received signals at
any time ‘t’
– Does not consider paths which are not choice for max. likelihood
– When two paths enter the same state, the path with the best metric is
selected and is called surviving path

EE-851 11
Decoding of Convolutional Codes
• Viterbi algorithm
– Which path through the trellis matches most closely to
the received codeword
• Given received codeword 𝑦 = 0011010011
00 11 01 00 11
0 2 1 0 2
0
1 0 1 1

2 0 1 2 0
1 1 2 1 1

0 1 0 0 1

• Hence 𝑢 = 01001

EE-851 12
Decoding of Convolutional Codes
• Viterbi algorithm
• Given received codeword 𝑦 = 001𝟎010011

00 10 01 00 11
0 1 1 0 2
0
2 0 1 1

2 1 1 2 0
1 0 2 1 1

0 1 0 0 1

• Hence 𝑢 = 01001

EE-851 13
Decoding of Convolutional Codes
• Viterbi algorithm
• Given received codeword 𝑦 = 001𝟎0𝟎0011

00 10 00 00 11
0 1 0 0 2
0
2 1 1 1

2 1 2 2 0
1 0 1 1 1

0 0 0 0 1

• Hence 𝑢 = 00001  Incorrect decoding

EE-851 14
Decoding of Convolutional Codes
(1)
𝑥𝑖

𝑢𝑖

(2)
𝑥𝑖

• Encode 𝑢 = 11011
– Transmitted  01 00 00 01 01 11
– Received  11 01 01 00 00 01

EE-851 15

You might also like