A white-noise source can be constructed based on the random noise of a Zener diode or reverse-biased base-emitter junction. While these circuits work, they are temperature sensitive and not predictably calibrated.
- Random Number Generator Has A Predefined Distribution
- Tiny White Noise Generator
- Wide-Band Analog White-Noise Generator
Another approach is to use a pseudorandom sequence (PRS) generator that, when filtered, yields a noise with characteristics that is flat in frequency, Gaussian in amplitude distribution, and as stable in amplitude as the reference that is used. The noise source, including PRS, filter, and driver, can be implemented entirely within a programmable system-on-chip (PSoC) device (Fig. 1).
The PRS is derived from a modular linear feedback shift register (LFSR) with the output fed back to specific taps that are XORed with the data stream. The tap values are available from a variety of sources, including the PSoC device’s own design software. The PRS generator in the PSoC is a modular design available in bit lengths from 2 to 32.
The bit-stream output is a digital signal that is converted to analog noise with a filter. A sync pulse is available, triggering once per sequence (Fig. 2). The bit-stream output of the PRS repeats every 2n-1 clock pulses. For a 1.0-MHz clock, a 16-bit PRS repeats its pattern every 65 ms. If the system is slow and repeating patterns might interfere, just use a longer sequence. A 32-bit sequence yields a repeat pattern at 1.19 hours.
The bit-stream digital output can connect directly to the input of an on-chip, switched-capacitor, low-pass filter. This yields a signal that is proportional to the supply voltage. A supply-independent source can be generated by setting the filter input to a reference, then connecting the PRS bit stream to the filter’s modulator input. This multiplies the reference fed to the filter by +1 or –1 and provides an amplitude-stable source.
The analog noise output and the bit stream are synchronized as shown in the waveforms of Figure 2. The bit-stream amplitude is constant and doesn’t look very Gaussian because it is always driven to the supply rails. Making the signal Gaussian requires limiting the bandwidth and keeping the output from hitting the rails. This can be accomplished by setting the filter corner frequency at less than 5% of the PRS clock rate. This implementation is a white-noise generator with a bandwidth of 20 kHz, sampled at 1.0 MHz.
Figure 3 shows the noise spectra. (See Listing 1 in the spreadsheet available here for the raw file for the spectra in Figure 3.) The PRS noise (red trace) has a sin(x)/x shape with the first null at the sample rate. The filtered output noise (blue trace) is as flat in the band as the 20-kHz filter allows. The finished noise source has an observed noise output of about 1.5 V p-p and measured amplitude of 275 mV rms.
Small clock spurs occur at some sub-multiples of the clock rate, but they are easily filtered out with an external single-pole low-pass RC filter. Higher corner frequencies can be achieved by reducing the over-sample ratio and increasing the clock rates. The practical corner-frequency limits for a PSoC low-pass filter are 300 Hz to 120 kHz.
Dennis Seguine is a member of the technical staff at Cypress Semiconductor Corp. He has been an applications engineer for Cypress Semiconductor since 2000, following many years of analog, embedded system, and software design for the underwater, instrumentation, and medical industries. He can be reached at [email protected]