Viterbi encoding is widely used for satellite and other noisy communications channels.
There are two important components of a channel using Viterbi encoding:
the Viterbi encoder (at the transmitter),
the Viterbi decoder (at the receiver).
A Viterbi encoder adds extra information in the transmitted signal to reduce the probability of errors in the received signal that may be corrupted by noise.
A Viterbi decoder performs a maximum likelihood detection of 1 bit data transmitted over a channel with inter-symbol interference (ISI). The 1-bit data to be transmitted is encoded with an n-bit convolutional code in the convolutional encoder.
- Decoding of convolutional codes,
- Hard Decision Decoding,
- Trace-back method for survivor memory,
- Parameterized architecture allows for customization of the following functions:
- Convolutional code definition parameters: code rate, code generation vectors, code constraint length.
- The survivor memory word length (RAM)
- The initial path metric for state 0,
- Parallel or serial (reverse or correct order) data output format.