Decode trellis-coded modulation data, mapped using arbitrary constellation
TCM, in Digital Baseband sublibrary of Modulation
The General TCM Decoder block uses the Viterbi algorithm to decode a trellis-coded modulation (TCM) signal that was previously modulated using an arbitrary signal constellation.
The Trellis structure and Signal constellation parameters in this block should match those in the General TCM Encoder block, to ensure proper decoding. In particular, the Signal constellation parameter must be in set-partitioned order.
This block accepts a column vector input signal containing complex numbers. The
input signal must be double
or single
. The
reset port signal must be double
or Boolean
.
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 General TCM Decoder block's output is a binary column vector whose length is 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 port, 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 all-zeros 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 all-zeros 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.
A complex vector that lists the points in the signal constellation in set-partitioned order.
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. The choices are
Continuous
,
Truncated
, and
Terminated
.
When you select this check box, the block has a second input port labeled
Rst
. Providing a nonzero value to this port causes
the block to set its internal memory to the initial state before processing
the input data. This field 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 Trellis-Coded Modulation with Applications, New York, Macmillan, 1991.
[2] Proakis, John G., Digital Communications, Fourth edition, New York, McGraw-Hill, 2001.