DSPRelated.com
Forums

pre-made bitstream, pink noise with only one RC filter?

Started by Unknown March 17, 2006
Is there a way to generate a bit stream, and output it directly to a
single stage simple RC filter, and the output be pink noise up to some
cutoff, say 20khz? This would seem to be a very easy, cheap, simple way
to make a pink noise generator. I assume you cant output the
square-wave bitstream directly to a transducer (speaker, etc..) since
it will contain the dominant switching frequency, (right?)

acannell@wwc.com wrote:
> Is there a way to generate a bit stream, and output it directly to a > single stage simple RC filter, and the output be pink noise up to some > cutoff, say 20khz? This would seem to be a very easy, cheap, simple way > to make a pink noise generator. I assume you cant output the > square-wave bitstream directly to a transducer (speaker, etc..) since > it will contain the dominant switching frequency, (right?)
Pink noise rolls off at 3 dB/octave. An RC rolloff is 6 dB/octave. Sorry! Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
in article Ru-dndl0tJ__vYHZRVn-iA@rcn.net, Jerry Avins at jya@ieee.org wrote
on 03/18/2006 09:59:

> acannell@wwc.com wrote: >> Is there a way to generate a bit stream, and output it directly to a >> single stage simple RC filter, and the output be pink noise up to some >> cutoff, say 20khz? This would seem to be a very easy, cheap, simple way >> to make a pink noise generator. I assume you cant output the >> square-wave bitstream directly to a transducer (speaker, etc..) since >> it will contain the dominant switching frequency, (right?) > > Pink noise rolls off at 3 dB/octave. An RC rolloff is 6 dB/octave. Sorry!
suppose the "bit stream" had a power spectrum that rose at +3 dB/octave, then the RC might be just what the doctor (or M.S.) ordered. there is also the sinc() rolloff that would have to be compensated for (if the bit rate is low enough). essentially this is doable, but it is a design problem. you have to decide on the sample rate (ca. 44.1 kHz?) and where the corner of the RC filter is (below 20 Hz?). that along with the sinc filter of the implicit ZOH on the bit output tells us what the spectrum has to be in the discrete-time world. then design a white noise generator (linear congruence or something), filter it, then do sigma-delta conversion (that might also affect the frequency response and need to be comepensated) to convert to a bit stream. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
robert bristow-johnson wrote:
> in article Ru-dndl0tJ__vYHZRVn-iA@rcn.net, Jerry Avins at jya@ieee.org wrote > on 03/18/2006 09:59: > > >>acannell@wwc.com wrote: >> >>>Is there a way to generate a bit stream, and output it directly to a >>>single stage simple RC filter, and the output be pink noise up to some >>>cutoff, say 20khz? This would seem to be a very easy, cheap, simple way >>>to make a pink noise generator. I assume you cant output the >>>square-wave bitstream directly to a transducer (speaker, etc..) since >>>it will contain the dominant switching frequency, (right?) >> >>Pink noise rolls off at 3 dB/octave. An RC rolloff is 6 dB/octave. Sorry! > > > suppose the "bit stream" had a power spectrum that rose at +3 dB/octave, > then the RC might be just what the doctor (or M.S.) ordered. there is also > the sinc() rolloff that would have to be compensated for (if the bit rate is > low enough). > > essentially this is doable, but it is a design problem. you have to decide > on the sample rate (ca. 44.1 kHz?) and where the corner of the RC filter is > (below 20 Hz?). that along with the sinc filter of the implicit ZOH on the > bit output tells us what the spectrum has to be in the discrete-time world. > then design a white noise generator (linear congruence or something), filter > it, then do sigma-delta conversion (that might also affect the frequency > response and need to be comepensated) to convert to a bit stream.
A few years ago, you posted the details of a 3 db/octave filter for making pink noise that covered the 3 decades of the nominal audio band. wouldn't that be the most straightforward approach? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
in article dpmdnbiOm-S9XoHZRVn-gg@rcn.net, Jerry Avins at jya@ieee.org wrote
on 03/18/2006 21:34:

