Similarly, given any filter realization of the load admittance , we can split into its instantaneous and delayed components as , and analogously obtain
(C.123) | |||
(C.124) | |||
(C.125) |
Figure C.31 can readily be encoded in the FAUST language by extracting a unit-sample delay from the admittance filter and ``pushing'' it to the right through its input summer, which splits it into the output tap and the inner feedback loop. This makes both feedback loops valid in FAUST using the tilde (`~') operator. In terms of obvious definitions:
vJ = fJp : *(2*G0) : ( + ~ ( *(G0/GJ0) : ( + : GJd/GJ0 : *(-1)) ~ _ : *(-1)));where the delay in GJd has been pulled out:
GJd = _ <: par(i, M, GiJd(i+1)) :> _ ; GiJd(i) = fi.tf2(b1d(i), b2d(i), 0, a1(i), a2(i) ); // SHIFTED