The Dispersive 1D Wave Equation

In the ideal vibrating string, the only restoring force for transverse
displacement comes from the string tension (§C.1 above);
specifically, the transverse restoring force is equal the net
transverse component of the axial string tension. Consider in place
of the ideal string a *bundle* of ideal strings, such as a
stranded cable. When the cable is bent, there is now a new restoring
force arising from some of the fibers being compressed and others
being stretched by the bending. This force sums with that due to
string tension. Thus, stiffness in a vibrating string introduces a
new restoring force proportional to bending angle. It is important to
note that *string stiffness is a linear phenomenon* resulting
from the finite diameter of the string.

In typical treatments,
^{C.3}bending stiffness adds a new term to the wave equation that is
proportional to the *fourth spatial derivative* of string
displacement:

where the moment constant is the product of Young's modulus (the ``relative-displacement spring constant per unit cross-sectional area,'' discussed in §B.5.1) and the

To solve the stiff wave equation Eq. (C.32), we may set to get

At very low frequencies, or when stiffness is negligible in comparison with , we obtain again the non-stiff string: .

At very high frequencies, or when the tension
is negligible relative
to
, we obtain the *ideal bar* (or rod) approximation:

In an ideal bar, the

At intermediate frequencies, between the ideal string and the ideal bar,
the stiffness contribution can be treated as a correction term
[95]. This is the region of most practical interest because
it is the principal operating region for strings, such as piano strings,
whose stiffness has audible consequences (an inharmonic, stretched overtone
series). Assuming
,

Substituting for in terms of in gives the general eigensolution

Setting as before, corresponding to driving the medium sinusoidally over time at frequency , the medium response is

where

Because the effective wave velocity depends on , we cannot use Fourier's theorem to construct arbitrary traveling shapes by superposition. At , we can construct any function of time, but the waveshape

Since the temporal and spatial sampling intervals are related by , this must generalize to , where is the size of a unit delay in the absence of stiffness. Thus, a unit delay may be replaced by

(for frequency-dependent wave velocity).

That is, each delay element becomes an

The general, order , allpass filter is given by [452]

where

and the roots of must all have modulus less than . That is, the numerator polynomial is just the reverse of the denominator polynomial. This implies each pole is gain-compensated by a zero at .

For computability of the string simulation in the presence of scattering
junctions, there must be at least one sample of pure delay along each
uniform section of string. This means for at least one allpass filter in
Fig.C.8, we must have
which
implies
can be factored as
. In a
systolic VLSI implementation, it is desirable to have at least one real
delay from the input to the output of *every* allpass filter, in order
to be able to pipeline the computation of all of the allpass filters in
parallel. Computability can be arranged in practice by deciding on a
minimum delay, (*e.g.*, corresponding to the wave velocity at a maximum
frequency), and using an allpass filter to provide excess delay beyond the
minimum.

Because allpass filters are linear and time invariant, they commute
like gain factors with other linear, time-invariant components.
Fig.C.9 shows a diagram equivalent to
Fig.C.8 in which the allpass filters have been
commuted and consolidated at two points. For computability in all
possible contexts (*e.g.*, when looped on itself), a single sample of
delay is pulled out along each rail. The remaining transfer function,
in the example of
Fig.C.9, can be approximated using any allpass filter
design technique
[1,2,269,274,553].
Alternatively, both gain and dispersion for a stretch of waveguide can
be provided by a single filter which can be designed using any
general-purpose filter design method which is sensitive to
frequency-response phase as well as magnitude; examples include
equation error methods (such as used in the matlab `invfreqz`
function (§8.6.4), and Hankel norm methods
[178,432,36].

In the case of a lossless, stiff string, if
denotes the
consolidated allpass transfer function, it can be argued that the filter
design technique used should minimize the *phase-delay error,* where
phase delay is defined by [365]

(Phase Delay)

Minimizing the Chebyshev norm of the phase-delay error,

approximates minimization of the error in

Alternatively, a lumped allpass filter can be designed by
minimizing *group delay,*

(Group Delay)

The group delay of a filter gives the delay experienced by the amplitude

See §9.4.1 for designing allpass filters with a
prescribed delay versus frequency.
To model stiff strings, the allpass filter must supply a
phase delay which *decreases* as frequency increases. A good
approximation may require a fairly high-order filter, adding significantly
to the cost of simulation. (For low-pitched piano strings, order 8
allpass filters work well perceptually [1].)
To a large extent, the allpass order required
for a given error tolerance increases as the number of lumped
frequency-dependent delays is increased. Therefore, increased dispersion
consolidation is accompanied by larger required allpass filters, unlike the
case of resistive losses.

The function `piano_dispersion_filter` in the Faust
distribution (in `effect.lib`) designs and implements an
allpass filter modeling the dispersion due to stiffness in a piano
string [155,171,371].

[How to cite this work] [Order a printed hardcopy] [Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University