DSPRelated.com
Forums

Gaussian Noise Generation

Started by Chris Barrett July 31, 2007
I'm trying to generate noise within a certain spectral range.  I believe 
such noise is called Gaussian noise.  Is there a way I can do this other 
than by filtering white noise?
On Jul 31, 9:05 am, Chris Barrett
<"chrisbarret"@0123456789abcdefghijk113322.none> wrote:
> I'm trying to generate noise within a certain spectral range. I believe > such noise is called Gaussian noise. Is there a way I can do this other > than by filtering white noise?
"White"-ness and "Gaussian"-ness are two orthogonal properties. One describes the correlation property of a stochastic sequence and the other describes the stationary distribution of a random variable (or sequence, if it's stationary). All I'm saying is that your "white noise" may have be Laplacian, or any other distribution. Would you like to re-think your question? :-) Julius
julius wrote:
> On Jul 31, 9:05 am, Chris Barrett > <"chrisbarret"@0123456789abcdefghijk113322.none> wrote: > >>I'm trying to generate noise within a certain spectral range. I believe >>such noise is called Gaussian noise. Is there a way I can do this other >>than by filtering white noise? > > > "White"-ness and "Gaussian"-ness are two orthogonal properties. > One describes the correlation property of a stochastic sequence > and the other describes the stationary distribution of a random > variable (or sequence, if it's stationary). > > All I'm saying is that your "white noise" may have be Laplacian, > or any other distribution. > > Would you like to re-think your question? :-) > > Julius >
Is there a way to generate colored noise other than by the filtration of white noise? How is Gaussian noise generated? My best guess is that I would need to a take a random number generator, r(i), where -1>r>1, and plug it into some other function. I'm at a loss though, as to what function I should use.
On Jul 31, 11:01 am, Chris Barrett
<"chrisbarret"@0123456789abcdefghijk113322.none> wrote:
> julius wrote: > > On Jul 31, 9:05 am, Chris Barrett > > <"chrisbarret"@0123456789abcdefghijk113322.none> wrote: > > >>I'm trying to generate noise within a certain spectral range. I believe > >>such noise is called Gaussian noise. Is there a way I can do this other > >>than by filtering white noise? > > > "White"-ness and "Gaussian"-ness are two orthogonal properties. > > One describes the correlation property of a stochastic sequence > > and the other describes the stationary distribution of a random > > variable (or sequence, if it's stationary). > > > All I'm saying is that your "white noise" may have be Laplacian, > > or any other distribution. > > > Would you like to re-think your question? :-) > > > Julius > > Is there a way to generate colored noise other than by the filtration of > white noise?
Sure you can; the "color" of noise just refers to the shape of its PSD, which is defined by the noise's autocorrelation function. Some colors of noise might have easier generation methods, but for an arbitrary PSD shape, the easiest way is to generate white noise and design a filter to give you the output PSD that you want.
> How is Gaussian noise generated? My best guess is that I would need to > a take a random number generator, r(i), where -1>r>1, and plug it into > some other function. I'm at a loss though, as to what function I should > use.
You can generate a Gaussian noise sample by summing up a large number of independent, identically distributed samples from any generator, subtracting the mean (expected value) of the sum, and dividing by the standard deviation of the sum: http://en.wikipedia.org/wiki/Central_limit_theorem Jason
On Jul 31, 10:01 am, Chris Barrett
<"chrisbarret"@0123456789abcdefghijk113322.none> wrote:

