On 29 June 2014 16:05, socialmedia <soc...@monotheo.biz> wrote: > My general comment on this, and several discussions on KvR and similar > discussion elsewhere, is this. First of all they accept the term "State > variable filter". And then apply advanced mathematics to solve it. And then > realize a highly inefficient filter, usually with oversampling. > > State variable filter, was a name for a particular way of doing a 12dB > filter in the analog domain, AFAIK.
No. An SVF is a very particular low noise analog structure that you can do any generic biquad responses from, and with a trapezoidal SVF you can generate the same responses as you can with a DF1 biquad, so this is useful for exact parametric eq shapes, as well as scientific grade notch filtering and a bunch of other applications where a very accurate linear filter is desirable. > That can be done with extremely simple math. > > in = in - (buf2 * res); Subtract output for negative feedback (resonance) > buf1 = buf1 + ((in - buf1) * cut); One pole (normalized positive feedback) > buf2 = buf2 + ((buf1 - buf2) * cut); Second pole (normalized positive > feedback) Here is forward euler type 4 pole cascade with negative feedback (I'm writing out the "z" terms just to make it clearer what is going on): v1z = v1 v2z = v2 v3z = v4 v4z = v4 v1 += cut * (in - v1z - res*v4z) v2 += cut * (v1 - v2z) v3 += cut * (v2 - v3z) v4 += cut * (v3 - v4z) Now you can cut this down by one section, but you get more passband cut with increased reonsnace: v1z = v1 v2z = v2 v3z = v4 v1 += cut * (in - v1z - res*v3z) v2 += cut * (v1 - v2z) v3 += cut * (v2 - v3z) You can drop another section, but the results are terrible as you get loads of passband cut with resonance: v1z = v1 v2z = v2 v1 += cut * (in - v1z - res*v2z) v2 += cut * (v1 - v2z) This is what you have done, and I don't recommend it, there are much better low cpu filter structures than this (if you are interested in that sort of thing). They actually used a 3 pole version in the Xpander, but mostly people use 4 pole since the passband cut is too great otherwise. It is possible to construct a very low cpu Sallen Key as well as SVF which has "perfect" trapezoidal shapes without oversampling and you can apply trivial non-linearities to. The paper I have presented has very little to do with any of this, I'm trying to generating the lowest possible noise filter structure that has exact amplitude and phase as a continuos biquad response at DC, cutoff, and infinity (infinity being mapped to nyquist for the digital filter). Andy -- 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