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
How to generate a Gaussian time correlated process?
Started by ●March 9, 2010
Reply by ●March 9, 20102010-03-09
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
Reply by ●March 9, 20102010-03-09
On Mar 9, 6:22�am, "msarovar" <mo...@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, > ~mohanBy "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
Reply by ●March 9, 20102010-03-09
>On Mar 9, 6:22=A0am, "msarovar" <mo...@grommit.com> wrote: >> Hi, >> >> What is the most efficient way to generate a noise process that isGaussi=>an >> correlated in time from a white noise process? >> >> I'm having trouble coming up with a simple FIR filter that will dothis.>> >> 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
Reply by ●March 9, 20102010-03-09
msarovar wrote:>> On Mar 9, 6:22=A0am, "msarovar" <mo...@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
Reply by ●March 9, 20102010-03-09
On 9 Mrz., 15:22, "msarovar" <mo...@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, > ~mohanThis link is three years old but still works: http://math.mit.edu/~stevenj/preprints/iir-colored-noise-2007-03-13.pdf It describes the use of IIR filters to efficiently (wrt to computer time and memory) generate correlated sequences from white sequences. Regards, Andor
Reply by ●March 9, 20102010-03-09
>On 9 Mrz., 15:22, "msarovar" <mo...@grommit.com> wrote: >> Hi, >> >> What is the most efficient way to generate a noise process that isGaussian>> correlated in time from a white noise process? >> >> I'm having trouble coming up with a simple FIR filter that will dothis.>> >> Any suggestions? >> >> Thanks, >> ~mohan > >This link is three years old but still works: > >http://math.mit.edu/~stevenj/preprints/iir-colored-noise-2007-03-13.pdf > >It describes the use of IIR filters to efficiently (wrt to computer >time and memory) generate correlated sequences from white sequences. > >Regards, >Andor >Great, thanks guys. I will read more about Chebyshev filters. They sound like my solution. Cheers, ~mohan
Reply by ●March 10, 20102010-03-10
Andor wrote:> On 9 Mrz., 15:22, "msarovar" <mo...@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 > > This link is three years old but still works: > > http://math.mit.edu/~stevenj/preprints/iir-colored-noise-2007-03-13.pdf > > It describes the use of IIR filters to efficiently (wrt to computer > time and memory) generate correlated sequences from white sequences.Any low-pass filter's output is correlated at high-enough frequencies. Jerry -- Physics is like sex: sure, it may give some practical results, but that's not why we do it. -- Richard P. Feynman (Nobel Prize, Physics) ������������������������������������������������������������������������
Reply by ●March 10, 20102010-03-10
On 10 Mrz., 05:35, Jerry Avins <j...@ieee.org> wrote:> Andor wrote: > > On 9 Mrz., 15:22, "msarovar" <mo...@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 > > > This link is three years old but still works: > > >http://math.mit.edu/~stevenj/preprints/iir-colored-noise-2007-03-13.pdf > > > It describes the use of IIR filters to efficiently (wrt to computer > > time and memory) generate correlated sequences from white sequences. > > Any low-pass filter's output is correlated at high-enough frequencies.Of course. The trick is to get the correlation you want as cheap as possible.
Reply by ●March 11, 20102010-03-11
On Mar 10, 3:22�am, "msarovar" <mo...@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, > ~mohanBit confused here. If you pass Guassian white noise through a LTI filter the output is still Guassian but coloured. Hardy