Daqarta
Data AcQuisition And Real-Time Analysis
Scope - Spectrum - Spectrogram - Signal Generator
Software for Windows  The following is from the Daqarta Help system:

# Sound Card Gaussian Noise

Controls: Gen Dlg >> Stream >> Wave >> Gauss
Macros: GaussSD, Wave=Gauss

Gaussian noise is really "white", just like the White noise source, in the sense that it has equal energy at all frequencies. But while the frequency distribution may be the same, the amplitude distribution is different. Rather than all values having equal probability (as in the uniform distribution of the White source), here amplitudes near zero are more common, and extreme values are less common.

This distribution is a good approximation to many real-world processes. Suppose, for example, that you are throwing darts at a target: Most will land near the bulls-eye (depending upon your skill), some will be farther out, and there will be (hopefully!) very few that are way off the target. Or consider a manufactured part, which is required to be a certain length, weight, resistance, or some other measured value: Most parts should be near the desired value, with fewer parts falling farther away, both higher and lower.

Statisticians may complain that the proper name for the Gaussian amplitude distribution is "normal". Although that might be more intuitive to a statistician, it is easily confused with the informal usage meaning "the usual case"... not a good label for the control. And even statisticians understand this usage of "Gaussian".

An amplitude distribution is plotted using a histogram. You can use the Histogram mode of the Waveform Averager to see how the Gaussian source compares to the uniform White source.

Where a uniform distribution should show about the same number of counts for each value bin, the normal/Gaussian distribution has most of them clustered in a broad peak near the 0 bin, smoothly tapering down toward zero counts at the extreme ends of the range. The formula for this classic "bell-shaped curve" is:

```Y = (1 / sqrt(2 * pi * SD^2)) * e^((-X^2)/(2 * SD^2))
```

Here Y is the probability density at any given output value X, assumed to be symmetrical about a mean of zero. SD is the Standard Deviation, a measure of the amount of spread in the central peak. At low standard deviations, the central bins get almost all the data (most output values are near zero) and the peak is very tall and sharp. At high deviations the peak is lower and more gently rounded, and values are more evenly distributed to outlying bins.

When you operate the Gaussian Noise button, it activates the noise source and simultaneously pops up the Standard Deviation control in its own dialog.

Daqarta allows you to adjust the Standard Deviation over a much wider range than you are ever likely to need, from about 0.000244 to 15.99998, with a resolution of 0.000244. The default is 1.0000.

Note that in one respect this Gaussian source does not provide a "true" Gaussian normal distribution, and you should be glad of that: The true Gaussian requires values that extend to infinity in both directions, even though they might be very infrequent. Infinite output voltages might be rather hard on your ears and speakers, even assuming your sound system had the requisite infinite-voltage power supplies. So instead the distribution is simply truncated at the limits of a 16-bit sound card.

With a Standard Deviation setting of 1.0000, the probability of a maximum output value (+/-32767 binary) has been arbitrarily set to one part in 32767 or 0.0000305. In the above formula, this is equivalent to X = 4.35 for full-scale output values.

When Standard Deviation is set to a lower value, the result is similar to reducing the Level setting; the average output is proportionally less. The central peak of the histogram is thus proportionally higher, and all features of the Gaussian curve are constricted toward the center by the same proportion.

For example, reducing SD from 1.0000 to 0.5000 causes the average output to be cut in half, so the central peak in the histogram doubles in height and its width is halved. The tails that formerly ended at the maximum output values are now at only half of maximum (0.5 on the histogram X axis). But they have the same probability as before, 1 part in 32767.

The new maximum values have a much smaller probability, equivalent to doubling the full-scale X value from 4.35 to 8.70. That represents a probability of one in 6.84 x 10^16. This is a very small probability indeed: At 48000 samples per second, you could expect a maximal value only about once every 45000 years!

At Standard Deviation settings below 0.5000 the peak gets taller and the width narrows proportionally, but the tails are truncated at the above probability. As before, when you move out toward the tails of the distribution those higher-level output values will appear less and less often. But they will never appear less often than implied by the above limit (45000 years at 48000 samples per second). Higher, less-frequent output values just won't appear at all, no matter how many millenia you wait.

When Standard Deviation is set to higher values, the tails are truncated at smaller equivalent X values. At the maximum setting of just under 16, the distribution is nearly uniform, like the White source.

When the tails are truncated, those values that would have been off-scale have to go somewhere; some output value must be generated at each sample time. In other words, the area under the histogram must always be unity, reflecting 100% of the samples. If the off-scale values were simply limited ("clipped") to full-scale values, then the distribution would have peaks at the ends due to these extra full-scale values. Instead, off-scale values are replaced by uniformly distributed values, having the effect of slightly raising the distribution everywhere. At high Standard Deviation settings (much above 1.0000) this elevation can become pronounced.

Macro Notes:

L.1.Wave=Gauss or L.1.Wave=8 sets Left Stream 1 Wave to Gauss. Note that this command format sets Wave but does not open the Gauss dialog. This is the usual approach for modifying Generator setups.

To set Wave to Gauss and also open the Gauss dialog (if the Wave dialog is already open), use a D. prefix as in D.L.1.Wave=Gauss.

L.1.GaussSD=1.5 sets the Standard Deviation to 1.50, but does not change Wave. This command does not require that the Gauss dialog be open. GO: