Build A Simple Precision Pink-Noise Generator

Cypress CY8C24423

Dennis Seguine, Cypress Semiconductor

Electronic Design

Using a pseudorandom sequence (PRS) generator and some software, you can build a pink-noise generator (equal energy per octave) with 1 dB performance over the audio band, in addition to the original white-noise generator.

White noise generators commonly are used for testing purposes such as setting the noise level in bit error rate (BER) measurements, providing broadband signals for vibration analysis, and performing rapid filter-performance evaluation using fast Fourier transforms (FFTs), among other applications.

Audio applications that use noise sources such as background noise or room balancing in a public address system are more likely to use “pink” noise. Pink noise is characterized by each octave having the same amount of power, so the range from 100 to 200 Hz has the same power as the range from 1.0 to 2.0 kHz or 10 to 20 kHz.

The pink noise source shown here is based on a pseudorandom sequence (PRS) generator, much like the white-noise source in an earlier article, “Well-Controlled Audio-Band Noise Source Uses Basic Microcontroller Filtering.” [1]

The white-noise output is random (i.e., uniform in frequency and Gaussian in amplitude) if the noise is filtered at a point less than 5% of the PRS clock frequency. A pink-noise generator for the audio band (20 Hz to 20 kHz) meets the randomness requirement and reshapes the frequency content of the analog output.

The frequency characteristic of pink noise falls off at a rate of 3 dB per octave or 10 dB per decade. This is half of the rate of a single-pole low-pass filter. The filter circuit is a little more complex than a simple RC filter. Numerous examples of pink-noise filters can be found using a Google search. The one used here is adapted from the 1976 National Semiconductor Audio Handbook (long out of print but often reproduced).

The values were adjusted to provide closer-to-nominal performance at the upper end and to increase the load impedance of the filter to the digital output. The complete schematic, implemented using a Cypress CY8C24423 plus a few external parts, provides both white- and pink-noise sources (Fig. 1). The code is limited to setting the polynomial value of the PRS plus a few start commands.

Build A Simple Precision Pink-Noise Generator
Figure 1. The PRS-based circuit provides both white- and pink-noise outputs over the audio band. It is an enhancement of a previously published white-noise-only design.

The PRS length was increased compared to the earlier white-noise design so the sequence’s repeat length is longer than the bandwidth of my spectrum analyzer. Any sequence 24 bits or longer would be suitable for audio applications. The output of the 3-dB/octave filter appears quite small (on an oscilloscope), so a programmable gain amplifier (PGA) was added with 24-dB gain. The PGA output also provides a buffer capable of driving a 32-Ω load (Fig. 2).

Build A Simple Precision Pink-Noise Generator
Figure 2. The pink-noise output amplitude versus frequency is within 1 dB of the ideal –3-dB/octave slope over the standard audio band.

The output follows the nominal –3-dB/octave slope to within 1.0 dB from 20 Hz to 20 kHz. If attenuation of the signal below 20 Hz is required, a 10-Hz, single-pole, high-pass filter at the input to the PGA is sufficient. If attenuation of the signal above 20 kHz is required, the output of the PGA can be rerouted to the input of the band-pass filter. This is just a matter of selecting a different filter input in the Cypress PSoC Designer development tool.

Reference

  1. “Well-Controlled Audio-Band Noise Source Uses Basic Microcontroller Filtering,” Dennis Seguine

electronicdesign.com