Re: randomized white noise = white noise?



Tom Bruhns wrote:
[re code,
<generate white>
tw = white/16;
tmp = tw*3;
b0 = b0 - b0/256 + tmp/2;
b1 = b1 - b1/16 + tw/4;
b2 = b2/2 + white + tw;
tmp += b0 + b1 + b2;
outp (tmp/256, PORTB);
approximating Asa's
b0 = 0.99765 * b0 + white * 0.0990460;
b1 = 0.96300 * b1 + white * 0.2965164;
b2 = 0.57000 * b2 + white * 1.0526913;
tmp = b0 + b1 + b2 + white * 0.1848;
]

Assuming you meant for b1 to have white/4, not tw/4, that doesn't do

Right - should have been b1 = b1 - b1/16 + white/4;

too bad, and is a good illustration of being clever with coefficients.
The ripples in the error are not quite as well behaved, but the
peak-to-peak error is actually less than with the original
coefficients. If I match up to zero error at 1kHz, then 20Hz is
-0.907dB, peak at 31Hz of -0.552dB, valley at 111Hz of -1.420dB, peak
at 4196Hz of +1.156dB, valley at 18872Hz of -1.837dB.

Thanks for the analysis! What program, or spread***,
do you use to compute response?

But we still don't know what's good enough for the application...
.