> robert bristow-johnson wrote: >> in article Ru-dndl0tJ__vYHZRVn-iA@rcn.net, Jerry Avins at jya@ieee.org wrote >> on 03/18/2006 09:59: >> >> >>> acannell@wwc.com wrote: >>> >>>> Is there a way to generate a bit stream, and output it directly to a >>>> single stage simple RC filter, and the output be pink noise up to some >>>> cutoff, say 20khz? This would seem to be a very easy, cheap, simple way >>>> to make a pink noise generator. I assume you cant output the >>>> square-wave bitstream directly to a transducer (speaker, etc..) since >>>> it will contain the dominant switching frequency, (right?) >>> >>> Pink noise rolls off at 3 dB/octave. An RC rolloff is 6 dB/octave. Sorry! >> >> >> suppose the "bit stream" had a power spectrum that rose at +3 dB/octave, >> then the RC might be just what the doctor (or M.S.) ordered. there is also >> the sinc() rolloff that would have to be compensated for (if the bit rate is >> low enough). >> >> essentially this is doable, but it is a design problem. you have to decide >> on the sample rate (ca. 44.1 kHz?) and where the corner of the RC filter is >> (below 20 Hz?). that along with the sinc filter of the implicit ZOH on the >> bit output tells us what the spectrum has to be in the discrete-time world. >> then design a white noise generator (linear congruence or something), filter >> it, then do sigma-delta conversion (that might also affect the frequency >> response and need to be comepensated) to convert to a bit stream. > > A few years ago, you posted the details of a 3 db/octave filter for > making pink noise that covered the 3 decades of the nominal audio band.
this was mentioned, among other methods, at http://www.firstpr.com.au/dsp/pink-noise/ . just for information purposes.
> wouldn't that be the most straightforward approach?
perhaps, once you really get the target well defined. i am still not sure exactly what it is. something like: 1/sqrt(f) = |H(f)| * sinc(f/Fs) * |1/(1 + j*2*pi*f*R*C)| but maybe something about the sigma-delta conversion (remember the OP wants a bit stream) needs to be tossed into the mix. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
>in article dpmdnbiOm-S9XoHZRVn-gg@rcn.net, Jerry Avins at jya@ieee.org
wrote
>on 03/18/2006 21:34: > >> robert bristow-johnson wrote: >>> in article Ru-dndl0tJ__vYHZRVn-iA@rcn.net, Jerry Avins at jya@ieee.org
wrote
>>> on 03/18/2006 09:59: >>> >>> >>>> acannell@wwc.com wrote: >>>> >>>>> Is there a way to generate a bit stream, and output it directly to
a
>>>>> single stage simple RC filter, and the output be pink noise up to
some
>>>>> cutoff, say 20khz? This would seem to be a very easy, cheap, simple
way
>>>>> to make a pink noise generator. I assume you cant output the >>>>> square-wave bitstream directly to a transducer (speaker, etc..)
since
>>>>> it will contain the dominant switching frequency, (right?) >>>> >>>> Pink noise rolls off at 3 dB/octave. An RC rolloff is 6 dB/octave.
Sorry!
>>> >>> >>> suppose the "bit stream" had a power spectrum that rose at +3
dB/octave,
>>> then the RC might be just what the doctor (or M.S.) ordered. there is
also
>>> the sinc() rolloff that would have to be compensated for (if the bit
rate is
>>> low enough). >>> >>> essentially this is doable, but it is a design problem. you have to
decide
>>> on the sample rate (ca. 44.1 kHz?) and where the corner of the RC
filter is
>>> (below 20 Hz?). that along with the sinc filter of the implicit ZOH
on the
>>> bit output tells us what the spectrum has to be in the discrete-time
world.
>>> then design a white noise generator (linear congruence or something),
filter
>>> it, then do sigma-delta conversion (that might also affect the
frequency
>>> response and need to be comepensated) to convert to a bit stream. >> >> A few years ago, you posted the details of a 3 db/octave filter for >> making pink noise that covered the 3 decades of the nominal audio
band.
> >this was mentioned, among other methods, at >http://www.firstpr.com.au/dsp/pink-noise/ . just for information
purposes.
> >> wouldn't that be the most straightforward approach? > >perhaps, once you really get the target well defined. i am still not
sure
>exactly what it is. something like: > > > 1/sqrt(f) = |H(f)| * sinc(f/Fs) * |1/(1 + j*2*pi*f*R*C)| > >but maybe something about the sigma-delta conversion (remember the OP
wants
>a bit stream) needs to be tossed into the mix. > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > >
For some valuable information about this topic please visit: http://www.firstpr.com.au/dsp/pink-noise/ For a simple approach using several 1st order IIR filters whose outputs are summed up to build the pink-noise signal refer to header Filtering white noise to make it pink talking about 2 IIR filters designed by Paul Kellet. Much luck at implementation, Robert