Multistage interpolator design

designs a multistage interpolator that has an overall interpolation factor of
`C`

= designMultistageInterpolator(`L`

)`L`

. In order for `C`

to be multistage,
`L`

must not be a prime number. For details, see Algorithms. The design process can
take a while if `L`

has many factors.

designs a multistage interpolator with a sampling rate of `C`

= designMultistageInterpolator(`L`

,`Fs`

,`TW`

)`Fs`

and a
transition width of `TW`

. Sampling rate in this case refers to the output
sampling rate of the signal after the multistage interpolator.

The multistage interpolator has a cutoff frequency of
`Fs`

/(2`L`

).

specifies additional design parameters using one or more name-value pair arguments.`C`

= designMultistageInterpolator(___,`Name,Value`

)

```
C =
designMultistageInterpolator(48,48000,200,80,'NumStages','auto')
```

designs a
multistage interpolator with the least number of multiplications per input sample
(MPIS).The overall interpolation factor is split into smaller factors with each factor being the interpolation factor of the corresponding individual stage. The combined interpolation of all the individual stages must equal the overall interpolation. The combined response must meet or exceed the given design specifications.

The function determines the number of interpolator stages through the
`'NumStages'`

argument. The sequence of stages is determined based on the
implementation cost. By default, `'NumStages'`

is set to
`'auto'`

, resulting in a sequence that gives the lowest number of MPIS.
When multiple configurations result in the same lowest MPIS within the tolerance specified,
the configuration that yields the lowest number of coefficients overall is chosen. If
`'MinTotalCoeffs'`

is set to `true`

, the function
determines the sequence that requires the lowest number of total coefficients.

By default, the `'CostMethod'`

is set to `'estimate'`

.
In this mode, the function estimates the filter order required for each stage and designs the
filter based on the estimate. This method is faster but can lead to suboptimal designs. For an
optimal design, set `'CostMethod'`

to `'design'`

. In this
mode, the function designs each stage and computes the filter order.