next up previous contents
Next: Filter Networks Up: Specify a transfer function Previous: Ripple group delay   Contents

Custom pole pattern

The cascade command generates a cascade filter with a specified pole-zero pattern.
cascade ( <PoleZeroSpec> [, <PoleZeroSpec>]* ) ;
<PoleZeroSpec> : <PoleSpec> [<ZeroSpec>]
<PoleSpec> : pole ( <real> )
  | pole ( <real>, <imag> )
<ZeroSpec> : zero ( <real> )
  | zero ( <real>, <imag> )
Each pole or pole/zero specification represents one first or second order substage in the resulting cascade filter. The stages appear in the same order as they are specified, starting at the input of the filter. A pole may appear without a zero, but not the other way round. The pole specification needs to precede the zero specification. A pole or zero with a zero imaginary part is interpreted as a single real root; otherwise a pair of complex roots is assumed. A non-real pole may be accompanied by a real zero, but if it is tried the other way round, only the real part of the zero is taken into consideration.

Each biquad has built-in damping to move the poles that this biquad realizes away from the imaginary axis. Each one of the two integrators that constitute a biquad may contribute to the total amount of damping in this biquad. By default, half of the total for each biquad goes to each integrator. This behavior can be modified with the variable cascdist. cascdist should be between 0 and 1. If it is 0, the first integrator will not contribute to the damping, and the second integrator will contribute everything. If it is 1, the first integrator will contribute all damping, and the second integrator nothing. If it is 0.5, half of the total goes to each integrator, which is the default.

As an example, the following input

cascade (
        pole (-0.425971),
        pole (-0.285118, 0.703363) zero (0, 1.55741),
        pole (-0.081731, 1.01253)  zero (0, 2.33188)
) ;
results in the same filter as the following.
cauer(5, 0.5, 1.5);

next up previous contents
Next: Filter Networks Up: Specify a transfer function Previous: Ripple group delay   Contents
2009-06-03