0% found this document useful (0 votes)
71 views27 pages

Convolutional Codes706760093

Convolutional codes are error correcting codes where the encoder processes the input bits continuously and the output depends not only on the current input bits but also previous inputs. The encoder can be described by its memory order m and uses shift registers to encode the input bits into the codeword bits. A convolutional code can be represented by its generator polynomials or generator matrix which are used to realize the encoder circuit in different forms like controller canonical or observer canonical form.

Uploaded by

Feroza Mirajkar
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)
71 views27 pages

Convolutional Codes706760093

Convolutional codes are error correcting codes where the encoder processes the input bits continuously and the output depends not only on the current input bits but also previous inputs. The encoder can be described by its memory order m and uses shift registers to encode the input bits into the codeword bits. A convolutional code can be represented by its generator polynomials or generator matrix which are used to realize the encoder circuit in different forms like controller canonical or observer canonical form.

Uploaded by

Feroza Mirajkar
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/ 27

Lecture Notes on: Convolutional Code

Paper: Information Theory & Coding Code:EC604B Semester:6th

Convolutional codes
1. Introduction

A convolutional encoder processes the information sequence continuously. The n-bit encoder output at a
particular time depends not only on the k-bit information sequence, but also on m previous input blocks,
i.e., a convolutional encoder has a memory order of m. The set of sequences produced by a k-input, n-
output encoder of memory order m is called an (n, k,m) convolutional code.The values of n and k are
much smaller for convolutional codes compared to the block codes.

Let k = 1, n = 2 and m = 2. The following circuit generates a (2, 1, 2) convolutional code.


Input: ul
Outputs:
v(1)l = ul + ul−2
v(2)l = ul + ul−1 + ul−2
If νi is the length of the i th shift register in a convolutional encoder with k input sequences, i = 1, 2, ・ ・
・ , k, then
m= max νi
1≤i≤k
The parameter m is known as memory order of the code.
The ratio R = k/n is known as the code rate.
The overall constraint length ν of the encoder is defined as ν = 1≤𝑖≤𝑘 𝑣𝑖
2. Encoding of (n, 1,m) convolutional code
In this case, a single information sequence
u = (u0, u1, ・ ・ ・ , ul , ・ ・ ・ ) is encoded into n output sequences.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Consider a rate R = 1/2, (2, 1, 2) convolutional code specified by the following generator sequences g(1) =
(101), g(2) = (111),

Let the information sequence u = (1 0 1 1 1 0 0 ・ ・ ・ ).


The output sequences are given by
v(1) = (1 0 0 1 0 1 1 ・ ・ ・ )
v(2) = (1 1 0 0 1 0 1 ・ ・ ・ )
The code sequence can be written as v = (11, 01, 00, 10, 01, 10, 11, ・ ・ ・ )
3. Encoding of Convolutional code using generator matrix

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

4. Encoding of Convolutional code using polynomial multiplication method:

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

5. State Diagram

Since a convolutional encoder is a sequential circuit, it can be described by a state diagram.


The state of the encoder is defined as its shift register contents. For a
(n, 1,m) code at time instant l , the state is defined by the m−tuple Sl = (xl−1, xl−2, · · ·, xl−m)
where (xl−1, xl−2, · · ·, xl−m) are the m bits stored in the shift register.
There are 2m number of possible states for a (n, 1,m) convolutional code.
The output of a convolutional code at each time instant l , depends on the input and the current state.
vl = f (ul , Sl)

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

6. Trellis Diagram
The trellis diagram of a convolutional code includes a time-dimension. In each trellis section, the
states are represented twice, once at time l , and another at time l + 1. There is a branch
connecting the state Sl at time l to the state Sl+1 at time l + 1 if there exists an input ul
at time l that drives the encoder to state Sl+1 from state Sl . A trellis diagram for a convolutional
code is obtained by joining the trellis sections at different time units. Each code word is made up
of the labels on the trellis transitions that correspond to a specific path through the trellis.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

State diagram:

Trellis diagram

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

7. Classification of convolutional encoder

Classification of convolutional encoder


Feedforward encoder
Feedback encoder
Equivalent encoder
Catastrophic encoder
Controller canonical form realization
Observer canonical form realization
Minimal encoder

Feedforward Encoder:
The encoder corresponding to a polynomial generator matrix does not contain any feedback path, and
hence it is known as a feedforward encoder.
The output of a feedforward encoder can be represented as a linear combination of the current input and a
finite number of past inputs. This is also referred as nonrecursive encoder.
In figure, the encoder diagram of a rate R = 1, 2-state feedforward encoder with generator matrix G(D) =
[1+D] is shown using a shift register implementation.

Feedback Encoder:

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

The encoder corresponding to a rational generator matrix with atleast one nonpolynomial transfer
function contains a feedback path and is known as a feedback encoder. The output of a feedback encoder
can be represented as a linear combination of past inputs as well as past outputs. Hence the output
depends on infinite number of past inputs. This is also sometimes referred as recursive encoder.
In figure, the encoder diagram of a rate R = 1/2, 2-state feedback encoder with generator matrix G(D) =
[1 1/1+D ] is shown.

