Communications Blockset | ![]() ![]() |
Decode convolutionally encoded data using the Viterbi algorithm
Library
Convolutional sublibrary of Channel Coding
Description
The Viterbi Decoder block decodes input symbols to produce binary output symbols. This block can process several symbols at a time for faster performance.
Input and Output Sizes
If the convolutional code uses an alphabet of 2n possible symbols, then this block's input vector length is L*n for some positive integer L. Similarly, if the decoded data uses an alphabet of 2k possible output symbols, then this block's output vector length is L*k. The integer L is the number of frames that the block processes in each step.
The input can be either a sample-based vector with L = 1, or a frame-based column vector with any positive integer for L.
Input Values and Decision Types
The entries of the input vector are either bipolar, binary, or integer data, depending on the Decision type parameter.
To illustrate the soft decision situation more explicitly, the table below lists interpretations of values for 3-bit soft decisions.
Operation Modes for Frame-Based Inputs
If the input signal is frame-based, then the block has three possible methods for transitioning between successive frames. The Operation mode parameter controls which method the block uses:
k
input streams and constraint length vector constr
(using the polynomial description), then "enough" means k*max(constr-1)
.
In the special case when the frame-based input signal contains only one symbol, the Continuous mode is most appropriate.
Traceback Depth and Decoding Delay
The Traceback depth parameter, D, influences the decoding delay. The decoding delay is the number of zero symbols that precede the first decoded symbol in the output.
If the code rate is 1/2, then a typical Traceback depth value is about five times the constraint length of the code.
Reset Port
The reset port is usable only when the Operation mode parameter is set to Continuous. Checking the Reset input check box causes the block to have an additional input port, labeled Rst
. When the Rst
input is nonzero, the decoder returns to its initial state by configuring its internal memory as follows:
Using a reset port on this block is analogous to setting the Reset parameter in the Convolutional Encoder block to On nonzero Rst input.
Dialog Box
Rst
. Providing a nonzero input value to this port causes the internal memory to be set to its initial state prior to processing the input data.See Also
Convolutional Encoder, APP Decoder
References
[1] Clark, George C. Jr. and J. Bibb Cain. Error-Correction Coding for Digital Communications. New York: Plenum Press, 1981.
[2] Gitlin, Richard D., Jeremiah F. Hayes, and Stephen B. Weinstein. Data Communications Principles. New York: Plenum, 1992.
[3] Heller, Jerrold A. and Irwin Mark Jacobs. "Viterbi Decoding for Satellite and Space Communication." IEEE Transactions on Communication Technology, vol. COM-19, October 1971. 835-848.
![]() | Unipolar to Bipolar Converter | Voltage-Controlled Oscillator | ![]() |