[sdiy] Low Frequency Square to Sine Waveshaper
harrybissell at wowway.com
harrybissell at wowway.com
Wed May 28 14:57:39 CEST 2008
I just did a quick simulation of the four bit solution from
Electronic Design...
http://electronicdesign.com/Files/29/6293/Figure_01.gif
Its bad... VERY bad. No one would use this...
H^) harry
On Tue, 27 May 2008 15:38:48 -0500, harrybissell wrote
> The best improvement might indeed (as you mention in the last line)
> be making the counter synchronous. For 4 bits its no extra trouble...
>
> H^) harry
>
> On Tue, 27 May 2008 21:46:43 +0200, ASSI wrote
> > On Dienstag 27 Mai 2008, Paul Perry wrote:
> > > Boring or not, that EDN circuit is only 4 bits, so it's going to be
> > > very lumpy indeed.
> >
> > I shouldn't make such obtuse jokes, sorry - but I find the stuff
> > they've left out is almost more interesting than what is written in
> > such articles... As a thought provoking device they are quite
> > useful however and once in a while they might even solve the problem
> > at hand without further ado.
> >
> > > How difficult would it be to extend the principle to 12 bits say?
> > > (impossible for a non-mathematician like myself, but there is
> > > obviously Talent on this list..)
> >
> > Due to the symmetry properties of the sine wave the arrangement as
> > shown in EDN is actually quite good and not easy to improve without
> > a lot more effort (does "diminishing returns" ring a bell?). Hang
> > on, I'll try to explain. The Walsh coefficients for the first 64
> > Walsh functions (the 0th would be for any DC component, which is of
> > course not present in these signals) for the "standard" waveforms
> > (normalized to amplitude 1.0) are:
> >
> > n Sine Cosine |/| Saw /|/ Saw Sin-Tri Cos-Tri
> > 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 1 0.63662 0.00000 -0.50000 0.50000 0.50000 0.00000
> > 2 0.00000 0.63662 0.00000 0.00000 0.00000 0.50000
> > 3 0.00000 0.00000 -0.25000 -0.25000 0.00000 0.00000
> > 4 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 5 -0.26370 0.00000 0.00000 0.00000 -0.25000 0.00000
> > 6 0.00000 0.26370 0.00000 0.00000 0.00000 0.25000
> > 7 0.00000 0.00000 -0.12500 -0.12500 0.00000 0.00000
> > 8 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 9 -0.05245 0.00000 0.00000 0.00000 0.00000 0.00000
> > 10 0.00000 -0.05245 0.00000 0.00000 0.00000 0.00000
> > 11 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 12 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 13 -0.12663 0.00000 0.00000 0.00000 -0.12500 0.00000
> > 14 0.00000 0.12663 0.00000 0.00000 0.00000 0.12500
> > 15 0.00000 0.00000 -0.06250 -0.06250 0.00000 0.00000
> > 16 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 17 -0.01247 0.00000 0.00000 0.00000 0.00000 0.00000
> > 18 0.00000 -0.01247 0.00000 0.00000 0.00000 0.00000
> > 19 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 20 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 21 0.00517 0.00000 0.00000 0.00000 0.00000 0.00000
> > 22 0.00000 -0.00517 0.00000 0.00000 0.00000 0.00000
> > 23 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 24 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 25 -0.02597 0.00000 0.00000 0.00000 0.00000 0.00000
> > 26 0.00000 -0.02597 0.00000 0.00000 0.00000 0.00000
> > 27 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 28 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 29 -0.06270 0.00000 0.00000 0.00000 -0.06250 0.00000
> > 30 0.00000 0.06270 0.00000 0.00000 0.00000 0.06250
> > 31 0.00000 0.00000 -0.03125 -0.03125 0.00000 0.00000
> > 32 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 33 -0.00308 0.00000 0.00000 0.00000 0.00000 0.00000
> > 34 0.00000 -0.00308 0.00000 0.00000 0.00000 0.00000
> > 35 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 36 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 37 0.00128 0.00000 0.00000 0.00000 0.00000 0.00000
> > 38 0.00000 -0.00128 0.00000 0.00000 0.00000 0.00000
> > 39 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 40 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 41 0.00025 0.00000 0.00000 0.00000 0.00000 0.00000
> > 42 0.00000 0.00025 0.00000 0.00000 0.00000 0.00000
> > 43 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 44 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 45 0.00061 0.00000 0.00000 0.00000 0.00000 0.00000
> > 46 0.00000 -0.00061 0.00000 0.00000 0.00000 0.00000
> > 47 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 48 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 49 -0.00622 0.00000 0.00000 0.00000 0.00000 0.00000
> > 50 0.00000 -0.00622 0.00000 0.00000 0.00000 0.00000
> > 51 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 52 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 53 0.00258 0.00000 0.00000 0.00000 0.00000 0.00000
> > 54 0.00000 -0.00258 0.00000 0.00000 0.00000 0.00000
> > 55 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 56 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 57 -0.01295 0.00000 0.00000 0.00000 0.00000 0.00000
> > 58 0.00000 -0.01295 0.00000 0.00000 0.00000 0.00000
> > 59 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 60 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
> > 61 -0.03128 0.00000 0.00000 0.00000 -0.03125 0.00000
> > 62 0.00000 0.03128 0.00000 0.00000 0.00000 0.03125
> > 63 0.00000 0.00000 -0.01562 -0.01562 0.00000 0.00000
> >
> > I hope you see how the symmetry present in the signal maps to which
> > Walsh coefficients are non-zero. The ramp functions don't need
> > anything else but binary weighted square waves of successively
> > doubling frequency for their approximation as anybody who has
> > watched the output from a binary counter can attest. That's your
> > cue as to where the square waves coming from the 4040 are present in
> > the table. Now if you multiply (and that operation maps to an XOR
> > operation in the circuit) any Walsh function W_n with W_1, then you
> > get W_(n-1). That's the second cue you need to decipher the EDN circuit.
> >
> > Equipped with that information one sees that the EDN circuit
> > actually approximates a cosine, this is done via the XOR arrangement
> > with Q4, which consequently is associated with W_1. So the inputs
> > to the opamp are W_2, W_6, W_14 and W30, which are incidentally the
> > only positve coefficients in the series (anything negative would
> > have to go to the other input of the opamp). This is the moral
> > equivalent of approximating the first 180° of a cosine with just
> > square waves (which are sometimes called Rademacher functions),
> > hence my original quip. If you plug into the above series you'll
> > come up with different resistor values; I haven't conclusively
> > figured out why (I think they've tried to compensate for the output
> > resistance of the XOR switches, which would compute to about 5k with
> > their choice of values). There are four negative terms W_10, W_18,
> > W_22 and W26 which would improve the approximation quality but not
> > the resolution in time, but unfortunately these require a three
> > level deep XOR tree (four terms), which would mean adding three 4030
> > for not much of an improvement.
> >
> > Doubling the resolution in time is possible at the expense of
> > another 4030 (~300k on that output), but the approximation error is
> > already larger than the extra precision afforded by adding that
> > term. Still, going to "12bits", that is using all the available
> > outputs from the 4040 (but no XOR tree for producing higher order
> > Walsh terms) needs two more 4030 with approximately double the
> > resistor value into each consecutive stage, so the last one is close
> > to 10MOhm and you'd have to match the resistors to 100ppm for this
> > to be of any practical use. Also you'd have to make sure that the
> > noise sources in the system woudn't swamp that, either. Also keep
> > in mind that the 4040 is a ripple counter and the switching instants
> > just won't line up nicely enough, adding quite a bit of glitch noise
> > all by itself.
> >
> > Achim.
> > --
> > +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk]>+
> >
> > SD adaptations for KORG EX-800 and Poly-800MkII V0.9:
> > http://Synth.Stromeko.net/Downloads.html#KorgSDada
> >
> > _______________________________________________
> > Synth-diy mailing list
> > Synth-diy at dropmix.xs4all.nl
> > http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
> Harry Bissell & Nora Abdullah 4eva
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
Harry Bissell & Nora Abdullah 4eva
More information about the Synth-diy
mailing list