The network transformations `do` and `do2` in Section 10.4.3
usually result
in filter networks that have little practical value, because they are
dense and rely on component matching for large levels of signal suppression in
the stop band. The transformation `do3` is designed to result in filters
that do not have these disadvantages. Still the filter networks
generated by `do3` are denser than ladder filters.

FA can optimize the dynamic range of filter networks, while constraining
the networks to be ladder networks. This will generally result in
a network which is less dense than the network that `do3` would
generate. However, the dynamic range from `do3` should be higher.

The command to generate optimal ladder filters is

transform: optladder;

This optimization consists of two phases: a coarse search and a fine search. In the coarse search, FA steps through all possible combinations of ladder parameters, taking a limited number of steps for each parameter, to find an initial guess of the optimum. To set the number of steps, specify

wheretransform: optladder( grid =<steps>);

It is possible to provide FA with an initial guess for the ladder parameters. FA will then skip the initial search. An example for a third-order filter may be

In this case, FA will start from a ladder filter with 30% of the total damping in integrator 1, 20% in integrator 2, and the rest (50%) in integrator 3. The damping parameters should each be between 0 and 1, and add up to a total of 1 or less. The number of parameters should be less than the order of the filter. Unspecified parameters will receive a zero value.transform: optladder(0.3, 0.2);

To only perform the coarse search and skip the fine search, specify

transform: optladder2(<steps>);