[sdiy] converting white noise to pink noise
Eric Brombaugh
ebrombaugh at earthlink.net
Wed Mar 5 00:38:02 CET 2008
Andre Majorel wrote:
> But note that long period does not imply good sound. For example,
> http://www.maxim-ic.com/appnotes.cfm?appnote_number=1743&CMP=WP-9
> is a 32-bit LFSR with a 2**32 period that does not sound very
> white.
If it doesn't sound white, what does it sound like? The polynomial they
used gives a uniform distribution so it ought to work as well as any
other. I've been using LFSRs for years now and haven't come across any
information on some polynomials providing better quality than others
(aside from longer ones being more desirable in some situations).
I don't know anything about the MAX765x processor discussed in that app
note, so I've got no idea how fast that noise generator was running.
Maybe the one you heard was running too slow. One of the problems with
using straight binary LFSR outputs for audio noise is that there is a
sin(x)/x rolloff due to the zero-order hold nature of the shift register
output. This gives roughly 3dB loss at half the LFSR clock rate and deep
notches at multiplies of the clock rate. To get around that you need to
have a fairly high clock rate so that losses due to the sinc response
are negligible within normal human hearing range.
> y = yprev + rand has more LF energy than y = rand (i.e. white
> noise). But I don't think that's pink distribution, otherwise
> people would use that !
That's an interesting linear system you've defined there - notice that
the impulse response is an infinite hold (it converts an impulse into a
step). That aside, it is a second-order system with a lowpass response
falling off at roughly 6dB/octave starting from DC while true pink noise
is 3dB/octave.
Eric
More information about the Synth-diy
mailing list