Higher Order Delay Line Interpolation
Bandlimited Interpolation
ImplementationSearch Physical Audio Signal Processing
Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?
Our implementation provides signal evaluation at an arbitrary time,
where time is specified as an unsigned binary fixed-point number in
units of the input sampling period (assumed constant).
Figure K.17 shows the time register
, and
Figure K.18 shows an example configuration of the input
signal and lowpass filter at a given time. The time register is
divided into three fields: The leftmost field gives the number
of
samples into the input signal buffer, the middle field is an initial
index
into the filter coefficient table
, and the rightmost
field is interpreted as a number
between 0 and
for doing
linear interpolation between samples
and
(initially) of the
filter table. The concatenation of
and
are called
which is interpreted as the position of the current time
between samples
and
of the input signal.
Let the three fields have
,
, and
bits,
respectively. Then the input signal buffer contains
samples, and the filter table contains
``samples per
zero-crossing.'' (The term ``zero-crossing'' is precise only for the case
of the ideal lowpass; to cover practical cases we generalize
``zero-crossing'' to mean a multiple of time
, where
is the lowpass cutoff frequency.) For example, to use the ideal lowpass
filter, the table would contain
sinc
.
Our implementation stores only the ``right wing'' of a symmetric finite-