# 7.5 Convolutional coding

## Introduction

In contrast to block codes, a convolutional code is implemented on a bit-by-bit (serial) basis for the incoming source data stream. The encoder has memory and executes an algorithm using a predefined number of the most recent bits to yield the new coded output sequence. The decoding process is also usually a serial process based on present and previous received data bits (or symbols). Both the encoder and decoder can be implemented using recursive engines, with one of the most efficient and well known being the Viterbi convolutional decoder, named after Andrew Viterbi, the inventor Viterbi (1967).