A delay line interpolated by a first-order allpass filter is drawn in Fig.4.3.
Intuitively, ramping the coefficients of the allpass gradually ``grows'' or ``hides'' one sample of delay. This tells us how to handle resets when crossing sample boundaries.
The difference equation is
Thus, like linear interpolation, first-order allpass interpolation requires only one multiply and two adds per sample of output.
The transfer function is
Figure 4.4 shows the phase delay of the first-order digital allpass filter for a variety of desired delays at dc. Since the amplitude response of any allpass is 1 at all frequencies, there is no need to plot it.
The first-order allpass interpolator is generally controlled by setting its dc delay to the desired delay. Thus, for a given desired delay , the allpass coefficient is (from Eq. (4.3))
From Eq. (4.2), we see that the allpass filter's pole is at , and its zero is at . A pole-zero diagram for is given in Fig.4.5. Thus, zero delay is provided by means of a pole-zero cancellation! Due to inevitable round-off errors, pole-zero cancellations are to be avoided in practice. For this reason and others (discussed below), allpass interpolation is best used to provide a delay range lying wholly above zero, e.g.,
The STK class implementing allpass-interpolated delay is DelayA.