ramdon noise generation

I need to use FPGA to generate a normal distributed noise. Any idea? I know that we can convert a even distributed ramdon sequence to a normal distributed one. But I forgot the algorithm and I am not sure if it is suitable to implement it in a FPGA.

Reply to
linical
Loading thread data ...
1) Take FPGA and remove its legs. 2) Use a marker to write 'Heads' on one side, 'Tails' on the other. 3) Throw it up in the air. 4) See which side lands face up. 5) Repeat 3) and 4) until you have enough data.

Or try Google / Google Groups for LFSR, Random, etc. ;-) Also check out the Random article here

formatting link

HTH, Syms.

Reply to
Symon

Symon,

Your method is greatly flawed. In addition to being very slow, it is subject to the imbalance of the weight of the device. You would first have to add weight or trim weight to make sure the toss was fair.

Better to implement something a bit more elegant:

formatting link

"That is So Random!"

Aust> 1) Take FPGA and remove its legs.

Reply to
Austin Lesea

Reply to
Symon

There are at least two methods :

1) generate normaly distributed samples (quantized box-muller algorithm), add a few of them (4 may be enough), according to the central limit theorem, it increases the generator's precision

here is an interesting paper

formatting link

2) set the quantization of the noise you wish to produce, generate tables storing values of the integrated density of probability (by software). To generate a noise sample, generate uniformly distributed samples, search in the tables for the nearest element and return this element's index. The indexes returned should be normaly distributed. This is sometimes called the thresholds method.

I may not be very clear but it works perfectly (I've tried it)

Pierre

Reply to
Pierre Wadier

Nah, a biased coin is perfectly fine:

Flip twice: HH -> try again HT -> Heads TH -> Tails TT -> try again.

--
Nicholas C. Weaver                                 nweaver@cs.berkeley.edu
Reply to
Nicholas Weaver

Symon,

Gosh, I never thoguht of that: throw a million devices into the air at once!

Aust> Austin,

Reply to
Austin Lesea

Yup,

But I was trying to deal with the original generator! But you are absolutely correct! Nice to remember if you suspect someone has an unfair coin......

Best to test the original random number generator (as close to the core of its function).

Then one can add correction for 1/0 density, as you suggest. That does not solve for frequency effects, however.

The NIST suite of tests, or Diehard tests are best applied to the core generator, so you can see its problems. Then there are known and accepted techniques to use a biased generator, or even a RNG with frequency problems to create a better TRNG.

Aust> >

Reply to
Austin Lesea

Sounds a little complicated. Any random number generator 101 for me? Plus, how can FPGA tossing give me random number with normal distribution?

Reply to
linical

sheesh, haven't you heard of the Central Limit Theorem? :-)

-- Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how VHDL, Verilog, SystemC, Perl, Tcl/Tk, Verification, Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, BH24 1AW, UK Tel: +44 (0)1425 471223 mail: snipped-for-privacy@doulos.com Fax: +44 (0)1425 471573 Web:

formatting link

The contents of this message may contain personal views which are not the views of Doulos Ltd., unless specifically stated.

Reply to
Jonathan Bromley

Reply to
linical

Heard of Google?

formatting link

Reply to
Symon

Also see:

formatting link

Reply to
D Lee

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.