Interesting Paper available on Moog VCF

Don Tillman don at till.com
Sat Sep 21 09:01:55 CEST 1996


   Date: Thu, 19 Sep 1996 13:34:30 -0700
   From: Tom May <ftom at netcom.com>

   Any polynomial with a finite number of terms will produce a band
   limited output when used as a transfer function.  But the bandwidth of
   the output will be N times the bandwidth of the input, where N is the
   degree of the polynomial.  That pretty much falls out of the sin^2(x)
   = (1 - cos(2x))/2 type of identity when you keep applying it for each
   degree of the polynomial.  (Or am I making an analog gut feeling
   mistake?)

Woah...  I hadn't thought about this before, but yeah, this is
absolutely right.  The exponential transfer function I proposed that
rendered an infinite number of harmonics was an example of an
*arbitrary* distortion curve.  But if the curve is limited to an Nth
order polynomial, then yes, the aliasing will be limited to N times
the original signal's maximum frequency.

   Date: Fri, 20 Sep 1996 10:38:39 +0300 (EET-DST)
   From: Mikko Helin <MHELIN at tne01.tele.nokia.fi>

   I think that this kind of aliasing distortion can be avoided by using 
   oversampling, which means that sampling rate is increased so that
   aliasing occurs at higher frequencies, which are then filtered out
   before D/A conversion or resampling to lower (original) sample rate.

Yes, this is standard way to implement it.

   Date: Thu, 19 Sep 1996 15:01:27 -0400 (EDT)
   From: Eli Brandt <eli at ux3.sp.cs.cmu.edu>

   If we're stuck with infinite harmonics coming out of our waveshaping,
   the conceptually simplest solution would be to supersample, waveshape,
   lowpass, and subsample.  

Just as above, yes.  And yeah, it'll reduce the aliasing, but with
infinite harmonics you still have a good chance of the aliasing effect
being annoying.

   This chain of operations might simplify, but probably not.  I've
   considered just doing all digital work at a multiple of audio rate,
   and lowpassing whenever spurious harmonics are generated.  This costs
   you a constant factor everywhere, but avoids the expense of resampling
   up and down all over the place.

Not really an issue; the resampling isn't especially costly.

   Date: Fri, 20 Sep 1996 12:22:20 +0100 (CET)
   From: "Erik Schuijers" <E.G.P.Schuijers at stud.tue.nl>

   What technique many companies use these days is called sigma-delta
   conversion. 

I can't see how sigma-delta conversion would help here.

   Date: Fri, 20 Sep 1996 13:15:51 -0400 (EDT)
   From: Eli Brandt <eli at ux3.sp.cs.cmu.edu>

   Take the case where we've got harmonic partials and they're all in
   phase.  So the input signal x(t) is a sum of cos(kt) terms, out to K.
   Each term a_k cos(kt) can be expanded, using the Chebychev* T_n, to a
   degree-k polynomial in cos(t).  Waveshaping their sum with a degree-D
   polynomial gives one of degree-KD.  Then translate each cos^n(t) back
   to a sum of cos(kt) terms, k<=n.  So we have a sum of cos(kt) terms,
   k<=KD.

Wow, I have no idea what you're talking about!

  -- Don



More information about the Synth-diy mailing list