VariableFIR
ptolemy.domains.sdf.lib.VariableFIR

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.

Author(s): Edward A. Lee, Yuhong Xiong
Version:$Id: VariableFIR.java,v 1.32 2005/07/08 19:58:46 cxh Exp $
Pt.Proposed Rating:Yellow (neuendor)
Pt.Accepted Rating:Yellow (neuendor)


newTaps
The input for new tap values. This is an array.



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.