Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search


Loaded Scattering Implementation NotesC.11

As noted in [25] et al., it is natural in practice to implement the junction load impedance (or admittance) as bank of parallel biquads:

$\displaystyle R_J(z) = \sum_{i=1}^M \frac{B_i(z)}{A_i(z)}, \protect$ (C.102)

where $ M$ is the number of biquads, and we define
$\displaystyle B_i(z)$ $\displaystyle \isdef$ $\displaystyle b_{i0} + b_{i1}\,z^{-1}+ b_{i2}\,z^{-2}, \;$and (C.103)
$\displaystyle A_i(z)$ $\displaystyle \isdef$ $\displaystyle 1 + a_{i1}\,z^{-1}+ a_{i2}\,z^{-2}.
\protect$ (C.104)

A hasty implementation of Eq.(C.97) might overlook the fact that all junction transfer-functions (transmittances, reflectances, etc.) must have the same poles (or some subset of them). It is therefore typical to share the pole computations among all junction transfer functions, that is, implement the recursive part only once, and form all desired junction transfer functions as linear combinations of the same state variables (or biquad sections, etc.). Thus, only the numerators differ between transmittances $ V_J(z)/V^+_i(z)$ and reflectances $ V^-_i(z)/V^+_i(z)$ , for example. The ``dynamics'' are shared because there is only one physical system being modeled, but the inputs and outputs vary, yielding different zeros.

A basic trick for implementing the reciprocal of a transfer function without altering its denominator(s) is to place it in a feedback loop. If $ H(z)=B(z)/A(z)$ denotes the starting transfer function, then placing it in a feedback loop gives $ 1/(1-H(z))$ . Now split $ H(z)$ into its instantaneous and delayed components $ H(z) = h_0 + H_d(z)$ , where $ H_d(z) = h_1z^{-1}+ h_2z^{-2}+
...$ . If $ h_0\ne 0$ (otherwise pull out unit-sample delays until it is), then we can realize $ 1/H(z)$ as

$\displaystyle \frac{1}{H(z)} = \frac{1/h_0}{1+H_d(z)/h_0} \protect$ (C.105)

which can be implemented as a feedback loop containing $ -H_d(z)/h_0$ as the feedback filter, and the scale factor $ 1/h_0$ in the forward path, as shown in Fig.C.30. In the case of a parallel biquad realization, structure is preserved with altered numerators obtained by extracting the instantaneous gain from each section, as we'll see the following examples.

Figure C.30: Feedback arrangement for inverting the filter $ H(z) = h_0 + H_d(z)$ while preserving parallel-biquads structure.
\includegraphics[width=0.6\twidth]{eps/InvertFilter}



Subsections
Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

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

``Physical Audio Signal Processing'', by Julius O. Smith III, W3K Publishing, 2010, ISBN 978-0-9745607-2-4
Copyright © 2024-06-28 by Julius O. Smith III
Center for Computer Research in Music and Acoustics (CCRMA),   Stanford University
CCRMA