[sdiy] [OT] Analog synths with 2 pole filters
rburnett at richieburnett.co.uk
rburnett at richieburnett.co.uk
Fri Feb 22 15:00:14 CET 2013
Hi Tom and all,
> Yes, Richie is quite right. Re-reading my post, I made it sound like
> just removing the damping is enough...
It *might* be in some instances with non-ideal components, but that's
not guaranteed. For instance, the theoretical SVF is just two cascaded
integrators inside a negative feedback loop. Each integrator
contributes a phase lag of 90 degrees, so the phase shift in the forward
path is 2 x 90 degrees for a total of exactly 180 degrees. Just barely
enough to oscillate! However, if you take into acount that the first
op-amp of the SVF that is implementing the negative feedback has finite
bandwidth, then it will introduce a small but significant additional
phase lag. Any additionaly phase-lag around the feedback loop without
rolling-off gain will destabilise the system and push it closer to
oscillation. So I wouldn't be surprised if some real-world SVF
implementations do self-oscillate at certain cutoff frequencies when the
damping feedback is reduced to zero.
Op-amps operated as finite-gain blocks will exhibit more phase-lag at
high frequencies, so I would expect state-variable filters to be more
inclined to self-oscillate at the high end of their cutoff frequency
range than the low end. Given that they are theoretically critically
stable when there's no damping feedback, this effect should be quite
noticeable. Can anyone who's built one confirm or dispute this?
> ...but actually you need to tweak
> the other feedback path to give you more gain. Once you've done that,
> you've got more feedback than you need so you need more damping to
> cancel it.
This is exactly the technique used in many low-distortion analogue
sinewave generators. Set up plenty of feedback that destabilises the
system to guarantees some oscillations will start up quickly, then set
up a seperate controllable feedback path of the opposite polarity that
acts to stabilise the system and damp the oscillation. Without the
second stabilising path the oscillation amplitude grows quickly, hits
the rails and clips badly as Neil explained. The trick is applying just
the right amount of the stabilising feedback to damp the run-away
resonance before the amplitude gets high enough for significant
distortion to kick in.
> Getting the balance of these two right is the sum total of
> the work in an SVF design, I reckon. The rest of it is just putting
> the right bits in the right places, but sorting out the feedback so
> that it oscillates cleanly over the whole range is the tricky bit for
Agreed. For the "Moog/Roland" 4-pole cascade you stabilise the
self-oscillation amplitude by soft-clipping the feedback signal. As
Neil said, this diode clipping to limit sinewave amplitude is crude and
introduces distortion. However, soft-clipping only the part of the
output signal that is fed back to the input is neat. It means that the
clipped sinewave gets low-pass filtered four times by the following RC
sections before emerginging at the output all nice and smooth again.
This at least removes some of the distortion from the soft-clipping
operation in the feedback path.
In the case of the SVF the negative feedback around the first
integrator increases the damping term in the overall 2nd order transfer
function. So in order to stabilise the self-oscillation amplitude in
the SVF case you actually need an "anti-clipper" in the feedback path.
During self-oscillation the SVF runs with no damping feedback (or
slightly negative damping) until the amplitude of the BP output starts
to get dangerously high, then you arrange for the peaks and troughs of
the BP output to forward bias a pair of back-to-back diodes and
introduce a tiny bit of damping feedback. This keeps the
self-oscillation amplitude in check. Again this "letting through of
just the tips of the sinewave to invoke damping" introduces distortion,
but the resulting signal passes through two integrators before emerging
at the LP output. These two integrators impart a -12dB/oct slope that
goes some way to cleaning up the spectrum of the sinewave output.
More information about the Synth-diy