Class RecursiveLattice

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

    public class RecursiveLattice
    extends Transformer
    A recursive (all-pole) filter with a lattice structure. The coefficients of such a filter are called "reflection coefficients." Recursive lattice filters are typically used as synthesis filters for random processes because it is easy to ensure that they are stable. A recursive lattice filter is stable if its reflection coefficients are all less than unity in magnitude. To get the reflection coefficients for a linear predictor for a particular random process, you can use the LevinsonDurbin actor. The inputs and outputs are of type double.

    The default reflection coefficients correspond to the following transfer function:

                               1
     H(z) =  --------------------------------------
            1 - 2z-1 + 1.91z-2 - 0.91z-3 + 0.205z-4
     

    The structure of the filter is as follows:

          y[0]          y[1]                 y[n-1]           y[n]
     X(n) ---(+)->--o-->----(+)->--o--->-- ... ->--(+)->--o--->---o--->  Y(n)
               \   /          \   /                  \   /        |
              +Kn /        +Kn-1 /                  +K1 /         |
                 X              X                      X          |
              -Kn \        -Kn-1 \                  -K1 \         V
               /   \          /   \                  /   \        |
             (+)-<--o--[z]--(+)-<--o--[z]- ... -<--(+)-<--o--[z]--/
                    w[1]           w[2]                   w[n]
     
    where the [z] are unit delays and the (+) are adders and "y" and "w" are variables representing the state of the filter.

    The reflection (or partial-correlation (PARCOR)) coefficients should be specified right to left, K1 to Kn as above. Using exactly the same coefficients in the Lattice actor will result in precisely the inverse transfer function.

    Note that the definition of reflection coefficients is not quite universal in the literature. The reflection coefficients in reference [2] are the negative of the ones used by this actor, which correspond to the definition in most other texts, and to the definition of partial-correlation (PARCOR) coefficients in the statistics literature. The signs of the coefficients used in this actor are appropriate for values given by the LevinsonDurbin actor.

    References

    [1] J. Makhoul, "Linear Prediction: A Tutorial Review", Proc. IEEE, Vol. 63, pp. 561-580, Apr. 1975.

    [2] S. M. Kay, Modern Spectral Estimation: Theory & Application, Prentice-Hall, Englewood Cliffs, NJ, 1988.

    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Edward A. Lee, Christopher Hylands, Steve Neuendorffer
    See Also:
    IIR, LevinsonDurbin, Lattice, VariableRecursiveLattice
    Pt.AcceptedRating:
    Yellow (cxh)
    Pt.ProposedRating:
    Yellow (cxh)