SVF filter saturation in feedback path / diode

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

mystran wrote: Thu Feb 27, 2020 7:14 am Actually, that's not quite what I had in mind, rather I was suggesting you could only tabulate atanh(BP), because as soon as you substitute the result into the equation for HP the system becomes linear and can be solved in the usual way.
If you only tabulate ArcTanh(BP) then you would still need to compute the Tanh of that to get your BP which is needed for the other terms, and also state updates.
mystran wrote: Thu Feb 27, 2020 7:14 am On second thought though, rather than tabulating atanh(BP) directly, you could tabulate a fully converged linearisation. The potential advantage is that if the tabulated result is slightly inaccurate (ie. we don't quite hit the linearisation point, but fairly close to it), then this might allow for a reduced error.

In fact, this leads to the approach I've been suggesting (in PMs at least) in the past as well. While I still haven't tried this in practice yet, in theory you could always add extra dimensions for each of the non-linearities (which you probably should be doing with NR as well), factor the system (eg. using LU) until you only have the non-linear sub-block left (same as with Newton), but then rather than iterating until convergence, fetch either the direct result or the fully converged linearisation for the whole non-linear block from a pre-computed MIMO table.

Additionally, if the table lookup is used simply as a short-cut for NR, then it becomes straight-forward to throw in an extra NR iteration or two to further refine the results if desired. This could allow for a lower resolution table, while still avoiding the pathological cases with NR by always providing a good initial guess that (hopefully) guarantees quadratic converge straight away.

In any case, most of this is just random thoughts really.
I have tried similar things in the past, but they didn't work that well for me. It was always the "bendy bits" of the approximations which needed the most help, and in that case unless you've got a really good approximation the first NR refinement could possibly go wrong and you're in an as bad if not worse position since you've just blown you cache doing the table lookup! I should probably look at it again though just to make sure.
The Glue, The Drop - www.cytomic.com

Post

andy-cytomic wrote: Thu Feb 27, 2020 10:25 am
mystran wrote: Thu Feb 27, 2020 7:14 am Actually, that's not quite what I had in mind, rather I was suggesting you could only tabulate atanh(BP), because as soon as you substitute the result into the equation for HP the system becomes linear and can be solved in the usual way.
If you only tabulate ArcTanh(BP) then you would still need to compute the Tanh of that to get your BP which is needed for the other terms, and also state updates.
In the equation as given, simply looking up atanh(bp) and substituting it into the HP equation as constant makes the whole system linear, which means you can solve for HP and then BP=g*HP+s1.

Post

mystran wrote: Thu Feb 27, 2020 2:18 pm In the equation as given, simply looking up atanh(bp) and substituting it into the HP equation as constant makes the whole system linear, which means you can solve for HP and then BP=g*HP+s1.
Gotcha. Then you're trading the interpolation cost for the cost of another division, which is probably better since as you point out your non-linearity can be a little off and you still solve the rest of the system properly. This is actually exactly what the DK-Method does, you solve for non-linear component contributions only (usually as currents), then with those in place solve the rest of the now linear circuit. The MIMO part comes in with multiple non-linear contributions.
The Glue, The Drop - www.cytomic.com

Post Reply

Return to “DSP and Plugin Development”