Creating Equal Probability Random Values with a Hardware Random Number Generator

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 3K views
Mr Peanut
Messages
30
Reaction score
0
I've been experimenting with a hardware random number generator. My circuit amplifies transistor noise and converts it to a digital output. My program (.Net) reads the output into an array of double precision values. My voltages range from -7 to 7 (well within the range of my ADC) and have 16 bit precision. The array of voltages distributes in a Gaussian fashion centered over zero. I want a distribution that has equal probability of every value’s occurrence.
One method I am toying multiplies each value by 1000 then drops all the digits that are greater than 1, eg 10.7823432... becomes 0.23432...
Using this method I get a distribution that appears to be random with equal probability for each value. Two questions:

1) What is the technical term for a distribution of random values where every value has an equal probability of occurring?

2) Is my method for obtaining this set of numbers reasonable?
 
Physics news on Phys.org
1) Uniform distribution. You didn't say what you did for - numbers.

2) Pretty reasonable, since Gaussian would be close to flat in a narrow interval around 0.
 
I wonder if you can't invert Box–Muller transform. Not that I have an idea how...
 
mathman said:
1) You didn't say what you did for - numbers.

I should have said I multiply by 1000 then form a new number (retaining the sign) by using only the decimal point and the numerical characters to the right of the decimal point.

-10.7823432... becomes -0.23432
 
If you have two independent Gaussian random variables [itex]x[/itex] and [itex]y[/itex] and you define a complex Gaussian r.v. [itex]z[/itex] such that

[tex]z = x + iy[/tex]

then the phase of [itex]z[/itex] is uniformly distributed over [itex](-\pi,\pi)[/itex]. This is because the pdf of [itex]z[/itex] is circularly symmetric (depends only on [itex]|z|[/itex]).

Thus

[tex]\theta = \arctan(y,x)[/tex]

is uniform over [itex](-\pi,\pi)[/itex], assuming you use the 4-quadrant arctangent