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 time-invariant properties. They were proposed by Elias [Eli54].

For a binary code alphabet a binary information (data) stream u is divided into blocks (information frames) ui of length k bits. Each information block ui is mapped by the encoder to a code block (codeword frame) vi of length n bits. The ith code block vi depends on the ith information block ui 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  Make your own experiment to make your own experiments on current topic.