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.
<p>
If the <i>decimation</i> parameter is unity (the default), then
the <i>blockSize</i> parameter specifies the number of inputs
of the filter that are processed per coefficient set provided on the
<i>newTaps</i> input. Otherwise, if <i>decimation</i> is greater than unity,
then the number of tokens consumed is the product of <i>decimation</i>
and <i>blockSize</i>, and all these inputs are processed using the
filter coefficients provided on <i>newTaps</i>.
In all other respects, the behavior of this
actor is the same as that of the base class.
<p>
Note that when a new set of filter coefficients arrives on <i>newTaps</i>,
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 <i>all</i>
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.
Edward A. Lee, Yuhong Xiong
$Id: VariableFIR.java 70398 2014-10-22 23:44:32Z cxh $
Ptolemy II 1.0
Yellow (neuendor)
Yellow (neuendor)
The input for new tap values. This is an array.
The number of inputs that use each each coefficient set is the
value of this parameter multiplied by the value of the
<i>decimation</i> parameter.
This is an integer that defaults to 1.