Convolutional Codes
Convolutional Codes
Convolutional Codes
code is
type
of error-
n2 = m0 + m-1
n3 = m1 + m-1.
Recursive codes are typically systematic and, conversely, nonrecursive codes are typically non-systematic. It isn't a strict
requirement, but a common practice.
The example encoder in Img. 2. is an 8-state encoder because
the 3 registers will create 8 possible encoder states (2 3). A
corresponding decoder trellis will typically use 8 states as well.
Recursive systematic convolutional (RSC) codes have become
more popular due to their use in Turbo Codes.
Impulse response, transfer function, and constraint length
A convolutional encoder is called so
a convolution of the input stream with
responses:
because it performs
the encoder's impulse
and
Define
by
,
.
Then
is
the
maximum
of
the polynomial
degrees of
the
, and the constraint length is defined as
. For instance, in the first example the constraint length is 3,
and in the second the constraint length is 4.
Trellis diagram
A convolutional encoder is a finite state machine. An encoder
with n binary cells will have 2n states.
Imagine that the encoder (shown on Img.1, above) has '1' in
the left memory cell (m0), and '0' in the right one (m-1). (m1 is
not really a memory cell because it represents a current
value). We will designate such a state as "10". According to an
input bit the encoder at the next turn can convert either to the
"01" state or the "11" state. One can see that not all
transitions are possible for (e.g., a decoder can't convert from
"10" state to "00" or even stay in "10" state).
All possible transitions can be shown as below: