Thiran Allpass Interpolators
Given a desired delay samples, an order allpass filter
- without further scaling
- For sufficiently large , stability is guaranteed
Rule of thumb:
- It can be shown that the mean group delay of any stable th-order allpass filter is samples .5.7
- Only known closed-form case for allpass interpolators of arbitrary order
- Effective for delay-line interpolation needed for tuning since pitch perception is most acute at low frequencies.
- Since Thiran allpass filters have maximally flat group-delay at dc, like Lagrange FIR interpolation filters, they can be considered the recursive extension of Lagrange interpolation.
Thiran Allpass Interpolation in Matlab
function [A,B] = thiran(D,N) % [A,B] = thiran(D,N) % returns the order N Thiran allpass interpolation filter % for delay D (samples). A = zeros(1,N+1); for k=0:N Ak = 1; for n=0:N Ak = Ak * (D-N+n)/(D-N+k+n); end A(k+1) = (-1)^k * nchoosek(N,k) * Ak; end B = A(N+1:-1:1);
Group Delays of Thiran Allpass Interpolators
Figure shows a family of group-delay curves for Thiran allpass interpolators, for orders 1, 2, 3, 5, 10, and 20. The desired group delay was equal to the order plus 0.3 samples (which is in the ``easy zone'' for an allpass interpolator).
Windowed Sinc Interpolation