Decode trelliscoded modulation data, modulated using QAM method
TCM, in Digital Baseband sublibrary of Modulation
The Rectangular QAM TCM Decoder block uses the Viterbi algorithm to decode a trelliscoded modulation (TCM) signal that was previously modulated using a QAM signal constellation.
The Mary number parameter represents the number of points in the signal constellation, which also equals the number of possible output symbols from the convolutional encoder. (That is, log_{2}(Mary number) is the number of output bit streams from the convolutional encoder.)
The Trellis structure and Mary number parameters in this block should match those in the Rectangular QAM TCM Encoder block, to ensure proper decoding.
This block accepts a column vector input signal containing complex numbers. For information about the data types each block port supports, see Supported Data Types.
If the convolutional encoder described by the trellis structure represents a rate k/n code, then the Rectangular QAM TCM Decoder block's output is a binary column vector with a length of k times the vector length of the input signal.
The block has three possible methods for transitioning between successive frames. The Operation mode parameter controls which method the block uses. This parameter also affects the range of possible values for the Traceback depth parameter, D.
In Continuous
mode, the
block initializes all state metrics to zero at the beginning of the
simulation, waits until it accumulates D symbols, and then uses a
sequence of D symbols to compute each of the traceback paths. D can
be any positive integer. At the end of each frame, the block saves
its internal state metric for use with the next frame.
If you select Enable the reset input, the
block displays another input port, labeled Rst
.
This port receives an integer scalar signal. Whenever the value at
the Rst
port is nonzero, the block resets all state
metrics to zero and sets the traceback memory to zero.
In Truncated
mode, the
block treats each frame independently. The traceback path starts at
the state with the lowest metric. D must be less than or equal to
the vector length of the input.
In Terminated
mode, the
block treats each frame independently. The traceback path always starts
at the allzeros state. D must be less than or equal to the vector
length of the input. If you know that each frame of data typically
ends at the allzeros state, then this mode is an appropriate choice.
If you set Operation mode to Continuous
,
then this block introduces a decoding delay equal to Traceback
depth*k bits, for a rate k/n convolutional code. The decoding
delay is the number of zeros that precede the first decoded bit in
the output.
The block incurs no delay for other values of Operation mode.
MATLAB^{®} structure that contains the trellis description of the convolutional encoder.
The number of points in the signal constellation.
The number of trellis branches (equivalently, the number of symbols) the block uses in the Viterbi algorithm to construct each traceback path.
The operation mode of the Viterbi decoder. Choices are Continuous
, Truncated
,
and Terminated
.
When you select this check box, the block has a second input
port labeled Rst
. Providing a nonzero input value
to this port causes the block to set its internal memory to the initial
state before processing the input data. This option appears only if
you set Operation mode to Continuous
.
Select the data type for the block output signal as boolean
or single
.
By default, the block sets this to double
.
Port  Supported Data Types 

Input 

Reset 

Output 

[1] Biglieri, E., D. Divsalar, P. J. McLane and M. K. Simon, Introduction to TrellisCoded Modulation with Applications, New York, Macmillan, 1991.
[2] Proakis, John G., Digital Communications, Fourth edition, New York, McGrawHill, 2001.