56
D. Rocchesso: Sound Processing
Lagrange interpolation
0
1
2
3
0
0.2
0.4
0.6
0.8
1
Frequency Response (magnitude)
frequency [rad/sample]
magnitude
0
1
2
3
-3
-2.5
-2
-1.5
-1
-0.5
0
Frequency Response (phase)
frequency [rad/sample]
phase [rad]
0
1
2
3
0
0.2
0.4
0.6
0.8
1
Frequency Response (phase delay)
frequency [rad/sample]
phase delay [samples]
Figure 2: Magnitude, phase, and phase delay responses of a linear interpolation
filter (1 - ) + z
-1
for = k/16, k = 0, . . . , 16
treated as an additional frequency-dependent loss, which should be somewhat
taken into account.
Interpolation filters can be of order higher than the first. We can do quadratic,
cubic, or other polynomial interpolations. In general, the problem of designing
an interpolator can be turned into the design of an l-th order FIR filter approx-
imating a constant and linear phase frequency response. Several criteria can be
adopted to drive the approximation problem. One approach is to impose that
the first L derivatives of the error function will be zero at zero frequency. In
this way we obtain maximally-flat filters whose coefficients are the same used
in Lagrange interpolation as it is taught in numerical analysis courses. For a
thorough treatment of interpolation filters we suggest reading the article [51].
Here we only point out that using high orders allows to keep the magnitude
response close to unity and a phase response close to linear in a wide frequency
band. Of course, this is paid in terms of computational complexity.
In special architectures, where the access to delay lines is governed by (5)
and (6), the linear interpolation is implemented very efficiently by using the
r - s bits that are not used to access the 2
s
-samples delay line. In fact, if the
address is computed using r bits, the r - s least significant bits represent the
fractional part of the delay or, equivalenty, the coefficient c
1
of the interpolator.
Therefore, it is sufficient to access two consecutive delay cells and keep the
values c
0
and c
1
= 1 - c
0
in two registers. The implementation of a glissando
Next Page >>
<< Previous Page
Back to the Table of Contents