Thu Jun 18 22:40:28 EDT 2020

The 'd' transform

Ok I remember now.

I've been looking at the d=z-1 transformation to implement analog
style filters more directly at high sample rates.  The problem is that
there is a direct path in the d operatior, so it can't be realized
with feedback.

So that is a dead end.  But it is possible to find different
topologies that have good numeric stability by not subtracting numbers
after multiplication.

I made a deriviation in this spirit starting from the svf, but split
up in three update stages: a loss stage and something resembling a
ping-pong lossles symplectic integrator step.  E.g. a product of 3
triangular matrices:

p' = p  - b p
p+ = p' + a q
q+ = q  - a p+

Which can be implemented sequentially using.  GCC compiles the
following C representation to the proper high-word MAC opcodes on ARM
Cortex M.

p -= (I64(b) * I64(p)) >> 32;
p += (I64(a) * I64(q)) >> 32;
q -= (I64(a) * I64(p)) >> 32;

Now to make an arbitrary 2nd order section, add input, bypass and
output coefficients.  Which probably can be done sparse as well.