Introduction to convolutional codes
To protect modern communication systems from errors, block codes
are often used. Tthe data stream is segmented into blocks of k
information symbols, and each block is encoded into n
codeword symbols. The successive codewords
are not coupled in any way by the encoder.
An alternative to block codes are tree codes. The most important
tree codes are convolutional codes. The data (information) stream
is divided into small blocks (information frames), each of k
symbols. The encoder stores m such information frames. During each
frame time, a new information frame is shifted into the encoder,
and the oldest frame is shifted out and rejected. The incoming information
frame and m previous information blocks
are encoded into a single code block of n
symbols. Hence successive code blocks are coupled together by the
encoding procedure.
Convolutional codes are tree codes
that satisfy additional linearity and timeinvariant properties.
They were proposed by Elias [Eli54].
For a binary code alphabet a binary information (data) stream
u is divided into blocks (information
frames) u_{i} of length k
bits. Each information block u_{i} is mapped by the
encoder to a code block (codeword frame) v_{i}
of length n bits. The ith code block v_{i}
depends on the ith information block u_{i} and m
previous information blocks. We say that the encoder has a memory
order of m.
Successive code blocks are coupled together by the encoding procedure.
The rate of the code is defined as R=k/n.
You can 'click' on
to make your own experiments on current topic.
