[sdiy] Walsh bank, was: Re: [sdiy] Micro as a Linear to Exponential converter?
cheater cheater
cheater00 at gmail.com
Sun Aug 16 11:04:59 CEST 2009
Neat. Or how about making the 'coefficient source' as in your example
(the DC voltage going into the DCA) come from an analog source, so
that you can patch an audio-rate signal? Now that could be interesting
And remember that you can make a DC source that's drifty, too. Digital
math with analog properties? Yeah!
D.
On Sun, Aug 16, 2009 at 9:38 AM, Magnus
Danielson<magnus at rubidium.dyndns.org> wrote:
> Michael O'Bannon wrote:
>>
>>>
>>> The great advantage of Walsh over Fourier is that coefficient
>>> multiplication turns into add or subtract. Sinewaves you need to do
>>> multiplications all over the place (or that double-add-with-phase-shift of
>>> Hal Alles).
>>>
>>
>> With Walsh functions, don't you still have the final burden of adjusting
>> the amplitude each of function to get the desired mix of partials? Is there
>> a way to do this in code without multiplication? (I'm hoping the answer is
>> yes, but I haven't found a way yet.)
>
> Yes, but the point is that the walsh functions produces +1/-1 results rather
> than values between +1 and -1, so multiplication does not require a full
> multiplier but a very simple op-amp setup with a CMOS switch which switch
> the gain between +1 and -1. These DCA (Digitally Controlled Amplifier) is
> controlled by the digital walsh generator and the analog input is the
> coefficient. The output of all DCAs is added to form the full set.
>
> A fourier type of response using walsh generators could be achived using
> some math transforms..
>
> x(t) is the time-representation of a waveform
> X(f) is the fourier frequency representation of a waveform
> X(w) is the walsh frequency representatio of a waveform
>
> Fourier transform:
> X(f) = DFT(x(t))
>
> Inverse Fourier transform:
> x(t) = IDFT(X(f))
>
> Walsh transform:
> X(w) = DWT(x(t))
>
> Inverse Walsh transform:
> x(t) = IDWT(X(w))
>
> Consider that we want the walsh coefficients, but have the Fourier
> coefficients... then
>
> x(t) = IDFT(X(f))
> X(w) = DWT(x(t)) = DWT(IDFT(X(f))
>
> Thus, a new linear transform is formed from Fourier coefficient to Walsh
> coefficients. This new transform can be calculated in advance and could be
> calculated in N^2 multiplications and N(N-1) additions. However, both DWT
> and IDFT can be done efficiently, so just doing the transforms can be used.
>
> Just a little bit of linear transform math. Can be done in advanced in the
> processor, and the coefficients can be output through a DAC and regularly
> updated to S/Hs.
>
> Cheers,
> Magnus
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
More information about the Synth-diy
mailing list