0% found this document useful (0 votes)
59 views15 pages

Advanced Digital Communication Systems: 11. Channel Coding (Continued)

This document discusses convolutional codes, including: 1. Convolutional codes can be represented using lookup tables or trellis diagrams that incorporate a time dimension. 2. The Viterbi algorithm is used for decoding convolutional codes and finds the most likely path through the trellis that matches the received codeword. 3. An example shows encoding and decoding a sample input bit stream using a convolutional code trellis diagram and the Viterbi algorithm.

Uploaded by

Muhammad Owais
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views15 pages

Advanced Digital Communication Systems: 11. Channel Coding (Continued)

This document discusses convolutional codes, including: 1. Convolutional codes can be represented using lookup tables or trellis diagrams that incorporate a time dimension. 2. The Viterbi algorithm is used for decoding convolutional codes and finds the most likely path through the trellis that matches the received codeword. 3. An example shows encoding and decoding a sample input bit stream using a convolutional code trellis diagram and the Viterbi algorithm.

Uploaded by

Muhammad Owais
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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