next up previous contents index
Next: Other Schemes Up: A Simple Finite Difference Previous: Output and Interpolation   Contents   Index


Digital Waveguide Interpretation

Consider the scheme (6.33), for the special case of $ \lambda = 1$. In this case, as was noted in §, the numerical phase and group velocities of the scheme are identical to those of the wave equation itself, and thus independent of frequency. The expanded recursion (6.34) reads, in this case, as

$\displaystyle u_{l}^{n+1} = u_{l+1}^{n}+u_{l-1}^{n}-u_{l}^{n-1}$ (6.54)

Notice, in particular, that (1) there are no longer any multiplications necessary to update the scheme, and (2), the center grid point in the scheme footprint (see Figure [*]) is no longer used.

It is straightforward to identify this simplified scheme as an exact traveling wave solution to the wave equation. First consider the traveling wave solutions themselves, defined by

$\displaystyle w^{(+)}(x,t) = u^{(+)}(x-\gamma t)\qquad w^{(-)}(x,t) = u^{(-)}(x+\gamma t)$ (6.55)

At a location $ x=lh$, $ t=nk$, one has, immediately, that
$\displaystyle w^{(+)}(lh,nk)$ $\displaystyle =$ $\displaystyle u^{(+)}(lh-\gamma nk) = u^{(+)}(h(l-n))=u^{(+)}(h(l-1)-h(n-1))=w^{(+)}((l-1)h,(n-1)h)$ (6.56)
$\displaystyle w^{(-)}(lh,nk)$ $\displaystyle =$ $\displaystyle u^{(-)}(lh+\gamma nk) = u^{(-)}(h(l+n))=u^{(-)}(h(l+1)+h(n-1))=w^{(-)}((l+1)h,(n-1)h)$ (6.57)

The above relations follow only under the condition that $ \lambda = 1$, or, equivalently, that $ h=\gamma k$. Notice that no approximations have been employed. Replacing the functions $ w^{(+)}$ and $ w^{(-)}$ by grid functions, one has

$\displaystyle w^{(+),n}_{l}=w^{(+),n-1}_{l-1}\qquad w^{(-),n}_{l}=w^{(-),n-1}_{l+1}\qquad u_{l}^{n}=w^{(+),n}_{l} + w^{(-),n}_{l}$ (6.58)

The first two identities above indicate propagation of wave-like variable to the right and left respectively, and the third that the observable physical variable $ u$ may be written as a sum of two such waves.

Given the three definitions above, one may then write:

$\displaystyle u_{l}^{n+1}$ $\displaystyle =$ $\displaystyle w_{l}^{(+),n+1}+w_{l}^{(-),n+1}$  
  $\displaystyle =$ $\displaystyle w_{l-1}^{(+),n}+w_{l+1}^{(-),n}$  
  $\displaystyle =$ $\displaystyle u_{l+1}^{n}+u_{l-1}^{n}-w_{l-1}^{(-),n}-w_{l+1}^{(+),n}$  
  $\displaystyle =$ $\displaystyle u_{l+1}^{n}+u_{l-1}^{n}-w_{l}^{(-),n-1}-w_{l}^{(+),n-1}$  
  $\displaystyle =$ $\displaystyle u_{l+1}^{n}+u_{l-1}^{n}-u_{l}^{n-1}$  

which is identical to the simplified scheme (6.54).

The key to an efficient implementation is the recognition of the fact that the solution may be advanced purely though shifting operations applied to the wave variables $ w^{(+)}$ and $ w^{(-)}$. $ u$ itself need only be computed in a ``feed-forward" step at points at which an output is desired. Typically, in audio, scalar outputs only are desired, and one does not need to observe the entire state of the object under consideration. There is thus a major distinction between sound synthesis applications and those of the mainstream simulation world, and perhaps explains why although such exact discrete traveling wave solutions to the wave equation have been known for decades [2], this potential for increased efficiency was only seized upon by Smith. More will be said about this is §.

In terms of the wave variables $ w^{(+)}$ and $ w^{(-)}$, as mentioned above, only shifting operations are required to advance the solution, leading to the well-known bidirectional delay line form, as shown in Figure [*]. Initialization may be carried out in the following way. One has, immediately, that

$\displaystyle u_{l}^{0}=w^{(+),0}_{l}+w^{(-),0}_{l}\qquad u_{l}^{1}=w^{(+),1}_{l}+w^{(-),1}_{l}=w^{(+),0}_{l-1}+w^{(-),0}_{l+1}$ (6.59)

Given the initial displacement and velocity grid functions $ u_{l}^0$ and $ v_{l}^1$, one may then initialize the wave variables as


next up previous contents index
Next: Other Schemes Up: A Simple Finite Difference Previous: Output and Interpolation   Contents   Index
Stefan Bilbao 2006-11-15