> Is there a way to generate colored noise other than by the filtration of > white noise?
Well, this is a problem of designing a toolbox that can do as many things as well as possible. Most software/hardware developers decide on: 1. Making a really good white sequence generator, mostly because its power is spread evenly across the spectrum of interest and because its definition is the easiest. All it takes is (just) a sequence which members are independent to one another. 2. Then filter this white sequence to get whatever color you want, by designing the filter. There are some colors that are hard to generate since the required filter will be irrational. Now imagine trying to get a white sequence from a heavily colored sequence. This is hard, no? Especially at the higher freq where there is little or no power in the spectrum of the original sequence.
> How is Gaussian noise generated? My best guess is that I would need to > a take a random number generator, r(i), where -1>r>1, and plug it into > some other function. I'm at a loss though, as to what function I should > use.
Chris, this is elementary probability theory. Please review a textbook on "functions of a random variable". It's better for you to read and understand yourself, since it's a very useful concept. Hope this helps, Julius
julius wrote:
> On Jul 31, 9:05 am, Chris Barrett > <"chrisbarret"@0123456789abcdefghijk113322.none> wrote: >> I'm trying to generate noise within a certain spectral range. I believe >> such noise is called Gaussian noise. Is there a way I can do this other >> than by filtering white noise? > > "White"-ness and "Gaussian"-ness are two orthogonal properties. > One describes the correlation property of a stochastic sequence > and the other describes the stationary distribution of a random > variable (or sequence, if it's stationary). > > All I'm saying is that your "white noise" may have be Laplacian, > or any other distribution. > > Would you like to re-think your question? :-)
Most random number generators produce white noise with uniform distribution. Making each result the sum of 12* such numbers produces a pretty good approximation to a Gaussian sequence. A true Gaussian can't be represented with finite numbers because the tails go out to infinity. Jerry __________________ * The more, the better. Often, 8 are plenty. Normalize by >>3. -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;
On Jul 31, 8:01 am, Chris Barrett
> > Is there a way to generate colored noise other than by the filtration of > white noise? > > How is Gaussian noise generated? My best guess is that I would need to > a take a random number generator, r(i), where -1>r>1, and plug it into > some other function. I'm at a loss though, as to what function I should > use.- Hide quoted text - > > - Show quoted text -
Google "Box-Muller transformation"; it converts two independent, uniformly distributed random variables into two independent, normally distributed ones.
Chris Barrett wrote:
> julius wrote: >> On Jul 31, 9:05 am, Chris Barrett >> <"chrisbarret"@0123456789abcdefghijk113322.none> wrote: >> >>> I'm trying to generate noise within a certain spectral range. I believe >>> such noise is called Gaussian noise. Is there a way I can do this other >>> than by filtering white noise? >> >> >> "White"-ness and "Gaussian"-ness are two orthogonal properties. >> One describes the correlation property of a stochastic sequence >> and the other describes the stationary distribution of a random >> variable (or sequence, if it's stationary). >> >> All I'm saying is that your "white noise" may have be Laplacian, >> or any other distribution. >> >> Would you like to re-think your question? :-) >> >> Julius >> > > Is there a way to generate colored noise other than by the filtration of > white noise? > > How is Gaussian noise generated? My best guess is that I would need to > a take a random number generator, r(i), where -1>r>1, and plug it into > some other function. I'm at a loss though, as to what function I should > use.
Why take one random number, when you can take a dozen. Add them up. See what the answer looks like. :-) Steve P.S. Seriously. Try this.

Steve Underwood wrote:

> Chris Barrett wrote: >
>>>> I'm trying to generate noise within a certain spectral range. I >>>> believe >>>> such noise is called Gaussian noise. Is there a way I can do this >>>> other >>>> than by filtering white noise? >> Is there a way to generate colored noise other than by the filtration >> of white noise? >> > > Why take one random number, when you can take a dozen. Add them up. See > what the answer looks like. :-)
Why taking a dozen numbers if you have to filter it anyway. A filter will take care of making it gaussian as well as colored. :-) Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Tue, 31 Jul 2007 14:14:44 -0500, Vladimir Vassilevsky wrote:

> Steve Underwood wrote: > >> Chris Barrett wrote: >> > >>>>> I'm trying to generate noise within a certain spectral range. I >>>>> believe >>>>> such noise is called Gaussian noise. Is there a way I can do this >>>>> other >>>>> than by filtering white noise? >>> Is there a way to generate colored noise other than by the filtration >>> of white noise? >>> >> >> Why take one random number, when you can take a dozen. Add them up. See >> what the answer looks like. :-) > > Why taking a dozen numbers if you have to filter it anyway. A filter > will take care of making it gaussian as well as colored. > > :-) > > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultant > http://www.abvolt.com
If it's filtered heavily enough, at least. If the filter doesn't have a long impulse response then the result won't be terrifically Gaussian. But most practical filters will probably render the result as a close enough distribution to Gaussian. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html