Class UpSample

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

    public class UpSample
    extends SDFTransformer
    This actor upsamples an input stream by an integer factor by inserting tokens with value zero. The upsample factor is given by the factor parameter. On each firing, this actor reads one token from the input produces factor tokens on the output port. All but one of these is a zero-valued token of the same type as the input. The remaining one is the token read from the input. The position of this remaining one is determined by the phase parameter. This parameter has a value between 0 and factor-1. If it is 0, then the input token is the first output token, followed by zeros. If it is factor-1, then it is the last output. Thus, if this actor is followed by the DownSample actor with the same factor, and the two phase parameters have a sum of factor-1, the combination has no effect.

    By default, factor is 2, and phase is the expression "factor-1". This means that by default, the input token that is read is the last one produced at the output.

    This actor is data polymorphic. It can accept any token type on the input that supports the zero() method, and it sends output tokens of that type.

    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Steve Neuendorffer, Edward A. Lee
    See Also:
    DownSample
    Pt.AcceptedRating:
    Yellow (eal)
    Pt.ProposedRating:
    Yellow (neuendor)
    • Field Detail

      • factor

        public Parameter factor
        The number of output tokens to produced per input token read. This is an integer that defaults to 2 and must be greater than zero.
      • phase

        public Parameter phase
        The phase of the output with respect to the input. This is an integer that defaults to factor-1 and must be between 0 and factor-1. If phase = 0, the input is the first output, while if phase = factor-1 then the input is the last output.
    • Method Detail

      • fire

        public void fire()
                  throws IllegalActionException
        Consume the input Token and produce the same token on the output. Then create a number of zero tokens of the same type as the input token on the output port, so that output.tokenProductionRate tokens are created in total. If there is not token on the input, then this method throws a NoTokenException (which is a runtime exception).
        Specified by:
        fire in interface Executable
        Overrides:
        fire in class AtomicActor<TypedIOPort>
        Throws:
        IllegalActionException - If a runtime type conflict occurs.