Professional Documents
Culture Documents
Convolutional Codes
Convolutional Codes
Telecommunications Laboratory
Alex Balatsoukas-Stimming
Convolutional Codes
1 / 30
Outline
1
Trellis diagrams
Convolutional codes
A first look
Theoretical foundations
Defining convolutional codes
Systematic encoders
Polynomial encoders
Minimal encoders
Punctured convolutional codes
Performance evaluation
Convolutional Codes
2 / 30
Coding on a Trellis
Two categories:
1
2
Convolutional Codes
3 / 30
Trellis example
For = 2 we have 22 = 4 states: 00, 01, 10 and 11.
From state yz we can only move to xy , where x denotes the input
symbol.
Convolutional Codes
4 / 30
Convolutional codes
Convolutional Codes
5 / 30
Convolutional Codes
6 / 30
For each input bit, we have two output bits, so the rate of the
encoder is 1/2.
The output bits are:
c1 = x1 + x2 + x3
c2 = x1 + x3
Telecommunications Laboratory (TUC)
Convolutional Codes
7 / 30
Convolutional Codes
8 / 30
State diagram
Another representation of a convolutional code is its state diagram.
A state diagram describes the transitions between states and the
corresponding output symbols without an explicit time axis.
Convolutional Codes
9 / 30
Convolutional Codes
10 / 30
Convolutional Codes
11 / 30
Convolutional Codes
12 / 30
gi D i
i =0
x(D) =
xi D i
i =
u(D) =
ui D i
i =
Convolutional Codes
13 / 30
Convolutional Codes
14 / 30
Convolutional Codes
g12 = 1 + D 2
November 6th, 2008
15 / 30
be realizable
be delay free
have a rank k0 generator matrix
Convolutional Codes
16 / 30
Convolutional Codes
17 / 30
Convolutional Codes
D
1+D 3
D2
1+D 3
= Q(D)G (D)
18 / 30
"
1 0
G (D) =
0 1
D
1+D 3
D2
1+D 3
Convolutional Codes
19 / 30
Polynomial encoders
Let q(D) denote the least common multiple of all the denominators
of the entries of the generator matrix.
Then we have that:
G (D) = q(D)G(D)
where G (D) is an encoder which is polynomial and equivalent to
G(D).
Thus, every convolutional code admits a polynomial encoder.
Convolutional Codes
20 / 30
Minimal encoders
Convolutional Codes
21 / 30
Convolutional Codes
22 / 30
Convolutional Codes
23 / 30
g1 g2 . . . g+1
g1 g2 . . . g+1
=
g1
g2
. . . g+1
...
...
... ...
Convolutional Codes
24 / 30
Direct termination
Convolutional Codes
25 / 30
Zero termination
Convolutional Codes
26 / 30
Tail-biting
We can force the encoder to
tail-biting trellis.
g1
g2
g
1
GN =
g+1
g
g+1
..
..
.
.
g2
g3
. . . g+1
g2 . . . g+1
g1
g2
. . . g+1
g1
g2
. . . g+1
g1
g2
...
g
..
..
..
.
.
.
..
..
.
.
g2
. . . g+1
g1
Convolutional Codes
27 / 30
Performance evaluation
Convolutional Codes
28 / 30
Convolutional Codes
29 / 30
Convolutional Codes
30 / 30