If we consider our digital audio samples
to
correspond to successive moments in time, then time shifting the
signal by
samples corresponds to a delay of
time units, where
is the sample rate. (If
is
negative, then we are saying that the output predicts the input;
this isn't practical in systems, such as Pd, that schedule
computations in order of time.)
Figure 7.3 shows one example of a linear delay network: an assembly of delay units, possibly with amplitude scaling operations, combined using addition and subtraction. The output is a linear function of the input, in the sense that adding two signals at the input is the same as processing each one separately and adding the results. Moreover, they are time invariant, i.e., they create no new frequencies in the output that weren't present in the input.
In general there are two ways of thinking about delay networks.
We can think in the time
domain, in which we draw waveforms as functions of time (or of
the index
), and consider delays as time shifts.
Alternatively we may think in the frequency domain, in which we dose the input with
a sinusoid (so that its output is a sinusoid at the same frequency)
and report the amplitude and/or phase change brought by the
network, as a function of the frequency (encoded in the complex
number
). We'll now look at the delay network of
Figure 7.3 in each of the two ways in
turn.
![]() |
Figure 7.4 shows the network's behavior
in the time domain. We invent some sort of suitable test function
as input (it's a rectangular pulse eight samples wide in this
example) and graph the input and output as functions of the sample
number
. This particular delay network adds the
input to a delayed copy of itself.
A frequently used test function is an impulse, which is a pulse lasting only one
sample. The utility of this is that, if we know the output of the
network for an impulse, we can find the output for any other
digital audio signal--because any signal
is a
sum of impulses, one of height
, the next one
occurring one sample later and having height
, and so on. Later, when the networks get more
complicated, we will move to using impulses as input signals to
show their time-domain behavior.
On the other hand, we can analyze the same network in the
frequency domain by considering a (complex-valued) test
signal,
![]() |
Figure 7.5 is a graph, in the complex
plane, showing how the quantities
and
combine additively. To add complex
numbers we add their real and complex parts separately. So the
complex number
(real part
,
imaginary part
) is added coordinate-wise to the
complex number
(real part
, imaginary part
). This is shown graphically
by making a parallelogram, with corners at the origin and at the
two points to be added, and whose fourth corner is the sum
.
As the figure shows, the result can be understood by
symmetrizing it about the real axis: instead of
and
, it's easier to sum the quantities
and
,
because they are symmetric about the real (horizontal) axis.
(Strictly speaking, we haven't defined the quantities
and
; we use those
expressions to denote unit complex numbers whose arguments are half
those of
and
.) We rewrite
the gain as:
Since the network has greater gain at some frequencies than at
others, it may be considered as a filter, that can be used to separate certain
components of a sound from others. Because of the shape of this
particular gain expression as a function of
,
this kind of delay network is called a (non-recirculating) comb filter.
The output of the network is a sum of two sinusoids of equal
amplitude, and whose phases differ by
. The
resulting output amplitude can therefore be checked against the
prediction of Section
--and
they agree. The result also agrees with common sense: if the
angular frequency
is set so that an
integer number of periods fit into
samples, i.e.,
if
is a multiple of
, the output of the delay is exactly the same as the
original signal, and so the two combine to make an output with
twice the original amplitude. If the delay is half the period, on
the other hand (so that
) the delay output is out of
phase and cancels the input exactly.
This particular delay network has an interesting application: if
we have a periodic (or nearly periodic) incoming signal, whose
fundamental frequency is
radians per sample, we
can tune the comb filter so that the peaks in the gain are aligned
at even harmonics and the odd ones fall where the gain is zero. To
do this we choose
, i.e., set the
delay time to exactly one half period of the incoming signal. In
this way we get a new signal whose harmonics are
, and so it
now has a new fundamental frequency at twice the original one.
Except for a factor of two, the amplitudes of the remaining
harmonics still follow the spectral envelope of the original sound.
So we have a tool now for raising the pitch of an incoming sound by
an octave without changing its spectral envelope. This octave
doubler is the reverse of the octave divider introduced back in
Chapter 5.
The time domain and frequency domain pictures are complementary ways of looking at the same delay network. When the delays inside the network are smaller than the ear's ability to resolve events in time--less than about 20 milliseconds--the time domain picture becomes less relevant to our understanding of the delay network, and we turn mostly to the frequency-domain picture. On the other hand, when delays are greater than about 50 milliseconds, the peaks and valleys of plots showing gain versus frequency (such as that of Figure 7.6) become crowded so closely together that the frequency-domain view becomes less important. Both are nonetheless valid over the entire range of possible delay times.