Creating Equal Probability Random Values with a Hardware Random Number Generator

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
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
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