[sdiy] Uniformly distributed noise generator?
cheater00 at gmail.com
Sun Jun 16 17:29:33 CEST 2013
Actually, it doesn't even have to be that expensive.. A cursory look yields:
ADC1410S105HN/C1:5 - 14 bit, 105Msps, $21.78 unit price, minimum order 1
MAX5885EGM+D - 16 bit, 100Msps, $30.43 unit price, minimum order 1
suitable DSPs start at $10 unit price minimum order 1..
It's a different question whether the things would actually be fit for
purpose. One might actually have to do some reading :)
On Sun, Jun 16, 2013 at 3:18 PM, cheater00 . <cheater00 at gmail.com> wrote:
> Hi Olivier,
> On Mon, Jun 10, 2013 at 2:25 PM, Olivier Gillet <ol.gillet at gmail.com> wrote:
>> The waveshaper would need to have the shape of the CDF of the gaussian:
>> which is:
>> 0.5 (1 + erf(x / scaling constant))
>> Good luck building a circuit for that!
> After some reflection, I realize this might not only be the most
> prudent way to go, but also the easiest one. An analogue source of
> randomness, sampled, put through an LUT, and pushed out a DAC. The
> limiting cost here ends up being the AD and DA. If you want say 100
> MHz you might run into cost issues on the codecs and on the DSP chip.
> To aid the AD's resolution, one could waveshape it via a simple analog
> approximation of the CDF's inverse. It's not going to be perfect but
> it'll be good enough for the AD to pick up a lot more resolution at
> the extreme ends of the voltage range you are wave shaping.
> If you add some logic to the LUT, you can have it auto-correct, so
> that your noise will be uniformly distributed even if the noise input
> isn't exactly uniform.
> The LUT approach could make the noise attain a distribution of any
> shape you'd like.
> This approach uses no advanced mathematics in the DSP - in fact the
> digital code is dead simple - and it uses an absolutely trivial source
> of true, uncorrelated randomness. I think this is what I have been
> looking for.
> The simplest circuit is a transistor noise source followed by a tan
> shaper and a DSP micro with integrated AD/DA. Do note that the wave
> shaper isn't in the form of the Gaussian CDF - in fact, it's in form
> of its inverse function. So the shaper you want looks like a tangent
> function, rather than a sinusoid. Even with 12-bit input, if you use
> interpolation you should be able to get 16-bit output.
More information about the Synth-diy