[sdiy] Walsh bank, was: Re: [sdiy] Micro as a Linear to Exponential converter?
Magnus Danielson
magnus at rubidium.dyndns.org
Sun Aug 16 10:38:06 CEST 2009
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
More information about the Synth-diy
mailing list