ptolemy.domains.sdf.lib
Class VariableFIR
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.domains.sdf.lib.SDFTransformer
ptolemy.domains.sdf.lib.FIR
ptolemy.domains.sdf.lib.VariableFIR
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, SequenceActor, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class VariableFIR
- extends FIR
This actor implements a type polymorphic finite-impulse response
filter with multirate capability, where the impulse response
of the filter is provided by an input. Since this filter operates on
Tokens, it is polymorphic in the type of data it operates on.
If the decimation parameter is unity (the default), then
the blockSize parameter specifies the number of inputs
of the filter that are processed per coefficient set provided on the
newTaps input. Otherwise, if decimation is greater than unity,
then the number of tokens consumed is the product of decimation
and blockSize, and all these inputs are processed using the
filter coefficients provided on newTaps.
In all other respects, the behavior of this
actor is the same as that of the base class.
Note that when a new set of filter coefficients arrives on newTaps,
if the new set has more coefficients than the old set, then a transient
will occur that may be unexpected. The delay line containing previously
consumed data has to be increased in length to match the number of
new coefficients. However, the extended part of the delay line cannot
possibly be initialized with previously consumed data because that
data has not been saved. Unless this actor were to save all
previously consumed data (which would be hopelessly inefficient), there
is no way it can be assured of always having the requisite data.
Thus, the actor initializes the extended part of the delay line
with zeros of the same type as the input data.
- Since:
- Ptolemy II 1.0
- Version:
- $Id: VariableFIR.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Edward A. Lee, Yuhong Xiong
- See Also:
Token
,
Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
Parameter |
blockSize
The number of inputs that use each each coefficient set is the
value of this parameter multiplied by the value of the
decimation parameter. |
TypedIOPort |
newTaps
The input for new tap values. |
Fields inherited from class ptolemy.domains.sdf.lib.FIR |
_data, _decimationPhaseValue, _decimationValue, _interpolationValue, _mostRecent, _phaseLength, _reinitializeNeeded, _taps, _zero, decimation, decimationPhase, interpolation, taps |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
VariableFIR(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
Method Summary |
void |
attributeChanged(Attribute attribute)
Set a flag that causes recalculation of various local variables
that are used in execution on the next invocation of fire(). |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
fire()
Consume the inputs and produce the outputs of the FIR filter. |
boolean |
prefire()
Return false if the input does not have enough tokens to fire. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
blockSize
public Parameter blockSize
- The number of inputs that use each each coefficient set is the
value of this parameter multiplied by the value of the
decimation parameter.
This is an integer that defaults to 1.
newTaps
public TypedIOPort newTaps
- The input for new tap values. This is an array.
VariableFIR
public VariableFIR(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Set a flag that causes recalculation of various local variables
that are used in execution on the next invocation of fire().
- Overrides:
attributeChanged
in class FIR
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the attribute contains
an invalid value or if the super method throws it.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Clone the actor into the specified workspace. This calls the
base class and then resets the type constraints.
- Overrides:
clone
in class FIR
- Parameters:
workspace
- The workspace for the new object.
- Returns:
- A new actor.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
fire
public void fire()
throws IllegalActionException
- Consume the inputs and produce the outputs of the FIR filter.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class FIR
- Throws:
IllegalActionException
- If parameter values are invalid,
or if there is no director, or if runtime type conflicts occur.
prefire
public boolean prefire()
throws IllegalActionException
- Return false if the input does not have enough tokens to fire.
Otherwise, return true.
- Specified by:
prefire
in interface Executable
- Overrides:
prefire
in class FIR
- Returns:
- False if the number of input tokens available is not at least
equal to the decimation parameter multiplied by the
blockSize parameter.
- Throws:
IllegalActionException
- If the superclass throws it.