Variable ramp generator

Don Tillman don at till.com
Thu Jul 8 20:56:14 CEST 1999


   From: mbartkow at et.put.poznan.pl
   Date: Thu, 8 Jul 1999 15:55:52 +0200

   I like this. Two diodes smartly inserted into a wave mixer do the "min"
   trick. There is a problem yet, how to scale the amplitudes of the rising
   and the falling saw in order to ensure constant amplitude of the combined
   wave. Needless to say the latter is necessary for further waveshaping.

(You realize this whole crazy thing was thought up while sitting in
the bathroom...)  

Okay, we want:
   a control voltage from, say, -1.0 volts to +1.0 volts, 
   two output currents, Iout1 and Iout2
   1/Iout1 + 1/Iout2 should remain constant (at 1.0mA, we can scale later)
   Iout1 should start near 1.0mA at Vc = -1.0V
      hit 2.0mA at Vc = 0V.
      hit some high value, say 15mA at Vc = +1.0V
   Iout2 should go in the opposite direction

There's an exponential equality that is very useful here:
   1/(1 + exp(A)) + 1/(1 + exp(-A)) = 1

(Easy to prove.)

And the 1+exp curve is just the sort of curve we're looking for.
So, for a range of roughly 1 to 16, choose a reasonable input
scaling factor, say ln(16 - 1)...

   Iout1 = 1.0 + e^(2.708 * Vc)
and 
   Iout2 = 1.0 + e^(2.708 * (-Vc))


These curve are relative easy to implement with bipolar transistors. 

A quick table (made in Excel) shows that it works:

  Vc    Iout1    Iout2  (1/Iout1 + 1/Iout2)
------------------------------------------

-1.00	1.0667	15.9992	1.0000
-0.95	1.0763	14.0998	1.0000
-0.90	1.0874	12.4410	1.0000
-0.85	1.1001	10.9922	1.0000
-0.80	1.1146	9.7268	1.0000
-0.75	1.1312	8.6217	1.0000
-0.70	1.1502	7.6565	1.0000
-0.65	1.1720	6.8136	1.0000
-0.60	1.1970	6.0774	1.0000
-0.55	1.2255	5.4344	1.0000
-0.50	1.2582	4.8729	1.0000
-0.45	1.2956	4.3824	1.0000
-0.40	1.3385	3.9541	1.0000
-0.35	1.3876	3.5800	1.0000
-0.30	1.4438	3.2533	1.0000
-0.25	1.5081	2.9680	1.0000
-0.20	1.5818	2.7188	1.0000
-0.15	1.6662	2.5011	1.0000
-0.10	1.7628	2.3110	1.0000
-0.05	1.8734	2.1450	1.0000
0.00	2.0000	2.0000	1.0000
0.05	2.1450	1.8734	1.0000
0.10	2.3110	1.7628	1.0000
0.15	2.5011	1.6662	1.0000
0.20	2.7188	1.5818	1.0000
0.25	2.9680	1.5081	1.0000
0.30	3.2533	1.4438	1.0000
0.35	3.5800	1.3876	1.0000
0.40	3.9541	1.3385	1.0000
0.45	4.3824	1.2956	1.0000
0.50	4.8729	1.2582	1.0000
0.55	5.4344	1.2255	1.0000
0.60	6.0774	1.1970	1.0000
0.65	6.8136	1.1720	1.0000
0.70	7.6565	1.1502	1.0000
0.75	8.6217	1.1312	1.0000
0.80	9.7268	1.1146	1.0000
0.85	10.9922	1.1001	1.0000
0.90	12.4410	1.0874	1.0000
0.95	14.0998	1.0763	1.0000
1.00	15.9992	1.0667	1.0000

  -- Don



More information about the Synth-diy mailing list