0% found this document useful (0 votes)
11 views

Convolutional Codes

This document discusses convolutional codes, including their encoder structure, different representations of the encoder, and Viterbi decoding. Convolutional codes map information bits along a sequence rather than in blocks, and have benefits like achieving large coding gain with low complexity and being suitable for burst errors.

Uploaded by

eror4700
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Convolutional Codes

This document discusses convolutional codes, including their encoder structure, different representations of the encoder, and Viterbi decoding. Convolutional codes map information bits along a sequence rather than in blocks, and have benefits like achieving large coding gain with low complexity and being suitable for burst errors.

Uploaded by

eror4700
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Information Theory and Coding

(ECE 348)

Academic Year (2022-2023)

Dr. Mohamed Abdelhamed


Dr. Emad Abd-Elaty

Week 13, 14: Convolutional Codes

1
Convolutional Codes
❑ The difference between block codes and convolutional codes is
the encoding principle.
❑ In the block codes, the information bits are followed by the parity
bits, while in the convolutional codes the information bits are
spread a long the sequence. Accordingly, the convolutional codes
map the information to code bits not block wise.
❑ The benefits of convolutional code over block code are:
➢ Convolutional code a chieve large coding gain over the block
code for the same complexity.
➢ Convolutional codes are suitable for burst error.
➢ Easy to implement.
Convolutional Codes (Cont.)
Encoder Structure
❑ The information bits are input into shift registers and the output
encoded bits are obtained by modulo-2 addition of the input
information bits and the contents of the shift registers as shown in
the figure below.
Convolutional Codes (Cont.)
Encoder Structure (Cont.)
❑ The code rate 𝑟 for a convolutional encoder is 𝑟 = 𝑘Τ𝑛. where 𝑘
is the number of parallel input information bits and 𝑛 is the
number of parallel output encoded bits at one time interval.
❑ A convolutional code is described by three integers 𝑛, 𝑘, 𝐾 .
Where 𝐾 is the constraint length; it represents the number of 𝐾 -
bit shifts over which a single information bit can influence the
encoder output (i.e., maximum number of taps of the shift
register). 𝐾 = 𝑚 + 1. where 𝑚 is the number of the register
elements in the encoder (memory length).
❑ From previous Figure. 𝑟 = 2Τ3, m=3, and 𝐾 = 4.
Convolutional Codes (Cont.)
Encoder Representation
❑ The encoder can be represented in different ways but equivalent
ways such as
▪ Generator (connection) representation.
▪ Polynomial Representation.
▪ State Representation.
▪ State Diagram Representation.
▪ Tree Diagram Representation.
▪ Trellis Diagram Representation
Convolutional Codes (Cont.)
Encoder Representation (Cont.)
Example (1):
Consider a convolutional encoder (2, 1, 3) with a generator
polynomial 𝑔1 = [111] and 𝑔2 = [101]. Sketch the encoder circuit.
Solution:
Convolutional Codes (Cont.)
Encoder Representation (Cont.)
Example (2):
From example (1). Find the code-word for data-word m = [101]
using polynomial representation.
Solution:
𝑔1 𝑥 = 1 + 𝑥 + 𝑥 2 , 𝑔2 𝑥 = 1 + 𝑥 2 , and m 𝑥 = 1 + 𝑥 2 .
m 𝑥 𝑔1 𝑥 = 1 + 𝑥 + 𝑥 2 + 𝑥 2 + 𝑥 3 + 𝑥 4 = 1 + 𝑥 + 0𝑥 2 + 𝑥 3 + 𝑥 4 .
m 𝑥 𝑔2 𝑥 = 1 + 𝑥 2 + 𝑥 2 + 𝑥 4 = 1 + 0𝑥 + 0𝑥 2 + 0𝑥 3 + 𝑥 4 .
U 𝑥 = 1, 1 + 1, 0 𝑥 + 0, 0 𝑥 2 + 1, 0 𝑥 3 + (1, 1)𝑥 4
Finally, the serial output is U= 11 10 00 10 11
Convolutional Codes (Cont.)
Example (3):
From example (1). Find the code-word for data-word m = [10100]
using state representation.
Solution: Input Present Next Output
State State U1 U2
Encoder States:
0 00 00 00
𝑆0 = [0 0] 1 00 10 11
0 10 01 10
𝑆1 = [1 0] 1 10 11 01
𝑆2 = [0 1] 0 01 00 11
1 01 10 00
𝑆3 = [1 1] 0 11 01 01
Finally: 1 11 11 10
- The Encoder input is m= 1 0 1 0 0
- The Encoder output is U= 11 10 00 10 11
Convolutional Codes (Cont.)
Example (4):
From example (1). Find
the code-word for data-
word m = [10100]
using state Diagram.
Solution:
Finally:
The Encoder input is
m= 1 0 1 0 0
The Encoder output is
U= 11 10 00 10 11

Input bit 0
Input bit 1
Convolutional Codes (Cont.)
Example (5):
From example (1). Find the code-word for data-word m = [101100]
using Trellis diagram.
Solution:
❑ The lower branch corresponding to input-zero bit and the upper
branch corresponding to input-one bit.
❑ Number of nodes at each stage=2𝑚 = 22 = 4
❑ Number of branches leaving node=2𝑘 = 21 = 2
❑ Number of stages=Number of bits which encoded.
Convolutional Codes (Cont.)
Example (5):
From example (1). Find the code-word for data-word m = [101100]
using Trellis diagram.
Solution:
❑ The lower branch corresponding to input-zero bit and the upper
branch corresponding to input-one bit.
❑ Number of nodes at each stage=2𝑚 = 22 = 4
❑ Number of branches leaving node=2𝑘 = 21 = 2
❑ Number of stages=Number of bits which encoded.
Convolutional Codes (Cont.)

Finally:
- The Encoder input is m= 1 0 1 1 0 0
- The Encoder output is U= 11 10 00 01 01 11
Convolutional Codes (Cont.)
Viterbi Decoding:
❑ The Viterbi algorithm performs maximum likelihood decoding.
❑ In max. likelihood decoding, select the estimated 𝑦ư that maximize
the probability p(r/𝑦)ư by using “Viterbi Algorithm” which gives
the “Minimum Metric”.
❑ The minimum metric can be performed by using “Hard-Decision”
or “Soft-Decision” decoding.
Convolutional Codes (Cont.)
Example (6):
From example (1). Decode the sequence 10 10 10 01 01 01. Using
Viterbi decoder.
Solution:
Hard-Decision Viterbi Decoding based-on “Minimum Metric” as
Convolutional Codes (Cont.)
Viterbi decoder (cont.).
Convolutional Codes (Cont.)
Viterbi decoder (cont.)

Tx Sequence 11 10 00 01 01 11
Rx Sequence 10 10 10 01 01 01
Decoding 1 0 1 1 0 0

❑ Traceback Memory Length= Number of decoded bits= Number of


Stages= 6-bits.
17

You might also like