Free Books

Computational Savings

To illustrate how significant the computational savings can be, consider the simulation of a ``damped guitar string'' model in Fig.6.11. For simplicity, the length $ L$ string is rigidly terminated on both ends. Let the string be ``plucked'' by initial conditions so that we need not couple an input mechanism to the string. Also, let the output be simply the signal passing through a particular delay element rather than the more realistic summation of opposite elements in the bidirectional delay line. (A comb filter corresponding to pluck position can be added in series later.)

Figure 6.11: Discrete simulation of the rigidly terminated string with distributed resistive losses. The $ N$ loss factors $ g$ are embedded between the delay-line elements.

In this string simulator, there is a loop of delay containing $ N = 2L/X=
f_s/f_1$ samples where $ f_1$ is the desired pitch of the string. Because there is no input/output coupling, we may lump all of the losses at a single point in the delay loop. Furthermore, the two reflecting terminations (gain factors of $ -1$) may be commuted so as to cancel them. Finally, the right-going delay may be combined with the left-going delay to give a single, length $ N$, delay line. The result of these inaudible simplifications is shown in Fig. 6.12.

Figure 6.12: Discrete simulation of the rigidly terminated string with consolidated losses (frequency-independent). All $ N$ loss factors $ g$ have been ``pushed'' through delay elements and combined at a single point.

If the sampling rate is $ f_s=50$ kHz and the desired pitch is $ f_1=100$ Hz, the loop delay equals $ N=500$ samples. Since delay lines are efficiently implemented as circular buffers, the cost of implementation is normally dominated by the loss factors, each one requiring a multiply every sample, in general. (Losses of the form $ 1-2^{-k}$, $ 1-2^{-k}-2^{-l}$, etc., can be efficiently implemented using shifts and adds.) Thus, the consolidation of loss factors has reduced computational complexity by three orders of magnitude, i.e., by a factor of $ 500$ in this case. However, the physical accuracy of the simulation has not been compromised. In fact, the accuracy is improved because the $ N$ round-off errors per period arising from repeated multiplication by $ g$ have been replaced by a single round-off error per period in the multiplication by $ g^N$.

Next Section:
Algebraic derivation
Previous Section:
Choice of Table Size and Word Lengths