Convolutional Codes 
Dr. Muqaibel  EE430 Convolutional Codes 1
Basic Definitions 
• k =1, n = 2 , (2,1) Rate-1/2 convolutional code 
• Two-stage register ( M=2 ) 
• Each input bit influences the output for 3 intervals (K=3) 
• K = constraint length of the code = M + 1 
Dr. Muqaibel  EE430 Convolutional Codes 2
Generator Polynomial 
• A convolutional code may be defined by a set of n 
generating polynomials for each input bit. 
• For the circuit under consideration: 
g1(D) = 1 + D + D2 
g2(D) = 1 + D2 
• The set {gi(D)} defines the code completely. The length of 
the shift register is equal to the highest-degree generator 
polynomial. 
Dr. Muqaibel  EE430 Convolutional Codes 3
State Diagram Representation 
• The output depends on the current input and the state of 
the encoder ( i. e. the contents of the shift register). 
Dr. Muqaibel  EE430 Convolutional Codes 4
Trellis Diagram Representation 
• Expansion of state diagram in time. 
Dr. Muqaibel  EE430 Convolutional Codes 5
Decoding 
• A message m is encoded into the code sequence c. 
• Each code sequence represents a path in the trellis diagram. 
• Minimum Distance Decoding 
– Upon receiving the received sequence r, search for the 
path that is closest ( in Hamming distance) to r . 
Dr. Muqaibel  EE430 Convolutional Codes 6
The Viterbi Algorithm 
• Walk through the trellis and compute the Hamming 
distance between that branch of r and those in the trellis. 
• At each level, consider the two paths entering the same 
node and are identical from this node onwards. From these 
two paths, the one that is closer to r at this stage will still 
be so at any time in the future. This path is retained, and 
the other path is discarded. 
• Proceeding this way, at each stage one path will be saved 
for each node. These paths are called the survivors. The 
decoded sequence (based on MDD) is guaranteed to be one 
of these survivors. 
Dr. Muqaibel  EE430 Convolutional Codes 7
The Viterbi Algorithm (cont’d) 
• Each survivor is associated with a metric of the 
accumulated Hamming distance (the Hamming distance up 
to this stage). 
• Carry out this process until the received sequence is 
considered completely. Choose the survivor with the 
smallest metric. 
Dr. Muqaibel  EE430 Convolutional Codes 8
66..33 TThhee VViitteerrbbii AAllggoorriitthhmm:: 
• The viterbi algorithm is used to decode 
convolutional codes and any structure or 
system that can be described by a trellis. 
• It is a maximum likelihood decoding 
algorithm that selects the most probable 
path that maximizes the likelihood 
function. 
• The algorithm is based on add-compare-select 
the best path each time at each 
state.
EExxaammppllee:: For the convolutional code example in the previous 
lecture, starting from state zero, Decode the following received 
sequence. 
Add the weight of the 
path at each state 
Compute the two possible paths at 
each state and select the one 
with less cumulative Hamming 
weight 
Þ This is called 
the survival 
path 
At the end of the 
trellis, select the 
path with the 
minimum 
cumulative 
Hamming weight 
This is the 
survival 
path in 
this 
example 
DDeeccooddeedd 
sseeqquueennccee iiss 
mm==[[1100 11111100]]
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. 
Dr. Muqaibel  EE430 Convolutional Codes 11
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. 
Dr. Muqaibel  EE430 Convolutional Codes 12
Distance Properties: Illustration 
• sequence 2: Hamming weight = 5, dinf = 1 
• sequence 3: Hamming weight = 7, dinf = 3. 
Dr. Muqaibel  EE430 Convolutional Codes 13
Modified State Diagram 
• The span of interest to us of a nonzero path starts from the 
00 state and ends when the path first returns to the 00 state. 
Split the 00 state (state a) to two states: a0 and a1. 
• The branches are labeled with the dummy variables D, L 
and N, where: 
The power of D is the Hamming weight (# of 1’s) of the 
output corresponding to that branch. 
The power of N is the Hamming weight (# of 1’s) of the 
information bit(s) corresponding to that branch. 
The power of L is the length of the branch (always = 1). 
Dr. Muqaibel  EE430 Convolutional Codes 14
Modified State Diagram (cont’d) 
Dr. Muqaibel  EE430 Convolutional Codes 15
Properties of the Path 
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 a1 
Labeled: (D2LN)(DLN)(DL)(DL)(LN)(D2L) = D7L6N3 
Prop. : w =7, dinf =3, diverges from the allzero path by 6 branches. 
Dr. Muqaibel  EE430 Convolutional Codes 16
Transfer Function 
• Input-Output relations: 
a0 = 1 
b = D2LN a0 + LNc 
c = DLb + DLNd 
d = DLNb + DLNd 
a1 = D2Lc 
• The transfer function T(D,L,N) = a1 /a0 
T(D,L,N) D L 
5 3 
- + 
DNL(1 L) 
= 
1 
Dr. Muqaibel  EE430 Convolutional Codes 17
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, …. 
Dr. Muqaibel  EE430 Convolutional Codes 18

7 convolutional codes

  • 1.
    Convolutional Codes Dr.Muqaibel EE430 Convolutional Codes 1
  • 2.
    Basic Definitions •k =1, n = 2 , (2,1) Rate-1/2 convolutional code • Two-stage register ( M=2 ) • Each input bit influences the output for 3 intervals (K=3) • K = constraint length of the code = M + 1 Dr. Muqaibel EE430 Convolutional Codes 2
  • 3.
    Generator Polynomial •A convolutional code may be defined by a set of n generating polynomials for each input bit. • For the circuit under consideration: g1(D) = 1 + D + D2 g2(D) = 1 + D2 • The set {gi(D)} defines the code completely. The length of the shift register is equal to the highest-degree generator polynomial. Dr. Muqaibel EE430 Convolutional Codes 3
  • 4.
    State Diagram Representation • The output depends on the current input and the state of the encoder ( i. e. the contents of the shift register). Dr. Muqaibel EE430 Convolutional Codes 4
  • 5.
    Trellis Diagram Representation • Expansion of state diagram in time. Dr. Muqaibel EE430 Convolutional Codes 5
  • 6.
    Decoding • Amessage m is encoded into the code sequence c. • Each code sequence represents a path in the trellis diagram. • Minimum Distance Decoding – Upon receiving the received sequence r, search for the path that is closest ( in Hamming distance) to r . Dr. Muqaibel EE430 Convolutional Codes 6
  • 7.
    The Viterbi Algorithm • Walk through the trellis and compute the Hamming distance between that branch of r and those in the trellis. • At each level, consider the two paths entering the same node and are identical from this node onwards. From these two paths, the one that is closer to r at this stage will still be so at any time in the future. This path is retained, and the other path is discarded. • Proceeding this way, at each stage one path will be saved for each node. These paths are called the survivors. The decoded sequence (based on MDD) is guaranteed to be one of these survivors. Dr. Muqaibel EE430 Convolutional Codes 7
  • 8.
    The Viterbi Algorithm(cont’d) • Each survivor is associated with a metric of the accumulated Hamming distance (the Hamming distance up to this stage). • Carry out this process until the received sequence is considered completely. Choose the survivor with the smallest metric. Dr. Muqaibel EE430 Convolutional Codes 8
  • 9.
    66..33 TThhee VViitteerrbbiiAAllggoorriitthhmm:: • The viterbi algorithm is used to decode convolutional codes and any structure or system that can be described by a trellis. • It is a maximum likelihood decoding algorithm that selects the most probable path that maximizes the likelihood function. • The algorithm is based on add-compare-select the best path each time at each state.
  • 10.
    EExxaammppllee:: For theconvolutional code example in the previous lecture, starting from state zero, Decode the following received sequence. Add the weight of the path at each state Compute the two possible paths at each state and select the one with less cumulative Hamming weight Þ This is called the survival path At the end of the trellis, select the path with the minimum cumulative Hamming weight This is the survival path in this example DDeeccooddeedd sseeqquueennccee iiss mm==[[1100 11111100]]
  • 11.
    Distance Properties ofConv. 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. Dr. Muqaibel EE430 Convolutional Codes 11
  • 12.
    Distance Prop. ofConv. 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. Dr. Muqaibel EE430 Convolutional Codes 12
  • 13.
    Distance Properties: Illustration • sequence 2: Hamming weight = 5, dinf = 1 • sequence 3: Hamming weight = 7, dinf = 3. Dr. Muqaibel EE430 Convolutional Codes 13
  • 14.
    Modified State Diagram • The span of interest to us of a nonzero path starts from the 00 state and ends when the path first returns to the 00 state. Split the 00 state (state a) to two states: a0 and a1. • The branches are labeled with the dummy variables D, L and N, where: The power of D is the Hamming weight (# of 1’s) of the output corresponding to that branch. The power of N is the Hamming weight (# of 1’s) of the information bit(s) corresponding to that branch. The power of L is the length of the branch (always = 1). Dr. Muqaibel EE430 Convolutional Codes 14
  • 15.
    Modified State Diagram(cont’d) Dr. Muqaibel EE430 Convolutional Codes 15
  • 16.
    Properties of thePath 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 a1 Labeled: (D2LN)(DLN)(DL)(DL)(LN)(D2L) = D7L6N3 Prop. : w =7, dinf =3, diverges from the allzero path by 6 branches. Dr. Muqaibel EE430 Convolutional Codes 16
  • 17.
    Transfer Function •Input-Output relations: a0 = 1 b = D2LN a0 + LNc c = DLb + DLNd d = DLNb + DLNd a1 = D2Lc • The transfer function T(D,L,N) = a1 /a0 T(D,L,N) D L 5 3 - + DNL(1 L) = 1 Dr. Muqaibel EE430 Convolutional Codes 17
  • 18.
    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, …. Dr. Muqaibel EE430 Convolutional Codes 18