Systematic Encoder:

A rate R = k/n convolutional encoder whose k information sequences appear unchanged among the n
code sequences is called a systematic encoder, and its generator matrix is called a systematic
generator matrix. In figure, a systematic rate R = 1/2 feedback convolutional encoder is shown.

Nonsystematic Encoder:
In a nonsystematic convolutional encoder, the k information sequences do not appear unchanged in the n
code sequences. In figure, a nonsystematic rate R = 1/2 feedforward convolutional encoder is shown.

Equivalent Encoder

Two convolutional generator matrices G(D) and G’(D) are equivalent if they encode the same code.
Two convolutional encoders are equivalent if their generator matrices are equivalent.
Two generator matrices G(D) and G’(D) are equivalent if and only
if there exists a rational invertible matrix T(D) such that G’(D) = T(D)G(D)
Example: The generator matrix, G(D) = [1 1/1+D] and G’(D) = [1+D 1] are equivalent.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Catastrophic Encoder

A convolutional encoder is catastrophic if it encodes some information sequence with infinitely many
non-zero symbols into a code sequence with finitely many non-zero symbols.This means that a finite
number of channel errors may result in infinitely many errors in the receiver.
Example:
G(D) =[1 + D 1 + D2]

If the input sequence u(D) =[1/ 1+D]= 1+D + D2 + ・ ・ ・ , then the output sequence, [1 1 + D] has
only weight 3, even thought the information sequence has infinite weight.
Realization of Convolutional encoder

8. Controller Canonical Form Realization

In controller canonical form realization, to realize a rate R = k/n convolutional encoder, k shift register are
used for input sequences, and n adders are used to form the output sequences. the k input sequences enter
the shift registers at the left end of each shift register.
The n adders used to obtain output sequences are external to the shift register.
In Figure a rate R = 1, nonsystematic convolutional encoder with following generator function G(D) is
implemented in controller canonical form realization.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Observer Canonical Form Realization

In observer canonical form realization, to realize a rate R = k/n convolutional encoder, n shift register are
used for output sequences. The k input sequences enter the adders internal to the shift registers. The
lowest degree term in the generator polynomial represent the connections to the right hand side of the
shift registers. In Figure a rate R = 1, nonsystematic convolutional encoder with following generator
function G(D) is implemented in observer canonical form realization.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Example:
Let’s consider a rate R = 2/3 systematic feedforward encoder with enerator matrix
G(D) =[1 0 1+D + D2
0 1 1+D]
The parity check matrix can be written as
H(D) =[h(0) (D) h(1) (D) 1] =[1+ D + D2 1 + D 1]
The controller canonical form realization results in (3, 2, 3) encoder.
The observer canonical form realization results in (3, 2, 2) encoder.

Minimal encoder

A generator matrix of a convolutional code is minimal if its number of states is minimal over all
equivalent generator matrices. A minimal encoder is a realization of a minimal encoding matrix
G(D) with the minimal number of memory elements over all realizations of G(D).

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

9. Distance properties

The minimum free distance of a convolutional code


dfree≜ 𝑚𝑖𝑛
𝑢,𝑢 (𝑣, 𝑣): 𝑢 ≠ 𝑢
where v and 𝑣 are the codewords corresponding to the information
sequences u and 𝑣 respectively.
dfree is the minimum Hamming distance between any two code
sequences in the code.

Weight enumerating function calculation


The performance of a convolutional code depends on its weight
distribution.
The weight distribution of a convolutional code is obtained by
modifying the state diagram as follows:
All zero state is split into two states; initial state and final state and
self loop around the all zero state is removed.
Each branch is then labeled with a branch gain Xi, where i is the
weight of the n output bits on that branch.
Each path connecting the initial state to the final state is a non-zero
code sequence.
The path gain is the product of the branch gains along a path.
The weight of a code sequence is the power of X in the path gain of
the corresponding path.

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Decoding of convolutional codes-I: Viterbi algorithm


Viterbi decoding of (n, 1,m) code
A convolutional code can be represented by its trellis diagram. Usually, the initial state of a convolutional
code is a all-zero state. For time, l ≤ m, as information bits are shifted into the encoder, the number of
states are doubled. At time l = m, the number of states reaches 2m. Since one information bit enters the
encoder at each time instant, there are two branches leaving each state in the trellis diagram.
For time, l > m, there are also two branches merging into each state.
The encoding of a information sequence is equivalent to tracing a path through a trellis.

The encoder is returned to all zero sequence after an L bit information sequence,
u = (u0, u1, u2, ・ ・ ・ , uL−1)
During the termination process, the number of states are reduced by half until all trellis paths converge
back to the all-zero state.
For l ≤ m, there is exactly one path of length l, entering each node at level(time) l .
For l > m, there are exactly 2l−m paths of length l, entering each node at level(time) l .
There are total 2l paths of length l .

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology
Lecture Notes on: Convolutional Code
Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

You might also like