Hi Ross, I never actually use the form of the equations I posted in
the pdf, I wrote all those horrible "z^-1" type state diagrams
specifically because Vadim requested them, but they confuse the crap
out of me and I even had difficulty writing them myself, they are
really of no practical use for me at all. I actually use the
equivalent current form as shown here:

http://qucs.sourceforge.net/tech/node26.html

You can see that all previous terms, ie terms that are in "n" or "n-1"
... "n-m" can be summed to form a single constant. In the specific
case of trapezoidal integration you have (in this case "n+1" is the
current time step, "n" is equivalent to z^-1, "n-1" is z^-2 etc:

ic(n+1) = 2*C/h(n+1)*vc(n+1) - 2*C/h(n)*vc(n) - ic(n)
ic(n+1) = gc(n+1)*vc(n+1) - iceq

where gc(n) = 2C/h(n) and gc(n+1) = 2C/h(n+1) and iceq = gc(n)*vc(n) + ic(n)

You can drop all the "n" stuff now and just use: ic = gc*vc - iceq

And if you update iceq after the solution then all your "z" terms are
taken care of. For the specific case of trapezoidal integration you
have:

iceq = 2*gc*vc - iceq

so you iceq holds your "z^-1" and "z^-2" etc terms for you and becomes
a single state. This is all completely standard circuit mathematics
that has been around for a very long time and was probably written in
fortran codes before I was born.

I'll update the document to get rid of all those horrible z terms soon.

All the best,

Andy



On 5 November 2013 18:52, Vadim Zavalishin
<vadim.zavalis...@native-instruments.de> wrote:
> (the quotation is from Andy's mail)
>>>
>>> On 2/8/13 2:15 AM, Ross Bencina wrote:
>>> i've analyzed Hal's SVF to death, and i was exposted to Andy's
>>> design some time ago, but at first glance, it looks like the
>>> "Trapazoidal SVF" looks like it doubles the order of the filter.
>>> it it was a second-order analog, it becomes a 4th-order digital.
>>> but his final equations do not show that.  do those "trapazoidal"
>>> integrators, become a single-delay element block (if one were to
>>> simplify)?  even though they ostensibly have two delays?
>
>
> You can use canonical (DF2/TDF2) trapezoidal integration, in which case the
> order of the filter doesn't formally grow. This is quite intuitively
> representable in the TPT papers and the book I mentioned earlier. If you use
> DF1 integrators, the order formally grows by a factor of 2, but I believe
> half of the poles will be cancelled by the zeroes.
>
> BTW, IIRC, as for the optimization from 4 z^-1 to 3 z^-1 in Andy's SVF, I
> believe this optimization implicitly assumed the time-invariance of the
> filter. So, while keeping the transfer function intact, this optimization
> changes the time-varying behavior of the filter (not sure, how much and
> whether it's for the worse or for the better).
>
> Regards,
> Vadim
>
>
> --
> Vadim Zavalishin
> Reaktor Application Architect
> Native Instruments GmbH
> +49-30-611035-0
>
> www.native-instruments.com
>
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews, dsp
> links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp 
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp

Reply via email to