Pink Noise Generator

Two random signals of particular interest are white noise and pink noise.

White noise is a random signal which has a constant power spectrum for a constant frequency bandwidth. It is thus analogous to white light, which is composed of a continuous spectrum of colours.

Pink noise is a random signal which has a constant power spectrum for each octave band. This noise is called pink because the low frequency or “red” end of the spectrum is emphasized. Pink noise is used in acoustics to measure the frequency response of an audio system in a particular room. It can thus be used to calibrate a graphic equalizer.

A pink noise power spectrum plotted with respect to a constant bandwidth would have a 3-dB/octave roll-off. This is equivalent to a slope of –1 on a power spectrum plot in log-log format.

* * *

Here is a Matlab script for generating pink noise:

It first synthesizes white noise and then takes the Fourier transform.
Then it forms a transfer function:

H(s)=3/sqrt(s+ 8 pi )

This transfer function is then multiplied by the white noise Fourier transform.

The resulting pink noise time history is the inverse Fourier transform of the product.

-Tom Irvine

One thought on “Pink Noise Generator

  1. Thanks for this! One note – maybe something to do with Matlab versions but I don’t have wavwrite. I replaced it with audiowrite(filename,y,Fs). Also, the pink noise was much lower volume than the write noise. I had to multiply it by about 10 to even it. When I have a minute, I’ll write a little function to normalize the values to +/- 2^15.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s