3

In this question a zener diode is used to generate white noise, and I've also seen reverse-biased transistor base-emitter junctions for this.
Digitally a Linear Congruential Generator (LCG) can be used.

What's the best way to get good quality white noise without spending thousands of euros (or even hundreds)?

For extra credit: how can you judge the quality of an LCG noise generator without a spectrum analyser?

Federico Russo
  • 9,688
  • 17
  • 69
  • 119

2 Answers2

4

Noise diodes with guaranteed specifications are available from various suppliers:

http://www.micronetics.com/RF_Components/Noise_Source_Products.html

http://noisecom.com/products/components/nc100-200-300-400-series-chips-and-diodes

A simple way of testing the output would be to feed it into a suitable radio receiver, and tune it across the frequency range. That's basically how a spectrum analyser works.

In many cases, such as adjusting a matching network, a calibrated noise source isn't necessary as relative measurements are sufficient.

Here is a simple noise source of mine, with a broad-band amplifier.

Leon Heller
  • 38,983
  • 2
  • 62
  • 96
3

On the subject of digital noise generators, a simple (and cheap) generator can be made with a SIPO shift register whose input is obtained from an exclusive-nor combination of some of it's outputs (taps). With the right choice of taps, the shift register will cycle through a maximal length sequence, just as a LCG does. The maximal length is \$2^N-1\$ for an N bit shift register since the all-ones state is not allowed (it is self perpetuating).

Now, the spectrum of a digital pseudo-random noise generator consists of an infinite number of discrete lines separated by the sequence repetition frequency. So if our sequence repeats every second, the spectral lines will be 1Hz apart. A true random number generator will by definition never repeat and the spectral lines will be 0Hz apart, ie we would get a continuous spectrum.

The amplitude of the spectral lines of a PRNG fall-off with frequency reaching a nulls at multiples of the clock frequency (it follows a \$\dfrac{\sin(f)}{f}\$ law).

As for the practicalities, you would need to choose a clock frequency much higher than the highest frequency of interest. For instance, a 10MHz clocked PRNG would have a spectral line at 1MHz with an amplitude of about 98% of the lowest frequency line. If we use a 16 bit shift register, the spectral lines will be about 150Hz apart (\$\dfrac{10^7}{2^{16}-1}\$) which may or may not be acceptable to you. Choosing the taps as far as I know is a black art. I remember seeing a published table of taps vs register length some years ago but I can't locate it, however it's not too hard to write a program to find them by trial and error.

Adam Lawrence
  • 33,161
  • 3
  • 59
  • 110
MikeJ-UK
  • 5,378
  • 16
  • 20
  • Thank you. Would it help to have several independent LCGs (different lengths and frequencies) and XOR their outputs? – Federico Russo Jul 22 '11 at 13:29
  • @Federico - That's an interesting idea, but I don't have the mathematical skills to say what the spectrum would be like! – MikeJ-UK Jul 22 '11 at 13:33
  • @Federico - Their combined length would be the LCM (Least Common Multiple) of the length of each of them divided by their resp. clock frequency, and thus, as per Mike's answer, have spectral lines closer together. I – stevenvh Jul 22 '11 at 13:41
  • Wikipedia: LFSR lists a table of taps vs register length, and links to much larger tables. – davidcary Jul 23 '11 at 01:05
  • @Federico - If you want a really long period you need a Mersenne Twister. MT19937 has a period of $2^{19937}-1$, or $10^{6001}$. That means that no matter how fast you clock it, it will never repeat. It is a bit more complex than an LFSR, however, you'll need an FPGA to implement it. – stevenvh Jul 24 '11 at 17:03
  • @davidcary - Sometimes I just don't look in the obvious places! – MikeJ-UK Jul 25 '11 at 09:00
  • @stevenvh - That's a new one on me. When I first saw your reference to MT19937 I thought "Wow, do Mitel/Zarlink make a chip that does that" :) – MikeJ-UK Jul 25 '11 at 09:03