University of California at Berkeley

Physics 111 Laboratory

Basic Semiconductor Circuits Supplementary Material


Noise Generator

The Noise Generator should work on any W98, Win2K, or WinXP box equipped with a Soundblaster compatible sound card.
To run the generator, first download and extract the noise generator zip file "" to a file, and then run the file "Noise Generator.exe"  [i.e. use the Run button on the start menu and specify "Noise Generator.exe" (in the appropriate directory.)]

You can use the generator to explore different types of noise.  Start by setting the program to "Gaussian White Noise" and "Generate Real Time Data".  Hit the "Generate" button, and the program will generate a set of gaussian distributed data points, display their spectrum, and play the resulting signal through the speakers.  Take a look at the amplitude histogram in the lower left corner; as expected, the noise is gaussian.  Generate several new data sets, and note how they all sound alike.  Then change the settings to "Generate Spectrum", and generate a new data set.   Here the program first generates a gaussian distributed spectrum, and takes an inverse Fourier transform to find the real time data, which it then plays over the speakers. Is the amplitude histogram still gaussian?  These two methods of generating noise are formally identical.  Also try "Uniform White Noise", which generates uniform distributed noise instead of gaussian distributed noise.  These two types of noise are quite different mathematically, but sound almost the same.

Change the settings to "1/f Noise", and generate some data sets.  Listen carefully: doesn't the noise sound like a distant ocean waves?  As you can see in the spectrum graph, the amplitude of the frequency components in 1/f noise are inversely proportional to the frequency.  1/f noise is very common in nature, and can be used to model phenomenon as disparate as the curvature of a beach to the volume produced by a symphony orchestra to the spectrum of noise from almost all semiconductor devices at low enough frequencies.  The prevalence of 1/f noise is one of the deep ques-tion about our world, but nobody has a good explanation.

You might think that 1/f noise is just bandwidth limited white noise, but it actually sounds quite different.  Go back to the "Gaussian White Noise" and "Generate Spectrum" settings, but this time set the low pass frequency to 500, i.e. 500Hz, and listen to the sound.  This will produce white noise whose maximum frequency is 500Hz.  It is quite different than 1/f noise…more like the noise of a furnace.  Can you explain why?

Set the noise generator to "Shot Noise", and the "Average Number of Shots per Sample" to 0.001.  Shot noise is also called counting or Poisson noise, and occurs whenever as an average number of samples is supposed to arrive in a fixed time interval.  An example is the number of electrons per second that cross a fixed point in a wire carrying a "constant" current.  Despite the fact that the current is supposed to be constant, there will be random fluctuations in the number of electrons.  Another example is the number of radioactive decays in ten seconds from a radioactive sample.  On the average, say, ten decays might be expected, but the number in any given ten second interval will fluctuate.  The size of the fluctuation is proportional to the square root of the expected number of samples: if you ex-pect an average of   counts, the average fluc-tuation will be  .  Note that the normalized number of fluctuations,   decreases as   increases.

Now generate a shot noise data set.  What does it sound like?  Change the "Average Number of Shots per Sample" to 1.  Generate a new data set.  What does it sound like?  Try setting the "Average Number of Shots per Sample" to 100 and 10,000.  See how the amplitude histogram becomes gaussian?  Is this consistent with the sound that you hear?  Note that the data set is normalized; can you explain why the sound volume decreases at high "Average Number of Shots per Sample"?

Finally, change to "Line (60Hz) Noise".  Generate some data sets, and play with the "Harmonic Content" knob.  Where have you heard this sound before?