From: msarovar on
Hi,

What is the most efficient way to generate a noise process that is Gaussian
correlated in time from a white noise process?

I'm having trouble coming up with a simple FIR filter that will do this.

Any suggestions?

Thanks,
~mohan



From: Tim Wescott on
msarovar wrote:
> Hi,
>
> What is the most efficient way to generate a noise process that is Gaussian
> correlated in time from a white noise process?
>
> I'm having trouble coming up with a simple FIR filter that will do this.
>
> Any suggestions?

You _do_ mean that you want to take white noise and color it in
frequency, not that you want to take noise with a non-Gaussian
distribution and make it Gaussian, right?

Just run it through a FIR filter with a Gaussian shape. Bim-bam-boom,
you'll have noise with a Gaussian PSD. Deciding where to truncate the
Gaussian is up to you, of course.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: dbd on
On Mar 9, 6:22 am, "msarovar" <mo...(a)grommit.com> wrote:
> Hi,
>
> What is the most efficient way to generate a noise process that is Gaussian
> correlated in time from a white noise process?
>
> I'm having trouble coming up with a simple FIR filter that will do this.
>
> Any suggestions?
>
> Thanks,
> ~mohan

By "Gaussian correlated" do you mean anything other than correlated
and Gaussian distributed?

What have you tried and why do you think it hasn't worked?

"most efficient" is a context dependent term. Are you concerned with
implementing in a 8-bit micro-controller, a supercomputer, an FPGA or
a PC? Do you mean efficient in your time or the processor's time or
memory space?

Dale B. Dalrymple

From: msarovar on
>On Mar 9, 6:22=A0am, "msarovar" <mo...(a)grommit.com> wrote:
>> Hi,
>>
>> What is the most efficient way to generate a noise process that is
Gaussi=
>an
>> correlated in time from a white noise process?
>>
>> I'm having trouble coming up with a simple FIR filter that will do
this.
>>
>> Any suggestions?
>>
>> Thanks,
>> ~mohan
>
>By "Gaussian correlated" do you mean anything other than correlated
>and Gaussian distributed?
>
>What have you tried and why do you think it hasn't worked?
>
>"most efficient" is a context dependent term. Are you concerned with
>implementing in a 8-bit micro-controller, a supercomputer, an FPGA or
>a PC? Do you mean efficient in your time or the processor's time or
>memory space?
>
>Dale B. Dalrymple
>
>

Hi,
Thanks for the quick answers. And sorry for the lack of detail in my last
message.

First, by "Gaussian correlated" I mean colored noise for which the temporal
correlations are Gaussian.

What I have tried so far is to form a Gaussian FIR filter and convolve the
white noise with it to get output that is Gaussian correlated in time. I am
running this on a PC but need to do it many, many times and so efficiency
(in time, not memory) is important. Currently, the convolution is the
limiting step in my code and I was wondering if there was an easier way to
do this.

For example, is there a recursive (IIR) filter for generating Gaussian
correlations that might decrease the number of convolution steps?

Thanks again for the help,
~mohan
From: Tim Wescott on
msarovar wrote:
>> On Mar 9, 6:22=A0am, "msarovar" <mo...(a)grommit.com> wrote:
>>> Hi,
>>>
>>> What is the most efficient way to generate a noise process that is
> Gaussi=
>> an
>>> correlated in time from a white noise process?
>>>
>>> I'm having trouble coming up with a simple FIR filter that will do
> this.
>>> Any suggestions?
>>>
>>> Thanks,
>>> ~mohan
>> By "Gaussian correlated" do you mean anything other than correlated
>> and Gaussian distributed?
>>
>> What have you tried and why do you think it hasn't worked?
>>
>> "most efficient" is a context dependent term. Are you concerned with
>> implementing in a 8-bit micro-controller, a supercomputer, an FPGA or
>> a PC? Do you mean efficient in your time or the processor's time or
>> memory space?
>>
>> Dale B. Dalrymple
>>
>>
>
> Hi,
> Thanks for the quick answers. And sorry for the lack of detail in my last
> message.
>
> First, by "Gaussian correlated" I mean colored noise for which the temporal
> correlations are Gaussian.
>
> What I have tried so far is to form a Gaussian FIR filter and convolve the
> white noise with it to get output that is Gaussian correlated in time. I am
> running this on a PC but need to do it many, many times and so efficiency
> (in time, not memory) is important. Currently, the convolution is the
> limiting step in my code and I was wondering if there was an easier way to
> do this.
>
> For example, is there a recursive (IIR) filter for generating Gaussian
> correlations that might decrease the number of convolution steps?
>

"I'm having trouble coming up with a simple FIR filter that will do this"

Thus, no one suggests the obvious.

Yes, there are IIR filters that will approximate a Gaussian filter. In
continuous time these are referred to as "Bessel filters"; I don't know
how they've acquired a different name in the sampled time domain.

No matter what, you'll only get an approximation.

The FFT of a white Gaussian noise process is itself white Gaussian noise
with uniformly distributed phase. If you need finite-length vectors
with your Gaussian autocorrelation, you can make sequences with white
noise, shape them with the appropriate Gaussian envelope, then take the
inverse FFT to get a sequence with your desired time-domain properties.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
 |  Next  |  Last
Pages: 1 2 3
Prev: radiographic images
Next: Whitened Matched Filter