Class TrellisDecoder

  • All Implemented Interfaces:
    java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

    public class TrellisDecoder
    extends ViterbiDecoder
    The TrellisDecoder is a generalization of the ViterbiDecoder. It can handle trellis coding, which has non-antipodal constellation. For a k/n convolutional code, the constellation should map each codeword into a complex number. Hence the length of the constellation should be a complex array of length 2n. For example, a 1/2 rate convolutional code should use 4PSK. a k/3 convolutional code should use 8PSK.

    The input port of the TrellisDecoder is complex. On each firing, the TrellisDecoder reads one input. The Euclidean distance is defined as the distance between the noisy input and the point in the constellation mapped from the codeword. Like in ViterbiDecoder, this actor produces k outputs on each firing.

    See ConvolutionalCoder and ViterbiDecoder for details about the meaning of these parameters.

    For more information on convolutional codes, Viterbi decoder, and trellis coding, see the ConvolutionalCoder actor, ViterbiDecoder actor and Proakis, Digital Communications, Fourth Edition, McGraw-Hill, 2001, pp. 471-477 and pp. 482-485, or Barry, Lee and Messerschmitt, Digital Communication, Third Edition, Kluwer, 2004.

    Since:
    Ptolemy II 4.0
    Version:
    $Id$
    Author:
    Ye Zhou, contributor: Edward A. Lee
    Pt.AcceptedRating:
    Red (cxh)
    Pt.ProposedRating:
    Yellow (eal)