Sign in

username:

password:



Not a member?

Search Online Books



Search tips

Free Online Books

Sponsor

NEW! TMS320C6474: 3x the performance. 1/3 the cost. Three 1 GHz cores on 1 chip.

Chapters

Chapter Contents:

Search Physical Audio Signal Processing

  

Book Index | Global Index


Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?

  

Tuning by Lagrange Interpolation

Researchers at the Helsinki University of Technology have historically used Lagrange interpolation for digital-waveguide fine-tuning [231,515,238]. This has the advantage of being robust under rapidly time-varying conditions, as opposed to allpass interpolation which can exhibit artifacts when the delay changes too rapidly. However, Lagrange interpolation, like all FIR filters except pure delays, has the disadvantage of introducing some gain error in the string feedback loop, unlike allpass interpolation.

As mentioned in §K.1.3, the closed-form expression for Lagrange-interpolation coefficients is

$\displaystyle h_\Delta(n) = \prod_{\stackrel{k=0}{k\neq n}}^N \frac{\Delta-k}{n-k},
\quad n=0,1,2,\ldots,N
$

where $ N$ is the length of the interpolator and $ \Delta $ is the desired delay, centered about $ (N-1)/2$. Note that $ N=1$ corresponds to linear interpolation. For audio delay-line interpolation, the fourth-order case $ N=4$ is often sufficient (and sometimes overkill).

For the same reasons discussed in §D.2.6, fourth-order Lagrange interpolation of a delay line is best viewed as a five-tap interpolating read of the delay line at the desired fractional delay. In normal object-oriented languages, an interpolating read is naturally implemented internal to the interpolating delay-line object. In Faust, the same effect is obtained by specifying five delay lines, as shown in Fig.D.9. While it appears that five delay lines are needed in the Faust implementation, only one is actually used in the generated C++ code, thanks to compiler optimizations. Faust implementations of Lagrange inter