User`s guide
Variable Fractional Delay
5-492
The input to the Delay port, v, contains floating-point values in the range
0 ≤ v ≤ D specifying the number of sample intervals to delay the current input.
The input to the
Delay port can be:
•An M
i
-by-N matrix containing the number of sample intervals to delay each
sample in each channel of the current input
•An M
i
-by-1 matrix containing the number of sample intervals to delay each
sample in every channel of the current input
•A 1-by-N matrix containing the number of sample intervals to delay every
sample in each channel of the current input
For example, if v is the M
i
-by-1 matrix [v(1) v(2) ... v(Mi)]', the earliest
sample in the current frame is delayed by
v(1) fractional sample intervals, the
following sample in the frame is delayed by
v(2) fractional sample intervals,
and so on. The set of fractional delays contained in v is applied identically to
every channel of a multichannel input.
The
Initial conditions parameter specifies the values in the block’s memory at
the start of the simulation in the same manner as for the Variable Integer
Delay block. See the section on frame-based initial conditions there for
complete information.
Interpolation Modes
The delay value specified at the Delay port is used as an index into the block’s
memory,
U, which stores the D+1 most recent samples received at the In port
for each channel. For example, an integer delay of
5 on a scalar input sequence
retrieves and outputs the fifth most recent input sample from the block’s
memory,
U(6). Fractional delays are computed by interpolating between stored
samples; the two available interpolation modes are described below.
Linear Interpolation Mode. For noninteger delays, at each sample time the Linear
Interpolation
mode uses the two samples in memory nearest to the specified
delay to compute a value for the sample at that time. If
v is the specified
fractional delay for a scalar input, the output sample,
y, is computed as follows.
vi = floor(v) % vi = integer delay
vf = v-vi % vf = fractional delay
y = (1-vf)*U(vi) + vf*U(vi+1)